Commit 6b0146fe authored by Junliang Yan's avatar Junliang Yan Committed by V8 LUCI CQ

s390x: [baseline] patch EnterFrame

Change-Id: I5d9fc560a398328674907962a3730036b72172a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3439638Reviewed-by: 's avatarMilad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78955}
parent d1d7e153
...@@ -1100,6 +1100,7 @@ void MacroAssembler::RecordWrite(Register object, Register slot_address, ...@@ -1100,6 +1100,7 @@ void MacroAssembler::RecordWrite(Register object, Register slot_address,
} }
void TurboAssembler::PushCommonFrame(Register marker_reg) { void TurboAssembler::PushCommonFrame(Register marker_reg) {
ASM_CODE_COMMENT(this);
int fp_delta = 0; int fp_delta = 0;
CleanseP(r14); CleanseP(r14);
if (marker_reg.is_valid()) { if (marker_reg.is_valid()) {
...@@ -1453,6 +1454,7 @@ void TurboAssembler::DropArgumentsAndPushNewReceiver(Register argc, ...@@ -1453,6 +1454,7 @@ void TurboAssembler::DropArgumentsAndPushNewReceiver(Register argc,
void TurboAssembler::EnterFrame(StackFrame::Type type, void TurboAssembler::EnterFrame(StackFrame::Type type,
bool load_constant_pool_pointer_reg) { bool load_constant_pool_pointer_reg) {
ASM_CODE_COMMENT(this);
// We create a stack frame with: // We create a stack frame with:
// Return Addr <-- old sp // Return Addr <-- old sp
// Old FP <-- new fp // Old FP <-- new fp
...@@ -1460,14 +1462,19 @@ void TurboAssembler::EnterFrame(StackFrame::Type type, ...@@ -1460,14 +1462,19 @@ void TurboAssembler::EnterFrame(StackFrame::Type type,
// type // type
// CodeObject <-- new sp // CodeObject <-- new sp
mov(ip, Operand(StackFrame::TypeToMarker(type))); Register scratch = no_reg;
PushCommonFrame(ip); if (!StackFrame::IsJavaScript(type)) {
scratch = ip;
mov(scratch, Operand(StackFrame::TypeToMarker(type)));
}
PushCommonFrame(scratch);
#if V8_ENABLE_WEBASSEMBLY #if V8_ENABLE_WEBASSEMBLY
if (type == StackFrame::WASM) Push(kWasmInstanceRegister); if (type == StackFrame::WASM) Push(kWasmInstanceRegister);
#endif // V8_ENABLE_WEBASSEMBLY #endif // V8_ENABLE_WEBASSEMBLY
} }
int TurboAssembler::LeaveFrame(StackFrame::Type type, int stack_adjustment) { int TurboAssembler::LeaveFrame(StackFrame::Type type, int stack_adjustment) {
ASM_CODE_COMMENT(this);
// Drop the execution stack down to the frame pointer and restore // Drop the execution stack down to the frame pointer and restore
// the caller frame pointer, return address and constant pool pointer. // the caller frame pointer, return address and constant pool pointer.
LoadU64(r14, MemOperand(fp, StandardFrameConstants::kCallerPCOffset)); LoadU64(r14, MemOperand(fp, StandardFrameConstants::kCallerPCOffset));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment