Modified: releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/ChangeLog (195188 => 195189)
--- releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/ChangeLog 2016-01-18 08:10:59 UTC (rev 195188)
+++ releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/ChangeLog 2016-01-18 08:15:36 UTC (rev 195189)
@@ -1,3 +1,18 @@
+2015-12-16 Michael Saboff <[email protected]>
+
+ ARM64 MacroAssembler improperly reuses data temp register in test32() and test8() calls
+ https://bugs.webkit.org/show_bug.cgi?id=152370
+
+ Reviewed by Benjamin Poulain.
+
+ Changed the test8/32(Address, Register) flavors to use the memoryTempRegister for loading the value
+ att Address so that it doesn't collide with the subsequent use of dataTempRegister by the
+ test32(Register, Register) function.
+
+ * assembler/MacroAssemblerARM64.h:
+ (JSC::MacroAssemblerARM64::test32):
+ (JSC::MacroAssemblerARM64::test8):
+
2015-12-10 Daniel Bates <[email protected]>
[CSP] eval() is not blocked for stringified literals
Modified: releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/assembler/MacroAssemblerARM64.h (195188 => 195189)
--- releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2016-01-18 08:10:59 UTC (rev 195188)
+++ releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2016-01-18 08:15:36 UTC (rev 195189)
@@ -2276,14 +2276,14 @@
void test32(ResultCondition cond, Address address, TrustedImm32 mask, RegisterID dest)
{
- load32(address, getCachedDataTempRegisterIDAndInvalidate());
- test32(cond, dataTempRegister, mask, dest);
+ load32(address, getCachedMemoryTempRegisterIDAndInvalidate());
+ test32(cond, memoryTempRegister, mask, dest);
}
void test8(ResultCondition cond, Address address, TrustedImm32 mask, RegisterID dest)
{
- load8(address, getCachedDataTempRegisterIDAndInvalidate());
- test32(cond, dataTempRegister, mask, dest);
+ load8(address, getCachedMemoryTempRegisterIDAndInvalidate());
+ test32(cond, memoryTempRegister, mask, dest);
}
void test64(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)