Changeset 44356 in webkit for trunk/JavaScriptCore/jit/JITArithmetic.cpp
- Timestamp:
- Jun 2, 2009, 2:34:28 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JITArithmetic.cpp
r43781 r44356 106 106 107 107 if (isOperandConstantImmediateInt(op2)) { 108 // isOperandConstantImmediateInt(op2) => 1 SlowCase 108 109 emitGetVirtualRegister(op1, regT0); 109 110 emitJumpSlowCaseIfNotImmediateInteger(regT0); … … 119 120 Jump lhsIsInt = emitJumpIfImmediateInteger(regT0); 120 121 #if USE(ALTERNATE_JSIMMEDIATE) 122 // supportsFloatingPoint() && USE(ALTERNATE_JSIMMEDIATE) => 3 SlowCases 121 123 addSlowCase(emitJumpIfNotImmediateNumber(regT0)); 122 124 movePtrToDouble(regT0, fpRegT0); 123 #else 125 addSlowCase(branchTruncateDoubleToInt32(fpRegT0, regT0)); 126 #else 127 // supportsFloatingPoint() && !USE(ALTERNATE_JSIMMEDIATE) => 5 SlowCases (of which 1 IfNotJSCell) 124 128 emitJumpSlowCaseIfNotJSCell(regT0, op1); 125 129 addSlowCase(checkStructure(regT0, m_globalData->numberStructure.get())); 126 130 loadDouble(Address(regT0, FIELD_OFFSET(JSNumberCell, m_value)), fpRegT0); 127 #endif128 131 addSlowCase(branchTruncateDoubleToInt32(fpRegT0, regT0)); 129 #if !USE(ALTERNATE_JSIMMEDIATE)130 132 addSlowCase(branchAdd32(Overflow, regT0, regT0)); 131 133 #endif 132 134 lhsIsInt.link(this); 133 } else 135 emitJumpSlowCaseIfNotImmediateInteger(regT2); 136 } else { 137 // !supportsFloatingPoint() => 2 SlowCases 134 138 emitJumpSlowCaseIfNotImmediateInteger(regT0); 135 emitJumpSlowCaseIfNotImmediateInteger(regT2); 139 emitJumpSlowCaseIfNotImmediateInteger(regT2); 140 } 136 141 emitFastArithImmToInt(regT2); 137 142 #if !PLATFORM(X86) … … 160 165 unsigned op2 = currentInstruction[3].u.operand; 161 166 162 linkSlowCase(iter);163 167 JITStubCall stubCall(this, JITStubs::cti_op_rshift); 164 168 165 169 if (isOperandConstantImmediateInt(op2)) { 170 linkSlowCase(iter); 166 171 stubCall.addArgument(regT0); 167 172 stubCall.addArgument(op2, regT2); … … 170 175 #if USE(ALTERNATE_JSIMMEDIATE) 171 176 linkSlowCase(iter); 177 linkSlowCase(iter); 178 linkSlowCase(iter); 172 179 #else 173 180 linkSlowCaseIfNotJSCell(iter, op1); 174 181 linkSlowCase(iter); 175 182 linkSlowCase(iter); 176 #endif177 183 linkSlowCase(iter); 184 linkSlowCase(iter); 185 #endif 178 186 // We're reloading op1 to regT0 as we can no longer guarantee that 179 187 // we have not munged the operand. It may have already been shifted
Note:
See TracChangeset
for help on using the changeset viewer.