Changeset 228022 in webkit


Ignore:
Timestamp:
Feb 2, 2018 12:24:40 PM (6 years ago)
Author:
mark.lam@apple.com
Message:

More ARM64_32 fixes.
https://bugs.webkit.org/show_bug.cgi?id=182441
<rdar://problem/37162310>

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

I also disabled more dynamicPoisoning code in ARM64_32. This code assumes a
64-bit pointer which is not applicable here.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitDynamicPoison):
(JSC::AssemblyHelpers::emitDynamicPoisonOnLoadedType):
(JSC::AssemblyHelpers::emitDynamicPoisonOnType):

Source/WTF:

My previous speculative ARM64_32 build fix in copyLCharsFromUCharSource() was wrong.
I've now fixed it to choose the default implementation case instead of the ARM64
case if the target is ARM64_32.

  • wtf/text/ASCIIFastPath.h:

(WTF::copyLCharsFromUCharSource):

Location:
trunk/Source
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r228018 r228022  
     12018-02-02  Mark Lam  <mark.lam@apple.com>
     2
     3        More ARM64_32 fixes.
     4        https://bugs.webkit.org/show_bug.cgi?id=182441
     5        <rdar://problem/37162310>
     6
     7        Reviewed by Dan Bernstein.
     8
     9        I also disabled more dynamicPoisoning code in ARM64_32.  This code assumes a
     10        64-bit pointer which is not applicable here.
     11
     12        * jit/AssemblyHelpers.cpp:
     13        (JSC::AssemblyHelpers::emitDynamicPoison):
     14        (JSC::AssemblyHelpers::emitDynamicPoisonOnLoadedType):
     15        (JSC::AssemblyHelpers::emitDynamicPoisonOnType):
     16
    1172018-02-02  Saam Barati  <sbarati@apple.com>
    218
  • trunk/Source/JavaScriptCore/jit/AssemblyHelpers.cpp

    r227700 r228022  
    10101010void AssemblyHelpers::emitDynamicPoison(GPRReg base, GPRReg poisonValue)
    10111011{
    1012 #if CPU(X86_64) || CPU(ARM64)
     1012#if CPU(X86_64) || (CPU(ARM64) && !defined(__ILP32__))
    10131013    lshiftPtr(TrustedImm32(40), poisonValue);
    10141014    addPtr(poisonValue, base);
     
    10211021void AssemblyHelpers::emitDynamicPoisonOnLoadedType(GPRReg base, GPRReg actualType, JSType expectedType)
    10221022{
    1023 #if CPU(X86_64) || CPU(ARM64)
     1023#if CPU(X86_64) || (CPU(ARM64) && !defined(__ILP32__))
    10241024    xor32(TrustedImm32(expectedType), actualType);
    10251025    emitDynamicPoison(base, actualType);
     
    10331033void AssemblyHelpers::emitDynamicPoisonOnType(GPRReg base, GPRReg scratch, JSType expectedType)
    10341034{
    1035 #if CPU(X86_64) || CPU(ARM64)
     1035#if CPU(X86_64) || (CPU(ARM64) && !defined(__ILP32__))
    10361036    load8(Address(base, JSCell::typeInfoTypeOffset()), scratch);
    10371037    emitDynamicPoisonOnLoadedType(base, scratch, expectedType);
  • trunk/Source/WTF/ChangeLog

    r228007 r228022  
     12018-02-02  Mark Lam  <mark.lam@apple.com>
     2
     3        More ARM64_32 fixes.
     4        https://bugs.webkit.org/show_bug.cgi?id=182441
     5        <rdar://problem/37162310>
     6
     7        Reviewed by Dan Bernstein.
     8
     9        My previous speculative ARM64_32 build fix in copyLCharsFromUCharSource() was wrong.
     10        I've now fixed it to choose the default implementation case instead of the ARM64
     11        case if the target is ARM64_32.
     12
     13        * wtf/text/ASCIIFastPath.h:
     14        (WTF::copyLCharsFromUCharSource):
     15
    1162018-02-02  Konstantin Tokarev  <annulen@yandex.ru>
    217
  • trunk/Source/WTF/wtf/text/ASCIIFastPath.h

    r227940 r228022  
    140140        destination[i] = static_cast<LChar>(source[i]);
    141141    }
    142 #elif COMPILER(GCC_OR_CLANG) && CPU(ARM64) && defined(NDEBUG)
     142#elif COMPILER(GCC_OR_CLANG) && CPU(ARM64) && !defined(__ILP32__) && defined(NDEBUG)
    143143    const LChar* const end = destination + length;
    144144    const uintptr_t memoryAccessSize = 16;
     
    151151        const LChar* const simdEnd = destination + (lengthLeft & ~memoryAccessMask);
    152152        do {
    153 #if defined(__ILP32__)
    154             asm("ld2   { v0.16B, v1.16B }, [%w[SOURCE]], #32\n\t"
    155                 "st1   { v0.16B }, [%w[DESTINATION]], #16\n\t"
    156 #else
    157153            asm("ld2   { v0.16B, v1.16B }, [%[SOURCE]], #32\n\t"
    158154                "st1   { v0.16B }, [%[DESTINATION]], #16\n\t"
    159 #endif
    160155                : [SOURCE]"+r" (source), [DESTINATION]"+r" (destination)
    161156                :
Note: See TracChangeset for help on using the changeset viewer.