Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (115143 => 115144)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h 2012-04-25 00:11:26 UTC (rev 115143)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h 2012-04-25 00:12:23 UTC (rev 115144)
@@ -156,6 +156,17 @@
releaseScratch(scr);
}
+ void and32(TrustedImm32 imm, RegisterID src, RegisterID dest)
+ {
+ if (src != dest) {
+ move(imm, dest);
+ and32(src, dest);
+ return;
+ }
+
+ and32(imm, dest);
+ }
+
void lshift32(RegisterID shiftamount, RegisterID dest)
{
if (shiftamount == SH4Registers::r0)
@@ -193,6 +204,14 @@
releaseScratch(scr);
}
+ void lshift32(RegisterID src, TrustedImm32 shiftamount, RegisterID dest)
+ {
+ if (src != dest)
+ move(src, dest);
+
+ lshift32(shiftamount, dest);
+ }
+
void mul32(RegisterID src, RegisterID dest)
{
m_assembler.imullRegReg(src, dest);
@@ -239,6 +258,29 @@
}
}
+
+void or32(TrustedImm32 imm, RegisterID src, RegisterID dest)
+ {
+ if (src != dest) {
+ move(imm, dest);
+ or32(src, dest);
+ return;
+ }
+
+ or32(imm, dest);
+ }
+
+ void xor32(TrustedImm32 imm, RegisterID src, RegisterID dest)
+ {
+ if (src != dest) {
+ move(imm, dest);
+ xor32(src, dest);
+ return;
+ }
+
+ xor32(imm, dest);
+ }
+
void rshift32(RegisterID shiftamount, RegisterID dest)
{
if (shiftamount == SH4Registers::r0)
@@ -1744,6 +1786,13 @@
return branchSub32(cond, scratchReg3, dest);
}
+ Jump branchSub32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID dest)
+ {
+ if (src1 != dest)
+ move(src1, dest);
+ return branchSub32(cond, src2, dest);
+ }
+
Jump branchOr32(ResultCondition cond, RegisterID src, RegisterID dest)
{
ASSERT((cond == Signed) || (cond == Zero) || (cond == NonZero));
@@ -1805,6 +1854,14 @@
releaseScratch(scr);
}
+ void urshift32(RegisterID src, TrustedImm32 shiftamount, RegisterID dest)
+ {
+ if (src != dest)
+ move(src, dest);
+
+ urshift32(shiftamount, dest);
+ }
+
Call call()
{
return Call(m_assembler.call(), Call::Linkable);