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