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