Changeset 135745 in webkit


Ignore:
Timestamp:
Nov 26, 2012, 11:37:18 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

[sh4] JavaScriptCore 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 <jbrianceau@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):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r135738 r135745  
     12012-11-26  Julien BRIANCEAU   <jbrianceau@nds.com>
     2
     3        [sh4] JavaScriptCore JIT build is broken since r135330
     4        Add missing implementation for sh4 arch.
     5        https://bugs.webkit.org/show_bug.cgi?id=103145
     6
     7        Reviewed by Oliver Hunt.
     8
     9        * assembler/MacroAssemblerSH4.h:
     10        (JSC::MacroAssemblerSH4::canJumpReplacePatchableBranchPtrWithPatch):
     11        (MacroAssemblerSH4):
     12        (JSC::MacroAssemblerSH4::startOfBranchPtrWithPatchOnRegister):
     13        (JSC::MacroAssemblerSH4::revertJumpReplacementToBranchPtrWithPatch):
     14        (JSC::MacroAssemblerSH4::startOfPatchableBranchPtrWithPatchOnAddress):
     15        (JSC::MacroAssemblerSH4::revertJumpReplacementToPatchableBranchPtrWithPatch):
     16        * assembler/SH4Assembler.h:
     17        (JSC::SH4Assembler::revertJump):
     18        (SH4Assembler):
     19        (JSC::SH4Assembler::printInstr):
     20
    1212012-11-26  Yuqiang Xian  <yuqiang.xian@intel.com>
    222
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h

    r135597 r135745  
    22172217    }
    22182218
     2219    static bool canJumpReplacePatchableBranchPtrWithPatch() { return false; }
     2220
     2221    static CodeLocationLabel startOfBranchPtrWithPatchOnRegister(CodeLocationDataLabelPtr label)
     2222    {
     2223        return label.labelAtOffset(0);
     2224    }
     2225
     2226    static void revertJumpReplacementToBranchPtrWithPatch(CodeLocationLabel instructionStart, RegisterID, void* initialValue)
     2227    {
     2228        SH4Assembler::revertJump(instructionStart.dataLocation(), reinterpret_cast<uintptr_t>(initialValue) & 0xffff);
     2229    }
     2230
     2231    static CodeLocationLabel startOfPatchableBranchPtrWithPatchOnAddress(CodeLocationDataLabelPtr)
     2232    {
     2233        UNREACHABLE_FOR_PLATFORM();
     2234        return CodeLocationLabel();
     2235    }
     2236
     2237    static void revertJumpReplacementToPatchableBranchPtrWithPatch(CodeLocationLabel instructionStart, Address, void* initialValue)
     2238    {
     2239        UNREACHABLE_FOR_PLATFORM();
     2240    }
     2241
    22192242protected:
    22202243    SH4Assembler::Condition SH4Condition(RelationalCondition cond)
  • trunk/Source/JavaScriptCore/assembler/SH4Assembler.h

    r135597 r135745  
    14631463    // Linking & patching
    14641464
     1465    static void revertJump(void* instructionStart, SH4Word imm)
     1466    {
     1467        SH4Word *insn = reinterpret_cast<SH4Word*>(instructionStart);
     1468        SH4Word disp;
     1469
     1470        ASSERT((insn[0] & 0xf000) == MOVL_READ_OFFPC_OPCODE);
     1471
     1472        disp = insn[0] & 0x00ff;
     1473        insn += 2 + (disp << 1); // PC += 4 + (disp*4)
     1474        insn = (SH4Word *) ((unsigned) insn & (~3));
     1475        insn[0] = imm;
     1476        cacheFlush(insn, sizeof(SH4Word));
     1477    }
     1478
    14651479    void linkJump(AssemblerLabel from, AssemblerLabel to, JumpType type = JumpFar)
    14661480    {
     
    17561770            format = "    FCNVDS FR%d, FPUL\n";
    17571771            break;
     1772        case FCNVSD_FPUL_DRN_OPCODE:
     1773            format = "    FCNVSD FPUL, FR%d\n";
     1774            break;
    17581775        }
    17591776        if (format) {
Note: See TracChangeset for help on using the changeset viewer.