[JSC] Fix the ARM64 MacroAssembler after r197816
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 9 Mar 2016 23:57:30 +0000 (23:57 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 9 Mar 2016 23:57:30 +0000 (23:57 +0000)
https://bugs.webkit.org/show_bug.cgi?id=155268

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-03-09
Reviewed by Mark Lam.

The patch tries to generate instructions that do not exist,
causing quite fun stuff at runtime.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@197895 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/MacroAssemblerARM64.h

index 95f9343..b7399f4 100644 (file)
@@ -1,3 +1,18 @@
+2016-03-09  Benjamin Poulain  <bpoulain@apple.com>
+
+        [JSC] Fix the ARM64 MacroAssembler after r197816
+        https://bugs.webkit.org/show_bug.cgi?id=155268
+
+        Reviewed by Mark Lam.
+
+        The patch tries to generate instructions that do not exist,
+        causing quite fun stuff at runtime.
+
+        * assembler/MacroAssemblerARM64.h:
+        (JSC::MacroAssemblerARM64::load8):
+        (JSC::MacroAssemblerARM64::store16):
+        (JSC::MacroAssemblerARM64::store8):
+
 2016-03-09  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r197873.
index c404caa..f619096 100644 (file)
@@ -1161,7 +1161,7 @@ public:
 
     void load8(RegisterID src, PostIndex simm, RegisterID dest)
     {
-        m_assembler.ldr<8>(dest, src, simm);
+        m_assembler.ldrb(dest, src, simm);
     }
 
     void load8SignedExtendTo32(ImplicitAddress address, RegisterID dest)
@@ -1364,7 +1364,7 @@ public:
             return;
 
         signExtend32ToPtr(TrustedImm32(address.offset), getCachedMemoryTempRegisterIDAndInvalidate());
-        m_assembler.str<16>(src, address.base, memoryTempRegister);
+        m_assembler.strh(src, address.base, memoryTempRegister);
     }
 
     void store16(RegisterID src, BaseIndex address)
@@ -1403,7 +1403,7 @@ public:
             return;
 
         signExtend32ToPtr(TrustedImm32(address.offset), getCachedMemoryTempRegisterIDAndInvalidate());
-        m_assembler.str<8>(src, address.base, memoryTempRegister);
+        m_assembler.strb(src, address.base, memoryTempRegister);
     }
 
     void store8(TrustedImm32 imm, void* address)
@@ -1430,7 +1430,7 @@ public:
 
     void store8(RegisterID src, RegisterID dest, PostIndex simm)
     {
-        m_assembler.str<8>(src, dest, simm);
+        m_assembler.strb(src, dest, simm);
     }
 
     // Floating-point operations: