Title: [148926] trunk/Source/_javascript_Core
Revision
148926
Author
[email protected]
Date
2013-04-22 16:25:41 -0700 (Mon, 22 Apr 2013)

Log Message

Add branchAdd32 missing implementation in SH4 base JIT.
This should fix SH4 build, broken since r148893.
https://bugs.webkit.org/show_bug.cgi?id=114993.

Patch by Julien Brianceau <[email protected]> on 2013-04-22
Reviewed by Oliver Hunt.

* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::branchAdd32):
(MacroAssemblerSH4):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (148925 => 148926)


--- trunk/Source/_javascript_Core/ChangeLog	2013-04-22 23:12:10 UTC (rev 148925)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-04-22 23:25:41 UTC (rev 148926)
@@ -1,3 +1,15 @@
+2013-04-22  Julien Brianceau  <[email protected]>
+
+        Add branchAdd32 missing implementation in SH4 base JIT.
+        This should fix SH4 build, broken since r148893.
+        https://bugs.webkit.org/show_bug.cgi?id=114993.
+
+        Reviewed by Oliver Hunt.
+
+        * assembler/MacroAssemblerSH4.h:
+        (JSC::MacroAssemblerSH4::branchAdd32):
+        (MacroAssemblerSH4):
+
 2013-04-22  Benjamin Poulain  <[email protected]>
 
         Windows build fix after r148921

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (148925 => 148926)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2013-04-22 23:12:10 UTC (rev 148925)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2013-04-22 23:25:41 UTC (rev 148926)
@@ -1975,6 +1975,40 @@
         return branchTrue();
     }
 
+    Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, AbsoluteAddress dest)
+    {
+        ASSERT((cond == Overflow) || (cond == Signed) || (cond == PositiveOrZero) || (cond == Zero) || (cond == NonZero));
+        Jump result;
+
+        move(imm, scratchReg3);
+        RegisterID destptr = claimScratch();
+        RegisterID destval = claimScratch();
+        m_assembler.loadConstant(reinterpret_cast<uint32_t>(dest.m_ptr), destptr);
+        m_assembler.movlMemReg(destptr, destval);
+        if (cond == Overflow) {
+            m_assembler.addvlRegReg(scratchReg3, destval);
+            result = branchTrue();
+        } else {
+            m_assembler.addlRegReg(scratchReg3, destval);
+
+            if (cond == Signed) {
+                m_assembler.cmppz(destval);
+                result = branchFalse();
+            } else if (cond == PositiveOrZero) {
+                m_assembler.cmppz(destval);
+                result = branchTrue();
+            } else {
+                m_assembler.movImm8(0, scratchReg3);
+                m_assembler.cmplRegReg(scratchReg3, destval, SH4Condition(cond));
+                result = (cond == NonZero) ? branchFalse() : branchTrue();
+            }
+        }
+        m_assembler.movlRegMem(destval, destptr);
+        releaseScratch(destval);
+        releaseScratch(destptr);
+        return result;
+    }
+
     Jump branchMul32(ResultCondition cond, RegisterID src, RegisterID dest)
     {
         ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to