Ignore:
Timestamp:
Dec 21, 2021, 12:33:18 AM (3 years ago)
Author:
[email protected]
Message:

[JSC][ARMv7] Minor code size improvements
https://bugs.webkit.org/show_bug.cgi?id=234387

Patch by Geza Lore <Geza Lore> on 2021-12-21
Reviewed by Yusuke Suzuki.

A few mew code size improvements to ARMv7/Thumb-2

  • Use ldrd/strd in mode places (via AssemblyHelpers:loadValue

and AssemblyHelpers::storeValue)

  • Use BIC immediate instruction instead of AND where appropriate
  • Use a 2-byte ADDS instead of a 4-byte CMN when possible. This

applies very often as it handles testing JSValue tags.

  • Use addressTempRegister in branch32

Overall saving of about 3.5% code size on JetStream2, according to
--dumpLinkBufferStats.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::bic):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::and32):
(JSC::MacroAssemblerARMv7::storePair32):
(JSC::MacroAssemblerARMv7::compare32AndSetFlags):
(JSC::MacroAssemblerARMv7::branch32):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::storePair32):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::storeValue):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_mov):

File:
1 edited

Legend:

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

    r286424 r287301  
    16641664        store32(src1, address);
    16651665        store32(src2, address.withOffset(4));
     1666    }
     1667
     1668    void storePair32(RegisterID src1, RegisterID src2, const void* address)
     1669    {
     1670        move(TrustedImmPtr(address), addrTempRegister);
     1671        storePair32(src1, src2, addrTempRegister);
    16661672    }
    16671673
Note: See TracChangeset for help on using the changeset viewer.