Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (113933 => 113934)
--- trunk/Source/_javascript_Core/ChangeLog 2012-04-12 01:09:06 UTC (rev 113933)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-04-12 01:13:07 UTC (rev 113934)
@@ -1,5 +1,19 @@
2012-04-11 Filip Pizlo <[email protected]>
+ Unreviewed attempting to make Qt's eccentric hardware work.
+
+ * assembler/MacroAssemblerARM.h:
+ (JSC::MacroAssemblerARM::compare8):
+ (MacroAssemblerARM):
+ * assembler/MacroAssemblerMIPS.h:
+ (JSC::MacroAssemblerMIPS::compare8):
+ (MacroAssemblerMIPS):
+ * assembler/MacroAssemblerSH4.h:
+ (JSC::MacroAssemblerSH4::compare8):
+ (MacroAssemblerSH4):
+
+2012-04-11 Filip Pizlo <[email protected]>
+
op_is_foo should be optimized
https://bugs.webkit.org/show_bug.cgi?id=83666
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (113933 => 113934)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h 2012-04-12 01:09:06 UTC (rev 113933)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h 2012-04-12 01:13:07 UTC (rev 113934)
@@ -687,6 +687,12 @@
m_assembler.mov_r(dest, ARMAssembler::getOp2(1), ARMCondition(cond));
}
+ void compare8(RelationalCondition cond, AbsoluteAddress left, TrustedImm32 right, RegisterID dest)
+ {
+ load8(left.m_ptr, ARMRegisters::S1);
+ compare32(cond, ARMRegisters::S1, right, dest);
+ }
+
void test32(ResultCondition cond, RegisterID reg, TrustedImm32 mask, RegisterID dest)
{
if (mask.m_value == -1)
@@ -743,7 +749,7 @@
load32(left.m_ptr, ARMRegisters::S1);
return branch32(cond, ARMRegisters::S1, right);
}
-
+
Jump branch32(RelationalCondition cond, AbsoluteAddress left, TrustedImm32 right)
{
load32(left.m_ptr, ARMRegisters::S1);
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (113933 => 113934)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h 2012-04-12 01:09:06 UTC (rev 113933)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h 2012-04-12 01:13:07 UTC (rev 113934)
@@ -994,6 +994,15 @@
return branch32(cond, dataTempRegister, immTempRegister);
}
+ void compare8(RelationalCondition cond, Address left, TrustedImm32 right, RegisterID dest)
+ {
+ // Make sure the immediate value is unsigned 8 bits.
+ ASSERT(!(right.m_value & 0xFFFFFF00));
+ load8(left, dataTempRegister);
+ move(right, immTempRegister);
+ compare32(cond, dataTempRegister, immTempRegister, dest);
+ }
+
Jump branch8(RelationalCondition cond, BaseIndex left, TrustedImm32 right)
{
ASSERT(!(right.m_value & 0xFFFFFF00));
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (113933 => 113934)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h 2012-04-12 01:09:06 UTC (rev 113933)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h 2012-04-12 01:13:07 UTC (rev 113934)
@@ -1266,6 +1266,14 @@
return jmp;
}
+ void compare8(RelationalCondition cond, Address left, TrustedImm32 right, RegisterID dest)
+ {
+ RegisterID addressTempRegister = claimScratch();
+ load8(left, addressTempRegister);
+ compare32(cond, addressTempRegister, right, dest);
+ releaseScratch(addressTempRegister);
+ }
+
Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest)
{
m_assembler.ftrcdrmfpul(src);