Title: [95652] trunk/Source/_javascript_Core
Revision
95652
Author
[email protected]
Date
2011-09-21 11:33:43 -0700 (Wed, 21 Sep 2011)

Log Message

MacroAssembler fixes.
https://bugs.webkit.org/show_bug.cgi?id=68494

Reviewed by Sam Weinig.

Add X86-64's 3 operand or32 to other MacroAssembler, fix load32's [const] void* mismatch

* assembler/MacroAssembler.h:
(JSC::MacroAssembler::orPtr):
(JSC::MacroAssembler::loadPtr):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::or32):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::or32):
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::or32):
* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::or32):
(JSC::MacroAssemblerSH4::load32):
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::load32):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::load32):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (95651 => 95652)


--- trunk/Source/_javascript_Core/ChangeLog	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-09-21 18:33:43 UTC (rev 95652)
@@ -1,3 +1,29 @@
+2011-09-20  Gavin Barraclough  <[email protected]>
+
+        MacroAssembler fixes.
+        https://bugs.webkit.org/show_bug.cgi?id=68494
+
+        Reviewed by Sam Weinig.
+
+        Add X86-64's 3 operand or32 to other MacroAssembler, fix load32's [const] void* mismatch
+
+        * assembler/MacroAssembler.h:
+        (JSC::MacroAssembler::orPtr):
+        (JSC::MacroAssembler::loadPtr):
+        * assembler/MacroAssemblerARM.h:
+        (JSC::MacroAssemblerARM::or32):
+        * assembler/MacroAssemblerARMv7.h:
+        (JSC::MacroAssemblerARMv7::or32):
+        * assembler/MacroAssemblerMIPS.h:
+        (JSC::MacroAssemblerMIPS::or32):
+        * assembler/MacroAssemblerSH4.h:
+        (JSC::MacroAssemblerSH4::or32):
+        (JSC::MacroAssemblerSH4::load32):
+        * assembler/MacroAssemblerX86.h:
+        (JSC::MacroAssemblerX86::load32):
+        * assembler/MacroAssemblerX86_64.h:
+        (JSC::MacroAssemblerX86_64::load32):
+
 2011-09-20  Geoffrey Garen  <[email protected]>
 
         Some Heap cleanup.

Modified: trunk/Source/_javascript_Core/assembler/MacroAssembler.h (95651 => 95652)


--- trunk/Source/_javascript_Core/assembler/MacroAssembler.h	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/assembler/MacroAssembler.h	2011-09-21 18:33:43 UTC (rev 95652)
@@ -214,6 +214,11 @@
         or32(src, dest);
     }
 
+    void orPtr(RegisterID op1, RegisterID op2, RegisterID dest)
+    {
+        or32(op1, op2, dest);
+    }
+
     void orPtr(TrustedImmPtr imm, RegisterID dest)
     {
         or32(TrustedImm32(imm), dest);
@@ -260,7 +265,7 @@
         load32(address, dest);
     }
 
-    void loadPtr(void* address, RegisterID dest)
+    void loadPtr(const void* address, RegisterID dest)
     {
         load32(address, dest);
     }

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (95651 => 95652)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-09-21 18:33:43 UTC (rev 95652)
@@ -171,6 +171,11 @@
         m_assembler.orrs_r(dest, dest, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
     }
 
+    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
+    {
+        m_assembler.orrs_r(dest, op1, op2);
+    }
+
     void rshift32(RegisterID shift_amount, RegisterID dest)
     {
         ARMWord w = ARMAssembler::getOp2(0x1f);

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (95651 => 95652)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-09-21 18:33:43 UTC (rev 95652)
@@ -284,6 +284,11 @@
         }
     }
 
+    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
+    {
+        m_assembler.orr(dest, op1, op2);
+    }
+
     void rshift32(RegisterID shift_amount, RegisterID dest)
     {
         // Clamp the shift to the range 0..31

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (95651 => 95652)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-09-21 18:33:43 UTC (rev 95652)
@@ -301,6 +301,11 @@
         m_assembler.orInsn(dest, dest, src);
     }
 
+    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
+    {
+        m_assembler.orInsn(dest, op1, op2);
+    }
+
     void or32(TrustedImm32 imm, RegisterID dest)
     {
         if (!imm.m_isPointer && !imm.m_value && !m_fixedWidth)

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (95651 => 95652)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2011-09-21 18:33:43 UTC (rev 95652)
@@ -221,6 +221,18 @@
         releaseScratch(scr);
     }
 
+    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
+    {
+        if (op1 == op2)
+            move(op1, dest);
+        else if (op1 == dest)
+            or32(op2, dest);
+        else {
+            move(op2, dest);
+            or32(op1, dest);
+        }
+    }
+
     void rshift32(RegisterID shiftamount, RegisterID dest)
     {
         compare32(32, shiftamount, Equal);
@@ -529,9 +541,9 @@
         releaseScratch(scr);
     }
 
-    void load32(void* address, RegisterID dest)
+    void load32(const void* address, RegisterID dest)
     {
-        m_assembler.loadConstant(reinterpret_cast<uint32_t>(address), dest);
+        m_assembler.loadConstant(reinterpret_cast<uint32_t>(const_cast<void*>(address)), dest);
         m_assembler.movlMemReg(dest, dest);
     }
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h (95651 => 95652)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h	2011-09-21 18:33:43 UTC (rev 95652)
@@ -83,7 +83,7 @@
         m_assembler.subl_im(imm.m_value, address.m_ptr);
     }
 
-    void load32(void* address, RegisterID dest)
+    void load32(const void* address, RegisterID dest)
     {
         m_assembler.movl_mr(address, dest);
     }

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h (95651 => 95652)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-09-21 18:18:59 UTC (rev 95651)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-09-21 18:33:43 UTC (rev 95652)
@@ -77,7 +77,7 @@
         sub32(imm, Address(scratchRegister));
     }
 
-    void load32(void* address, RegisterID dest)
+    void load32(const void* address, RegisterID dest)
     {
         if (dest == X86Registers::eax)
             m_assembler.movl_mEAX(address);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to