Changeset 195134 in webkit


Ignore:
Timestamp:
Jan 15, 2016 10:53:40 AM (8 years ago)
Author:
commit-queue@webkit.org
Message:

[mips] Implemented emitFunctionPrologue/Epilogue
https://bugs.webkit.org/show_bug.cgi?id=152947

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-15
Reviewed by Michael Saboff.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::popPair):
(JSC::MacroAssemblerMIPS::pushPair):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitFunctionPrologue):
(JSC::AssemblyHelpers::emitFunctionEpilogueWithEmptyFrame):
(JSC::AssemblyHelpers::emitFunctionEpilogue):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r195133 r195134  
     12016-01-15  Konstantin Tokarev  <annulen@yandex.ru>
     2
     3        [mips] Implemented emitFunctionPrologue/Epilogue
     4        https://bugs.webkit.org/show_bug.cgi?id=152947
     5
     6        Reviewed by Michael Saboff.
     7
     8        * assembler/MacroAssemblerMIPS.h:
     9        (JSC::MacroAssemblerMIPS::popPair):
     10        (JSC::MacroAssemblerMIPS::pushPair):
     11        * jit/AssemblyHelpers.h:
     12        (JSC::AssemblyHelpers::emitFunctionPrologue):
     13        (JSC::AssemblyHelpers::emitFunctionEpilogueWithEmptyFrame):
     14        (JSC::AssemblyHelpers::emitFunctionEpilogue):
     15
    1162016-01-15  Commit Queue  <commit-queue@webkit.org>
    217
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h

    r195093 r195134  
    12541254    }
    12551255
     1256    void popPair(RegisterID dest1, RegisterID dest2)
     1257    {
     1258        m_assembler.lw(dest1, MIPSRegisters::sp, 0);
     1259        m_assembler.lw(dest2, MIPSRegisters::sp, 4);
     1260        m_assembler.addiu(MIPSRegisters::sp, MIPSRegisters::sp, 8);
     1261    }
     1262
    12561263    void push(RegisterID src)
    12571264    {
     
    12701277        move(imm, immTempRegister);
    12711278        push(immTempRegister);
     1279    }
     1280
     1281    void pushPair(RegisterID src1, RegisterID src2)
     1282    {
     1283        m_assembler.addiu(MIPSRegisters::sp, MIPSRegisters::sp, -8);
     1284        m_assembler.sw(src2, MIPSRegisters::sp, 4);
     1285        m_assembler.sw(src1, MIPSRegisters::sp, 0);
    12721286    }
    12731287
  • trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h

    r194772 r195134  
    446446        // Prologue saves the framePointerRegister and returnAddressRegister
    447447        return 2 * sizeof(void*);
     448    }
     449
     450    void emitFunctionPrologue()
     451    {
     452        pushPair(framePointerRegister, returnAddressRegister);
     453        move(stackPointerRegister, framePointerRegister);
     454    }
     455
     456    void emitFunctionEpilogueWithEmptyFrame()
     457    {
     458        popPair(framePointerRegister, returnAddressRegister);
     459    }
     460
     461    void emitFunctionEpilogue()
     462    {
     463        move(framePointerRegister, stackPointerRegister);
     464        emitFunctionEpilogueWithEmptyFrame();
    448465    }
    449466
Note: See TracChangeset for help on using the changeset viewer.