Title: [228022] trunk/Source
Revision
228022
Author
mark....@apple.com
Date
2018-02-02 12:24:40 -0800 (Fri, 02 Feb 2018)

Log Message

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

Reviewed by Dan Bernstein.

Source/_javascript_Core:

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):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (228021 => 228022)


--- trunk/Source/_javascript_Core/ChangeLog	2018-02-02 19:38:06 UTC (rev 228021)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-02-02 20:24:40 UTC (rev 228022)
@@ -1,3 +1,19 @@
+2018-02-02  Mark Lam  <mark....@apple.com>
+
+        More ARM64_32 fixes.
+        https://bugs.webkit.org/show_bug.cgi?id=182441
+        <rdar://problem/37162310>
+
+        Reviewed by Dan Bernstein.
+
+        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):
+
 2018-02-02  Saam Barati  <sbar...@apple.com>
 
         MapHash should return true to doesGC in the DFG depending on useKind because it might resolve a rope

Modified: trunk/Source/_javascript_Core/jit/AssemblyHelpers.cpp (228021 => 228022)


--- trunk/Source/_javascript_Core/jit/AssemblyHelpers.cpp	2018-02-02 19:38:06 UTC (rev 228021)
+++ trunk/Source/_javascript_Core/jit/AssemblyHelpers.cpp	2018-02-02 20:24:40 UTC (rev 228022)
@@ -1009,7 +1009,7 @@
 
 void AssemblyHelpers::emitDynamicPoison(GPRReg base, GPRReg poisonValue)
 {
-#if CPU(X86_64) || CPU(ARM64)
+#if CPU(X86_64) || (CPU(ARM64) && !defined(__ILP32__))
     lshiftPtr(TrustedImm32(40), poisonValue);
     addPtr(poisonValue, base);
 #else
@@ -1020,7 +1020,7 @@
 
 void AssemblyHelpers::emitDynamicPoisonOnLoadedType(GPRReg base, GPRReg actualType, JSType expectedType)
 {
-#if CPU(X86_64) || CPU(ARM64)
+#if CPU(X86_64) || (CPU(ARM64) && !defined(__ILP32__))
     xor32(TrustedImm32(expectedType), actualType);
     emitDynamicPoison(base, actualType);
 #else
@@ -1032,7 +1032,7 @@
 
 void AssemblyHelpers::emitDynamicPoisonOnType(GPRReg base, GPRReg scratch, JSType expectedType)
 {
-#if CPU(X86_64) || CPU(ARM64)
+#if CPU(X86_64) || (CPU(ARM64) && !defined(__ILP32__))
     load8(Address(base, JSCell::typeInfoTypeOffset()), scratch);
     emitDynamicPoisonOnLoadedType(base, scratch, expectedType);
 #else

Modified: trunk/Source/WTF/ChangeLog (228021 => 228022)


--- trunk/Source/WTF/ChangeLog	2018-02-02 19:38:06 UTC (rev 228021)
+++ trunk/Source/WTF/ChangeLog	2018-02-02 20:24:40 UTC (rev 228022)
@@ -1,3 +1,18 @@
+2018-02-02  Mark Lam  <mark....@apple.com>
+
+        More ARM64_32 fixes.
+        https://bugs.webkit.org/show_bug.cgi?id=182441
+        <rdar://problem/37162310>
+
+        Reviewed by Dan Bernstein.
+
+        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):
+
 2018-02-02  Konstantin Tokarev  <annu...@yandex.ru>
 
         Unreviewed build fix for JSCOnly on macOS after r227845.

Modified: trunk/Source/WTF/wtf/text/ASCIIFastPath.h (228021 => 228022)


--- trunk/Source/WTF/wtf/text/ASCIIFastPath.h	2018-02-02 19:38:06 UTC (rev 228021)
+++ trunk/Source/WTF/wtf/text/ASCIIFastPath.h	2018-02-02 20:24:40 UTC (rev 228022)
@@ -139,7 +139,7 @@
         ASSERT(!(source[i] & 0xff00));
         destination[i] = static_cast<LChar>(source[i]);
     }
-#elif COMPILER(GCC_OR_CLANG) && CPU(ARM64) && defined(NDEBUG)
+#elif COMPILER(GCC_OR_CLANG) && CPU(ARM64) && !defined(__ILP32__) && defined(NDEBUG)
     const LChar* const end = destination + length;
     const uintptr_t memoryAccessSize = 16;
 
@@ -150,13 +150,8 @@
         const uintptr_t lengthLeft = end - destination;
         const LChar* const simdEnd = destination + (lengthLeft & ~memoryAccessMask);
         do {
-#if defined(__ILP32__)
-            asm("ld2   { v0.16B, v1.16B }, [%w[SOURCE]], #32\n\t"
-                "st1   { v0.16B }, [%w[DESTINATION]], #16\n\t"
-#else
             asm("ld2   { v0.16B, v1.16B }, [%[SOURCE]], #32\n\t"
                 "st1   { v0.16B }, [%[DESTINATION]], #16\n\t"
-#endif
                 : [SOURCE]"+r" (source), [DESTINATION]"+r" (destination)
                 :
                 : "memory", "v0", "v1");
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to