Ignore:
Timestamp:
Aug 20, 2021, 11:09:48 AM (4 years ago)
Author:
[email protected]
Message:

[JSC] Remove unnecessary moves in Yarr's sub32 / add32 related code
https://bugs.webkit.org/show_bug.cgi?id=228813

Reviewed by Mark Lam.

This patch adds three operand sub32 to X64 masm so that we can use it in all masms.
We use add32 and sub32 in YarrJIT to remove unnecessary mov instructions in ARM64.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::sub32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::sub32):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::sub32):

  • assembler/testmasm.cpp:

(JSC::testSub32ArgImm):

  • yarr/YarrJIT.cpp:
File:
1 edited

Legend:

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

    r281325 r281326  
    17571757        } else
    17581758            sub32(imm.asTrustedImm32(), dest);
     1759    }
     1760
     1761    void sub32(RegisterID src, Imm32 imm, RegisterID dest)
     1762    {
     1763        if (shouldBlind(imm)) {
     1764            BlindedImm32 key = additionBlindedConstant(imm);
     1765            sub32(src, key.value1, dest);
     1766            sub32(key.value2, dest);
     1767        } else
     1768            sub32(src, imm.asTrustedImm32(), dest);
    17591769    }
    17601770   
Note: See TracChangeset for help on using the changeset viewer.