Ignore:
Timestamp:
Aug 15, 2013, 7:35:31 PM (12 years ago)
Author:
[email protected]
Message:

[JSC] x86: Use inc and dec when possible
https://bugs.webkit.org/show_bug.cgi?id=119831

Reviewed by Geoffrey Garen.

When incrementing or decrementing by an immediate of 1, use the insctructions
inc and dec instead of add and sub.
The instructions have good timing and their encoding is smaller.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86_64::add32):
(JSC::MacroAssemblerX86_64::sub32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::add64):
(JSC::MacroAssemblerX86_64::sub64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::dec_r):
(JSC::X86Assembler::decq_r):
(JSC::X86Assembler::inc_r):
(JSC::X86Assembler::incq_r):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h

    r153162 r154158  
    128128    void add32(TrustedImm32 imm, RegisterID dest)
    129129    {
    130         m_assembler.addl_ir(imm.m_value, dest);
     130        if (imm.m_value == 1)
     131            m_assembler.inc_r(dest);
     132        else
     133            m_assembler.addl_ir(imm.m_value, dest);
    131134    }
    132135   
     
    375378    void sub32(TrustedImm32 imm, RegisterID dest)
    376379    {
    377         m_assembler.subl_ir(imm.m_value, dest);
     380        if (imm.m_value == 1)
     381            m_assembler.dec_r(dest);
     382        else
     383            m_assembler.subl_ir(imm.m_value, dest);
    378384    }
    379385   
Note: See TracChangeset for help on using the changeset viewer.