Ignore:
Timestamp:
Mar 23, 2022, 7:12:54 AM (3 years ago)
Author:
[email protected]
Message:

[JSC] Add DoNotHaveTagRegisters mode to unboxDouble
https://bugs.webkit.org/show_bug.cgi?id=238018

Patch by Xan Lopez <Xan Lopez> on 2022-03-23
Reviewed by Yusuke Suzuki.

Wasm cannot use unboxDouble as-is because
GPRInfo::numberTagRegister is not available. Add a
DoNotHaveTagRegister mode so we can get rid of some duplicated
code.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::add64):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::unboxDoubleWithoutAssertions):
(JSC::AssemblyHelpers::unboxDouble):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

File:
1 edited

Legend:

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

    r290647 r291745  
    154154
    155155#if CPU(ARM64) || CPU(X86_64) || CPU(RISCV64)
     156    using MacroAssemblerBase::add64;
    156157    using MacroAssemblerBase::and64;
    157158    using MacroAssemblerBase::convertInt32ToDouble;
     
    14611462    }
    14621463
     1464    void add64(TrustedImm64 imm, RegisterID src, RegisterID dest)
     1465    {
     1466        RegisterID scratch = scratchRegister();
     1467        move(imm, scratch);
     1468        add64(scratch, src, dest);
     1469    }
    14631470#endif // USE(JSVALUE64)
    14641471
Note: See TracChangeset for help on using the changeset viewer.