Ignore:
Timestamp:
Apr 11, 2017, 5:44:47 AM (8 years ago)
Author:
[email protected]
Message:

[jsc][mips] Add missing MacroAssembler functions after r214187
https://bugs.webkit.org/show_bug.cgi?id=170089

Patch by Guillaume Emont <[email protected]> on 2017-04-11
Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::loadFloat): Added.
(JSC::MacroAssemblerMIPS::storeFloat): Added.

File:
1 edited

Legend:

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

    r214750 r215226  
    24042404    }
    24052405
     2406    void loadFloat(ImplicitAddress address, FPRegisterID dest)
     2407    {
     2408        if (address.offset >= -32768 && address.offset <= 32767
     2409            && !m_fixedWidth) {
     2410            m_assembler.lwc1(dest, address.base, address.offset);
     2411        } else {
     2412            /*
     2413               lui     addrTemp, (offset + 0x8000) >> 16
     2414               addu    addrTemp, addrTemp, base
     2415               lwc1    dest, (offset & 0xffff)(addrTemp)
     2416               */
     2417            m_assembler.lui(addrTempRegister, (address.offset + 0x8000) >> 16);
     2418            m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
     2419            m_assembler.lwc1(dest, addrTempRegister, address.offset);
     2420        }
     2421    }
     2422
    24062423    void loadDouble(ImplicitAddress address, FPRegisterID dest)
    24072424    {
     
    25382555            m_assembler.lui(immTempRegister, (address.offset + 0x8000) >> 16);
    25392556            m_assembler.addu(addrTempRegister, addrTempRegister, immTempRegister);
     2557            m_assembler.swc1(src, addrTempRegister, address.offset);
     2558        }
     2559    }
     2560
     2561    void storeFloat(FPRegisterID src, ImplicitAddress address)
     2562    {
     2563        if (address.offset >= -32768 && address.offset <= 32767
     2564            && !m_fixedWidth)
     2565            m_assembler.swc1(src, address.base, address.offset);
     2566        else {
     2567            /*
     2568                lui     addrTemp, (offset + 0x8000) >> 16
     2569                addu    addrTemp, addrTemp, base
     2570                swc1    src, (offset & 0xffff)(addrTemp)
     2571              */
     2572            m_assembler.lui(addrTempRegister, (address.offset + 0x8000) >> 16);
     2573            m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
    25402574            m_assembler.swc1(src, addrTempRegister, address.offset);
    25412575        }
Note: See TracChangeset for help on using the changeset viewer.