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/MacroAssemblerARM.h

    r50109 r50531  
    5858
    5959    enum DoubleCondition {
    60         DoubleEqual = ARMAssembler::EQ,
     60        DoubleEqualOrUnordered = ARMAssembler::EQ,
    6161        DoubleGreaterThan = ARMAssembler::GT,
    6262        DoubleGreaterThanOrEqual = ARMAssembler::GE,
    63         DoubleLessThan = ARMAssembler::LT,
    64         DoubleLessThanOrEqual = ARMAssembler::LE,
     63        DoubleLessThanOrUnordered = ARMAssembler::LT,
     64        DoubleLessThanOrEqualOrUnordered = ARMAssembler::LE,
    6565    };
    6666
Note: See TracChangeset for help on using the changeset viewer.