Changeset 39261 in webkit for trunk/JavaScriptCore/jit/JITArithmetic.cpp
- Timestamp:
- Dec 12, 2008, 5:39:38 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JITArithmetic.cpp
r39020 r39261 298 298 void JIT::compileBinaryArithOpSlowCase(OpcodeID opcodeID, Vector<SlowCaseEntry>::iterator& iter, unsigned dst, unsigned src1, unsigned src2, OperandTypes types, unsigned i) 299 299 { 300 JmpDst here = __ label(); 301 __ link(iter->from, here); 300 linkSlowCase(iter); 302 301 if (types.second().isReusable() && isSSE2Present()) { 303 302 if (!types.first().definitelyIsNumber()) { 304 if (linkSlowCaseIfNotJSCell(++iter, src1)) 305 ++iter; 306 __ link(iter->from, here); 303 linkSlowCaseIfNotJSCell(iter, src1); 304 linkSlowCase(iter); 307 305 } 308 306 if (!types.second().definitelyIsNumber()) { 309 if (linkSlowCaseIfNotJSCell(++iter, src2)) 310 ++iter; 311 __ link(iter->from, here); 312 } 313 __ link((++iter)->from, here); 307 linkSlowCaseIfNotJSCell(iter, src2); 308 linkSlowCase(iter); 309 } 314 310 } else if (types.first().isReusable() && isSSE2Present()) { 315 311 if (!types.first().definitelyIsNumber()) { 316 if (linkSlowCaseIfNotJSCell(++iter, src1)) 317 ++iter; 318 __ link(iter->from, here); 312 linkSlowCaseIfNotJSCell(iter, src1); 313 linkSlowCase(iter); 319 314 } 320 315 if (!types.second().definitelyIsNumber()) { 321 if (linkSlowCaseIfNotJSCell(++iter, src2)) 322 ++iter; 323 __ link(iter->from, here); 324 } 325 __ link((++iter)->from, here); 326 } else 327 __ link((++iter)->from, here); 316 linkSlowCaseIfNotJSCell(iter, src2); 317 linkSlowCase(iter); 318 } 319 } 320 linkSlowCase(iter); 328 321 329 322 // additional entry point to handle -0 cases. 330 323 if (opcodeID == op_mul) 331 __ link((++iter)->from, here);324 linkSlowCase(iter); 332 325 333 326 emitPutCTIArgFromVirtualRegister(src1, 0, X86::ecx);
Note:
See TracChangeset
for help on using the changeset viewer.