Changeset 48830 in webkit
- Timestamp:
- Sep 28, 2009 1:42:15 PM (15 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r48827 r48830 1 2009-09-28 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Geoff Garen. 4 5 Hard dependency on SSE2 instruction set with JIT 6 https://bugs.webkit.org/show_bug.cgi?id=29779 7 8 Add floating point support checks to op_jfalse and op_jtrue, and 9 fix the logic for the slow case of op_add 10 11 * jit/JITArithmetic.cpp: 12 (JSC::JIT::emitSlow_op_add): 13 * jit/JITOpcodes.cpp: 14 (JSC::JIT::emit_op_jfalse): 15 (JSC::JIT::emit_op_jtrue): 16 1 17 2009-09-28 Yaar Schnitman <yaar@chromium.org> 2 18 -
trunk/JavaScriptCore/jit/JITArithmetic.cpp
r48744 r48830 636 636 linkSlowCase(iter); // overflow check 637 637 638 if (!supportsFloatingPoint()) {638 if (!supportsFloatingPoint()) 639 639 linkSlowCase(iter); // non-sse case 640 return; 641 } 642 643 ResultType opType = op == op1 ? types.first() : types.second(); 644 if (!opType.definitelyIsNumber()) 645 linkSlowCase(iter); // double check 640 else { 641 ResultType opType = op == op1 ? types.first() : types.second(); 642 if (!opType.definitelyIsNumber()) 643 linkSlowCase(iter); // double check 644 } 646 645 } else { 647 646 linkSlowCase(iter); // overflow check -
trunk/JavaScriptCore/jit/JITOpcodes.cpp
r48525 r48830 795 795 addJump(jump(), target + 2); 796 796 797 isNotInteger.link(this); 798 799 addSlowCase(branch32(Above, regT1, Imm32(JSValue::LowestTag))); 800 801 zeroDouble(fpRegT0); 802 emitLoadDouble(cond, fpRegT1); 803 addJump(branchDouble(DoubleEqual, fpRegT0, fpRegT1), target + 2); 804 797 if (supportsFloatingPoint()) { 798 isNotInteger.link(this); 799 800 addSlowCase(branch32(Above, regT1, Imm32(JSValue::LowestTag))); 801 802 zeroDouble(fpRegT0); 803 emitLoadDouble(cond, fpRegT1); 804 addJump(branchDouble(DoubleEqual, fpRegT0, fpRegT1), target + 2); 805 } else 806 addSlowCase(isNotInteger); 807 805 808 isTrue.link(this); 806 809 isTrue2.link(this); … … 833 836 addJump(jump(), target + 2); 834 837 835 isNotInteger.link(this); 836 837 addSlowCase(branch32(Above, regT1, Imm32(JSValue::LowestTag))); 838 839 zeroDouble(fpRegT0); 840 emitLoadDouble(cond, fpRegT1); 841 addJump(branchDouble(DoubleNotEqual, fpRegT0, fpRegT1), target + 2); 842 838 if (supportsFloatingPoint()) { 839 isNotInteger.link(this); 840 841 addSlowCase(branch32(Above, regT1, Imm32(JSValue::LowestTag))); 842 843 zeroDouble(fpRegT0); 844 emitLoadDouble(cond, fpRegT1); 845 addJump(branchDouble(DoubleNotEqual, fpRegT0, fpRegT1), target + 2); 846 } else 847 addSlowCase(isNotInteger); 848 843 849 isFalse.link(this); 844 850 isFalse2.link(this);
Note: See TracChangeset
for help on using the changeset viewer.