Title: [199372] trunk/Source/_javascript_Core
Revision
199372
Author
[email protected]
Date
2016-04-12 10:27:07 -0700 (Tue, 12 Apr 2016)

Log Message

MIPS: add MacroAssemblerMIPS::store8(TrustedImm32,ImplicitAddress)
https://bugs.webkit.org/show_bug.cgi?id=156481

This method with this signature is used by r199075, and therefore
WebKit doesn't build on MIPS since then.

Patch by Guillaume Emont <[email protected]> on 2016-04-12
Reviewed by Mark Lam.

* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::store8):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (199371 => 199372)


--- trunk/Source/_javascript_Core/ChangeLog	2016-04-12 17:08:31 UTC (rev 199371)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-04-12 17:27:07 UTC (rev 199372)
@@ -1,3 +1,16 @@
+2016-04-12  Guillaume Emont  <[email protected]>
+
+        MIPS: add MacroAssemblerMIPS::store8(TrustedImm32,ImplicitAddress)
+        https://bugs.webkit.org/show_bug.cgi?id=156481
+
+        This method with this signature is used by r199075, and therefore
+        WebKit doesn't build on MIPS since then.
+
+        Reviewed by Mark Lam.
+
+        * assembler/MacroAssemblerMIPS.h:
+        (JSC::MacroAssemblerMIPS::store8):
+
 2016-04-12  Saam barati  <[email protected]>
 
         We incorrectly parse arrow function expressions

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (199371 => 199372)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2016-04-12 17:08:31 UTC (rev 199371)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2016-04-12 17:27:07 UTC (rev 199372)
@@ -1055,6 +1055,33 @@
         }
     }
 
+    void store8(TrustedImm32 imm, ImplicitAddress address)
+    {
+        if (address.offset >= -32768 && address.offset <= 32767
+            && !m_fixedWidth) {
+            if (!imm.m_value)
+                m_assembler.sb(MIPSRegisters::zero, address.base, address.offset);
+            else {
+                move(imm, immTempRegister);
+                m_assembler.sb(immTempRegister, address.base, address.offset);
+            }
+        } else {
+            /*
+                lui     addrTemp, (offset + 0x8000) >> 16
+                addu    addrTemp, addrTemp, base
+                sb      immTemp, (offset & 0xffff)(addrTemp)
+              */
+            m_assembler.lui(addrTempRegister, (address.offset + 0x8000) >> 16);
+            m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
+            if (!imm.m_value && !m_fixedWidth)
+                m_assembler.sb(MIPSRegisters::zero, addrTempRegister, address.offset);
+            else {
+                move(imm, immTempRegister);
+                m_assembler.sb(immTempRegister, addrTempRegister, address.offset);
+            }
+        }
+    }
+
     void store16(RegisterID src, BaseIndex address)
     {
         if (address.offset >= -32768 && address.offset <= 32767
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to