diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-11-29 16:08:31 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-11-29 16:08:31 +0100 |
commit | c242216d99f76443f3fe9160d15d78f06f7ff406 (patch) | |
tree | b55b470c20bda9f9d9f9052fc5a02bccbabc4d56 /Source/JavaScriptCore/assembler/MacroAssemblerSH4.h | |
parent | c617e2a25aca6cb95ab9d1a7cc55b363a12e861e (diff) | |
parent | 48c1382c33b77b002c1b295b9d2d6c4987526add (diff) | |
download | qtwebkit-c242216d99f76443f3fe9160d15d78f06f7ff406.tar.gz |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
.qmake.conf
Change-Id: I9f566e48b319664f2783788572935da39749c91c
Diffstat (limited to 'Source/JavaScriptCore/assembler/MacroAssemblerSH4.h')
-rw-r--r-- | Source/JavaScriptCore/assembler/MacroAssemblerSH4.h | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h b/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h index ad5acfaeb..16e604b00 100644 --- a/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h +++ b/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h @@ -1312,15 +1312,15 @@ public: void load32WithUnalignedHalfWords(BaseIndex address, RegisterID dest) { RegisterID scr = claimScratch(); - RegisterID scr1 = claimScratch(); Jump m_jump; JumpList end; + loadEffectiveAddress(address, scr); + + RegisterID scr1 = claimScratch(); if (dest != SH4Registers::r0) move(SH4Registers::r0, scr1); - loadEffectiveAddress(address, scr); - m_assembler.ensureSpace(m_assembler.maxInstructionSize + 58, sizeof(uint32_t)); move(scr, SH4Registers::r0); m_assembler.testlImm8r(0x3, SH4Registers::r0); @@ -1452,10 +1452,9 @@ public: m_assembler.dcmppeq(right, right); takeBranch.append(Jump(m_assembler.jne(), SH4Assembler::JumpNear)); m_assembler.dcmppeq(left, right); - Jump m_jump = Jump(m_assembler.je()); + m_assembler.branch(BF_OPCODE, 2); takeBranch.link(this); - m_assembler.extraInstrForBranch(scratchReg3); - return m_jump; + return Jump(m_assembler.extraInstrForBranch(scratchReg3)); } if (cond == DoubleGreaterThanOrUnordered) { @@ -1466,10 +1465,9 @@ public: m_assembler.dcmppeq(right, right); takeBranch.append(Jump(m_assembler.jne(), SH4Assembler::JumpNear)); m_assembler.dcmppgt(right, left); - Jump m_jump = Jump(m_assembler.je()); + m_assembler.branch(BF_OPCODE, 2); takeBranch.link(this); - m_assembler.extraInstrForBranch(scratchReg3); - return m_jump; + return Jump(m_assembler.extraInstrForBranch(scratchReg3)); } if (cond == DoubleGreaterThanOrEqualOrUnordered) { @@ -1485,10 +1483,9 @@ public: m_assembler.dcmppeq(right, right); takeBranch.append(Jump(m_assembler.jne(), SH4Assembler::JumpNear)); m_assembler.dcmppgt(left, right); - Jump m_jump = Jump(m_assembler.je()); + m_assembler.branch(BF_OPCODE, 2); takeBranch.link(this); - m_assembler.extraInstrForBranch(scratchReg3); - return m_jump; + return Jump(m_assembler.extraInstrForBranch(scratchReg3)); } if (cond == DoubleLessThanOrEqualOrUnordered) { @@ -1504,17 +1501,15 @@ public: Jump branchTrue() { m_assembler.ensureSpace(m_assembler.maxInstructionSize + 6, sizeof(uint32_t)); - Jump m_jump = Jump(m_assembler.je()); - m_assembler.extraInstrForBranch(scratchReg3); - return m_jump; + m_assembler.branch(BF_OPCODE, 2); + return Jump(m_assembler.extraInstrForBranch(scratchReg3)); } Jump branchFalse() { m_assembler.ensureSpace(m_assembler.maxInstructionSize + 6, sizeof(uint32_t)); - Jump m_jump = Jump(m_assembler.jne()); - m_assembler.extraInstrForBranch(scratchReg3); - return m_jump; + m_assembler.branch(BT_OPCODE, 2); + return Jump(m_assembler.extraInstrForBranch(scratchReg3)); } Jump branch32(RelationalCondition cond, BaseIndex left, TrustedImm32 right) @@ -2430,7 +2425,7 @@ public: static void revertJumpReplacementToBranchPtrWithPatch(CodeLocationLabel instructionStart, RegisterID rd, void* initialValue) { - SH4Assembler::revertJumpToMove(instructionStart.dataLocation(), rd, reinterpret_cast<int>(initialValue)); + SH4Assembler::revertJumpReplacementToBranchPtrWithPatch(instructionStart.dataLocation(), rd, reinterpret_cast<int>(initialValue)); } static CodeLocationLabel startOfPatchableBranchPtrWithPatchOnAddress(CodeLocationDataLabelPtr) |