Changeset 212419 in webkit


Ignore:
Timestamp:
Feb 15, 2017 8:23:23 PM (7 years ago)
Author:
commit-queue@webkit.org
Message:

MIPS: add missing implementations of load8SignedExtendTo32()

JSC: missing implementations of MacroAssemblerMIPS::load8SignedExtendTo32()
https://bugs.webkit.org/show_bug.cgi?id=168350

Patch by Guillaume Emont <guijemont@igalia.com> on 2017-02-15
Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
Add missing implementations

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r212394 r212419  
     12017-02-15  Guillaume Emont  <guijemont@igalia.com>
     2
     3        MIPS: add missing implementations of load8SignedExtendTo32()
     4
     5        JSC: missing implementations of MacroAssemblerMIPS::load8SignedExtendTo32()
     6        https://bugs.webkit.org/show_bug.cgi?id=168350
     7
     8        Reviewed by Yusuke Suzuki.
     9
     10        * assembler/MacroAssemblerMIPS.h:
     11        (JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
     12        Add missing implementations
     13
    1142017-02-15  Alex Christensen  <achristensen@webkit.org>
    215
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h

    r208450 r212419  
    747747    }
    748748
     749    void load8SignedExtendTo32(ImplicitAddress address, RegisterID dest)
     750    {
     751        if (address.offset >= -32768 && address.offset <= 32767
     752            && !m_fixedWidth)
     753            m_assembler.lb(dest, address.base, address.offset);
     754        else {
     755            /*
     756                lui     addrTemp, (offset + 0x8000) >> 16
     757                addu    addrTemp, addrTemp, base
     758                lb      dest, (offset & 0xffff)(addrTemp)
     759              */
     760            m_assembler.lui(addrTempRegister, (address.offset + 0x8000) >> 16);
     761            m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
     762            m_assembler.lb(dest, addrTempRegister, address.offset);
     763        }
     764    }
     765
    749766    void load8SignedExtendTo32(BaseIndex address, RegisterID dest)
    750767    {
     
    774791        }
    775792    }
     793
     794    ALWAYS_INLINE void load8SignedExtendTo32(AbsoluteAddress address, RegisterID dest)
     795    {
     796        load8SignedExtendTo32(address.m_ptr, dest);
     797    }
     798
     799    void load8SignedExtendTo32(const void* address, RegisterID dest)
     800    {
     801        /*
     802            li  addrTemp, address
     803            lb  dest, 0(addrTemp)
     804        */
     805        move(TrustedImmPtr(address), addrTempRegister);
     806        m_assembler.lb(dest, addrTempRegister, 0);
     807    }
     808
    776809
    777810    void load32(ImplicitAddress address, RegisterID dest)
Note: See TracChangeset for help on using the changeset viewer.