Modified: trunk/LayoutTests/ChangeLog (182090 => 182091)
--- trunk/LayoutTests/ChangeLog 2015-03-27 23:49:15 UTC (rev 182090)
+++ trunk/LayoutTests/ChangeLog 2015-03-28 00:40:56 UTC (rev 182091)
@@ -1,3 +1,16 @@
+2015-03-27 Michael Saboff <[email protected]>
+
+ Fix flakey dfg-int8array.js and dfg-int16array.js tests for ARM64
+ https://bugs.webkit.org/show_bug.cgi?id=138390
+
+ Reviewed by Mark Lam.
+
+ Reenabled the tests for ARM64/iOS. Left the tests disabled for ARM64/linux and will let linux
+ developers test and reenable under existing but https://bugs.webkit.org/show_bug.cgi?id=142629.
+
+ * js/script-tests/dfg-int16array.js:
+ * js/script-tests/dfg-int8array.js:
+
2015-03-27 Jer Noble <[email protected]>
[Mac] Safari fails to fire page "load" event with video[preload=none]
Modified: trunk/LayoutTests/js/script-tests/dfg-int16array.js (182090 => 182091)
--- trunk/LayoutTests/js/script-tests/dfg-int16array.js 2015-03-27 23:49:15 UTC (rev 182090)
+++ trunk/LayoutTests/js/script-tests/dfg-int16array.js 2015-03-28 00:40:56 UTC (rev 182091)
@@ -1,11 +1,8 @@
// REGRESSION(r181326): It made dfg-int16array.js and dfg-int8array.js fail on AArch64 Linux
// https://bugs.webkit.org/show_bug.cgi?id=142629
-// Fix flakey dfg-int8array.js and dfg-int16array.js tests for ARM64
-// https://bugs.webkit.org/show_bug.cgi?id=138390
+//@ skip if $architecture == "arm64" and $hostOS == "linux"
-//@ skip if $architecture == "arm64"
-
description(
"This tests that int16 arrays work in the DFG."
);
Modified: trunk/LayoutTests/js/script-tests/dfg-int8array.js (182090 => 182091)
--- trunk/LayoutTests/js/script-tests/dfg-int8array.js 2015-03-27 23:49:15 UTC (rev 182090)
+++ trunk/LayoutTests/js/script-tests/dfg-int8array.js 2015-03-28 00:40:56 UTC (rev 182091)
@@ -1,11 +1,8 @@
// REGRESSION(r181326): It made dfg-int16array.js and dfg-int8array.js fail on AArch64 Linux
// https://bugs.webkit.org/show_bug.cgi?id=142629
-// Fix flakey dfg-int8array.js and dfg-int16array.js tests for ARM64
-// https://bugs.webkit.org/show_bug.cgi?id=138390
+//@ skip if $architecture == "arm64" and $hostOS == "linux"
-//@ skip if $architecture == "arm64"
-
description(
"This tests that int8 arrays work in the DFG."
);
Modified: trunk/Source/_javascript_Core/ChangeLog (182090 => 182091)
--- trunk/Source/_javascript_Core/ChangeLog 2015-03-27 23:49:15 UTC (rev 182090)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-03-28 00:40:56 UTC (rev 182091)
@@ -1,3 +1,17 @@
+2015-03-27 Michael Saboff <[email protected]>
+
+ Fix flakey dfg-int8array.js and dfg-int16array.js tests for ARM64
+ https://bugs.webkit.org/show_bug.cgi?id=138390
+
+ Reviewed by Mark Lam.
+
+ Changed load8Signed() and load16Signed() to only sign extend the loaded value to 32 bits
+ instead of 64 bits. This is what X86-64 does.
+
+ * assembler/MacroAssemblerARM64.h:
+ (JSC::MacroAssemblerARM64::load16Signed):
+ (JSC::MacroAssemblerARM64::load8Signed):
+
2015-03-27 Saam Barati <[email protected]>
Add back previously broken assert from bug 141869
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h (182090 => 182091)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2015-03-27 23:49:15 UTC (rev 182090)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2015-03-28 00:40:56 UTC (rev 182091)
@@ -921,13 +921,13 @@
void load16Signed(BaseIndex address, RegisterID dest)
{
if (!address.offset && (!address.scale || address.scale == 1)) {
- m_assembler.ldrsh<64>(dest, address.base, address.index, ARM64Assembler::UXTX, address.scale);
+ m_assembler.ldrsh<32>(dest, address.base, address.index, ARM64Assembler::UXTX, address.scale);
return;
}
signExtend32ToPtr(TrustedImm32(address.offset), getCachedMemoryTempRegisterIDAndInvalidate());
m_assembler.add<64>(memoryTempRegister, memoryTempRegister, address.index, ARM64Assembler::UXTX, address.scale);
- m_assembler.ldrsh<64>(dest, address.base, memoryTempRegister);
+ m_assembler.ldrsh<32>(dest, address.base, memoryTempRegister);
}
void load8(ImplicitAddress address, RegisterID dest)
@@ -962,13 +962,13 @@
void load8Signed(BaseIndex address, RegisterID dest)
{
if (!address.offset && !address.scale) {
- m_assembler.ldrsb<64>(dest, address.base, address.index, ARM64Assembler::UXTX, address.scale);
+ m_assembler.ldrsb<32>(dest, address.base, address.index, ARM64Assembler::UXTX, address.scale);
return;
}
signExtend32ToPtr(TrustedImm32(address.offset), getCachedMemoryTempRegisterIDAndInvalidate());
m_assembler.add<64>(memoryTempRegister, memoryTempRegister, address.index, ARM64Assembler::UXTX, address.scale);
- m_assembler.ldrsb<64>(dest, address.base, memoryTempRegister);
+ m_assembler.ldrsb<32>(dest, address.base, memoryTempRegister);
}
void store64(RegisterID src, ImplicitAddress address)