summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-11-29 16:08:31 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-11-29 16:08:31 +0100
commitc242216d99f76443f3fe9160d15d78f06f7ff406 (patch)
treeb55b470c20bda9f9d9f9052fc5a02bccbabc4d56 /Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
parentc617e2a25aca6cb95ab9d1a7cc55b363a12e861e (diff)
parent48c1382c33b77b002c1b295b9d2d6c4987526add (diff)
downloadqtwebkit-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.h33
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)