Ignore:
Timestamp:
Nov 20, 2019, 12:06:52 PM (6 years ago)
Author:
[email protected]
Message:

Fix load<16> on ARM64
https://bugs.webkit.org/show_bug.cgi?id=204326

Reviewed by Mark Lam.

On ARM64 I used load<16> in https://bugs.webkit.org/show_bug.cgi?id=202832.
Unfortunately it turns out to call ldr<16>, and ldr<n> asserts that n is either 32 or 64.
This fix simply calls ldrh/strh directly.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::store16):

File:
1 edited

Legend:

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

    r252422 r252699  
    12551255    void load16(const void* address, RegisterID dest)
    12561256    {
    1257         load<16>(address, dest);
     1257        moveToCachedReg(TrustedImmPtr(address), cachedMemoryTempRegister());
     1258        m_assembler.ldrh(dest, memoryTempRegister, 0);
    12581259    }
    12591260
     
    15681569    void store16(RegisterID src, const void* address)
    15691570    {
    1570         store<16>(src, address);
     1571        moveToCachedReg(TrustedImmPtr(address), cachedMemoryTempRegister());
     1572        m_assembler.strh(src, memoryTempRegister, 0);
    15711573    }
    15721574
Note: See TracChangeset for help on using the changeset viewer.