Title: [199261] trunk/Source/_javascript_Core
- Revision
- 199261
- Author
- [email protected]
- Date
- 2016-04-08 18:20:29 -0700 (Fri, 08 Apr 2016)
Log Message
MIPS: support Signed cond in branchTest32()
https://bugs.webkit.org/show_bug.cgi?id=156260
This is needed since r197688 makes use of it.
Patch by Guillaume Emont <[email protected]> on 2016-04-08
Reviewed by Mark Lam.
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::branchTest32):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (199260 => 199261)
--- trunk/Source/_javascript_Core/ChangeLog 2016-04-09 01:19:07 UTC (rev 199260)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-04-09 01:20:29 UTC (rev 199261)
@@ -1,3 +1,15 @@
+2016-04-08 Guillaume Emont <[email protected]>
+
+ MIPS: support Signed cond in branchTest32()
+ https://bugs.webkit.org/show_bug.cgi?id=156260
+
+ This is needed since r197688 makes use of it.
+
+ Reviewed by Mark Lam.
+
+ * assembler/MacroAssemblerMIPS.h:
+ (JSC::MacroAssemblerMIPS::branchTest32):
+
2016-04-08 Alex Christensen <[email protected]>
Progress towards running CMake WebKit2 on Mac
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (199260 => 199261)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h 2016-04-09 01:19:07 UTC (rev 199260)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h 2016-04-09 01:20:29 UTC (rev 199261)
@@ -1499,20 +1499,36 @@
Jump branchTest32(ResultCondition cond, RegisterID reg, RegisterID mask)
{
- ASSERT((cond == Zero) || (cond == NonZero));
+ ASSERT((cond == Zero) || (cond == NonZero) || (cond == Signed));
m_assembler.andInsn(cmpTempRegister, reg, mask);
- if (cond == Zero)
+ switch (cond) {
+ case Zero:
return branchEqual(cmpTempRegister, MIPSRegisters::zero);
- return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
+ case NonZero:
+ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
+ case Signed:
+ m_assembler.slt(cmpTempRegister, cmpTempRegister, MIPSRegisters::zero);
+ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
+ default:
+ RELEASE_ASSERT_NOT_REACHED();
+ }
}
Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1))
{
- ASSERT((cond == Zero) || (cond == NonZero));
+ ASSERT((cond == Zero) || (cond == NonZero) || (cond == Signed));
if (mask.m_value == -1 && !m_fixedWidth) {
- if (cond == Zero)
+ switch (cond) {
+ case Zero:
return branchEqual(reg, MIPSRegisters::zero);
- return branchNotEqual(reg, MIPSRegisters::zero);
+ case NonZero:
+ return branchNotEqual(reg, MIPSRegisters::zero);
+ case Signed:
+ m_assembler.slt(cmpTempRegister, reg, MIPSRegisters::zero);
+ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
+ default:
+ RELEASE_ASSERT_NOT_REACHED();
+ }
}
move(mask, immTempRegister);
return branchTest32(cond, reg, immTempRegister);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes