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/assembler/MacroAssemblerARMv7.h

    r50255 r50531  
    9696
    9797    enum DoubleCondition {
    98         DoubleEqual = ARMv7Assembler::ConditionEQ,
     98        DoubleEqualOrUnordered = ARMv7Assembler::ConditionEQ,
    9999        DoubleGreaterThan = ARMv7Assembler::ConditionGT,
    100100        DoubleGreaterThanOrEqual = ARMv7Assembler::ConditionGE,
    101         DoubleLessThan = ARMv7Assembler::ConditionLO,
    102         DoubleLessThanOrEqual = ARMv7Assembler::ConditionLS,
     101        DoubleLessThanOrUnordered = ARMv7Assembler::ConditionLO,
     102        DoubleLessThanOrEqualOrUnordered = ARMv7Assembler::ConditionLS,
    103103    };
    104104
Note: See TracChangeset for help on using the changeset viewer.