Title: [135745] trunk/Source/_javascript_Core
Revision
135745
Author
commit-qu...@webkit.org
Date
2012-11-26 11:37:18 -0800 (Mon, 26 Nov 2012)

Log Message

[sh4] _javascript_Core JIT build is broken since r135330
Add missing implementation for sh4 arch.
https://bugs.webkit.org/show_bug.cgi?id=103145

Patch by Julien BRIANCEAU <jbrianc...@nds.com> on 2012-11-26
Reviewed by Oliver Hunt.

* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::canJumpReplacePatchableBranchPtrWithPatch):
(MacroAssemblerSH4):
(JSC::MacroAssemblerSH4::startOfBranchPtrWithPatchOnRegister):
(JSC::MacroAssemblerSH4::revertJumpReplacementToBranchPtrWithPatch):
(JSC::MacroAssemblerSH4::startOfPatchableBranchPtrWithPatchOnAddress):
(JSC::MacroAssemblerSH4::revertJumpReplacementToPatchableBranchPtrWithPatch):
* assembler/SH4Assembler.h:
(JSC::SH4Assembler::revertJump):
(SH4Assembler):
(JSC::SH4Assembler::printInstr):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (135744 => 135745)


--- trunk/Source/_javascript_Core/ChangeLog	2012-11-26 19:31:53 UTC (rev 135744)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-11-26 19:37:18 UTC (rev 135745)
@@ -1,3 +1,23 @@
+2012-11-26  Julien BRIANCEAU   <jbrianc...@nds.com>
+
+        [sh4] _javascript_Core JIT build is broken since r135330
+        Add missing implementation for sh4 arch.
+        https://bugs.webkit.org/show_bug.cgi?id=103145
+
+        Reviewed by Oliver Hunt.
+
+        * assembler/MacroAssemblerSH4.h:
+        (JSC::MacroAssemblerSH4::canJumpReplacePatchableBranchPtrWithPatch):
+        (MacroAssemblerSH4):
+        (JSC::MacroAssemblerSH4::startOfBranchPtrWithPatchOnRegister):
+        (JSC::MacroAssemblerSH4::revertJumpReplacementToBranchPtrWithPatch):
+        (JSC::MacroAssemblerSH4::startOfPatchableBranchPtrWithPatchOnAddress):
+        (JSC::MacroAssemblerSH4::revertJumpReplacementToPatchableBranchPtrWithPatch):
+        * assembler/SH4Assembler.h:
+        (JSC::SH4Assembler::revertJump):
+        (SH4Assembler):
+        (JSC::SH4Assembler::printInstr):
+
 2012-11-26  Yuqiang Xian  <yuqiang.x...@intel.com>
 
         Use load64 instead of loadPtr to load a JSValue on JSVALUE64 platforms

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (135744 => 135745)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2012-11-26 19:31:53 UTC (rev 135744)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2012-11-26 19:37:18 UTC (rev 135745)
@@ -2216,6 +2216,29 @@
         return 0;
     }
 
+    static bool canJumpReplacePatchableBranchPtrWithPatch() { return false; }
+
+    static CodeLocationLabel startOfBranchPtrWithPatchOnRegister(CodeLocationDataLabelPtr label)
+    {
+        return label.labelAtOffset(0);
+    }
+
+    static void revertJumpReplacementToBranchPtrWithPatch(CodeLocationLabel instructionStart, RegisterID, void* initialValue)
+    {
+        SH4Assembler::revertJump(instructionStart.dataLocation(), reinterpret_cast<uintptr_t>(initialValue) & 0xffff);
+    }
+
+    static CodeLocationLabel startOfPatchableBranchPtrWithPatchOnAddress(CodeLocationDataLabelPtr)
+    {
+        UNREACHABLE_FOR_PLATFORM();
+        return CodeLocationLabel();
+    }
+
+    static void revertJumpReplacementToPatchableBranchPtrWithPatch(CodeLocationLabel instructionStart, Address, void* initialValue)
+    {
+        UNREACHABLE_FOR_PLATFORM();
+    }
+
 protected:
     SH4Assembler::Condition SH4Condition(RelationalCondition cond)
     {

Modified: trunk/Source/_javascript_Core/assembler/SH4Assembler.h (135744 => 135745)


--- trunk/Source/_javascript_Core/assembler/SH4Assembler.h	2012-11-26 19:31:53 UTC (rev 135744)
+++ trunk/Source/_javascript_Core/assembler/SH4Assembler.h	2012-11-26 19:37:18 UTC (rev 135745)
@@ -1462,6 +1462,20 @@
 
     // Linking & patching
 
+    static void revertJump(void* instructionStart, SH4Word imm)
+    {
+        SH4Word *insn = reinterpret_cast<SH4Word*>(instructionStart);
+        SH4Word disp;
+
+        ASSERT((insn[0] & 0xf000) == MOVL_READ_OFFPC_OPCODE);
+
+        disp = insn[0] & 0x00ff;
+        insn += 2 + (disp << 1); // PC += 4 + (disp*4)
+        insn = (SH4Word *) ((unsigned) insn & (~3));
+        insn[0] = imm;
+        cacheFlush(insn, sizeof(SH4Word));
+    }
+
     void linkJump(AssemblerLabel from, AssemblerLabel to, JumpType type = JumpFar)
     {
         ASSERT(to.isSet());
@@ -1755,6 +1769,9 @@
         case FCNVDS_DRM_FPUL_OPCODE:
             format = "    FCNVDS FR%d, FPUL\n";
             break;
+        case FCNVSD_FPUL_DRN_OPCODE:
+            format = "    FCNVSD FPUL, FR%d\n";
+            break;
         }
         if (format) {
             if (isdoubleInst)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to