Ignore:
Timestamp:
Nov 4, 2009, 3:59:14 PM (16 years ago)
Author:
[email protected]
Message:

https://bugs.webkit.org/show_bug.cgi?id=31104
Refactor x86-specific behaviour out of the JIT.

Patch by Gavin Barraclough <[email protected]> on 2009-11-04
Reviewed by Oliver Hunt.

  • Add explicit double branch conditions for ordered and unordered comparisons (presently the brehaviour is a mix).
  • Refactor double to int conversion out into the MacroAssembler.
  • Remove broken double to int conversion for !JSVALUE32_64 builds - this code was broken and slowing us down, fixing it showed it not to be an improvement.
  • Remove exclusion of double to int conversion from (1 % X) cases in JSVALUE32_64 builds - if this was of benefit this is no longer the case; simplify.
  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::):
(JSC::MacroAssemblerX86Common::convertInt32ToDouble):
(JSC::MacroAssemblerX86Common::branchDouble):
(JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitBinaryDoubleOp):
(JSC::JIT::emit_op_div):
(JSC::JIT::emitSlow_op_jnless):
(JSC::JIT::emitSlow_op_jnlesseq):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_jfalse):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/jit/JITOpcodes.cpp

    r50109 r50531  
    787787        zeroDouble(fpRegT0);
    788788        emitLoadDouble(cond, fpRegT1);
    789         addJump(branchDouble(DoubleEqual, fpRegT0, fpRegT1), target);
     789        addJump(branchDouble(DoubleEqualOrUnordered, fpRegT0, fpRegT1), target);
    790790    } else
    791791        addSlowCase(isNotInteger);
Note: See TracChangeset for help on using the changeset viewer.