Title: [195274] releases/WebKitGTK/webkit-2.10/Source/_javascript_Core
Revision
195274
Author
[email protected]
Date
2016-01-19 01:37:58 -0800 (Tue, 19 Jan 2016)

Log Message

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

Patch by Konstantin Tokarev <[email protected]> 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):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/ChangeLog (195273 => 195274)


--- releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/ChangeLog	2016-01-19 09:36:10 UTC (rev 195273)
+++ releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/ChangeLog	2016-01-19 09:37:58 UTC (rev 195274)
@@ -1,3 +1,18 @@
+2016-01-15  Konstantin Tokarev  <[email protected]>
+
+        [mips] Implemented emitFunctionPrologue/Epilogue
+        https://bugs.webkit.org/show_bug.cgi?id=152947
+
+        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):
+
 2016-01-15  Julien Brianceau  <[email protected]>
 
         [mips] Add countLeadingZeros32 implementation in macro assembler

Modified: releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (195273 => 195274)


--- releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2016-01-19 09:36:10 UTC (rev 195273)
+++ releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2016-01-19 09:37:58 UTC (rev 195274)
@@ -1235,6 +1235,13 @@
         m_assembler.addiu(MIPSRegisters::sp, MIPSRegisters::sp, 4);
     }
 
+    void popPair(RegisterID dest1, RegisterID dest2)
+    {
+        m_assembler.lw(dest1, MIPSRegisters::sp, 0);
+        m_assembler.lw(dest2, MIPSRegisters::sp, 4);
+        m_assembler.addiu(MIPSRegisters::sp, MIPSRegisters::sp, 8);
+    }
+
     void push(RegisterID src)
     {
         m_assembler.addiu(MIPSRegisters::sp, MIPSRegisters::sp, -4);
@@ -1253,6 +1260,13 @@
         push(immTempRegister);
     }
 
+    void pushPair(RegisterID src1, RegisterID src2)
+    {
+        m_assembler.addiu(MIPSRegisters::sp, MIPSRegisters::sp, -8);
+        m_assembler.sw(src2, MIPSRegisters::sp, 4);
+        m_assembler.sw(src1, MIPSRegisters::sp, 0);
+    }
+
     // Register move operations:
     //
     // Move values in registers.

Modified: releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/jit/AssemblyHelpers.h (195273 => 195274)


--- releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/jit/AssemblyHelpers.h	2016-01-19 09:36:10 UTC (rev 195273)
+++ releases/WebKitGTK/webkit-2.10/Source/_javascript_Core/jit/AssemblyHelpers.h	2016-01-19 09:37:58 UTC (rev 195274)
@@ -251,6 +251,23 @@
         return 2 * sizeof(void*);
     }
 
+    void emitFunctionPrologue()
+    {
+        pushPair(framePointerRegister, returnAddressRegister);
+        move(stackPointerRegister, framePointerRegister);
+    }
+
+    void emitFunctionEpilogueWithEmptyFrame()
+    {
+        popPair(framePointerRegister, returnAddressRegister);
+    }
+
+    void emitFunctionEpilogue()
+    {
+        move(framePointerRegister, stackPointerRegister);
+        emitFunctionEpilogueWithEmptyFrame();
+    }
+
     ALWAYS_INLINE void preserveReturnAddressAfterCall(RegisterID reg)
     {
         move(returnAddressRegister, reg);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to