| Index: src/arm64/macro-assembler-arm64.cc
|
| diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
|
| index b966341dfb92263ade38284861bf5569c6b30701..43492e7a398c20acc944f4939f4a39969645c0dc 100644
|
| --- a/src/arm64/macro-assembler-arm64.cc
|
| +++ b/src/arm64/macro-assembler-arm64.cc
|
| @@ -2650,12 +2650,12 @@ void MacroAssembler::EnterFrame(StackFrame::Type type,
|
|
|
|
|
| void MacroAssembler::EnterFrame(StackFrame::Type type) {
|
| - DCHECK(jssp.Is(StackPointer()));
|
| UseScratchRegisterScope temps(this);
|
| Register type_reg = temps.AcquireX();
|
| Register code_reg = temps.AcquireX();
|
|
|
| if (type == StackFrame::INTERNAL) {
|
| + DCHECK(jssp.Is(StackPointer()));
|
| Mov(type_reg, Smi::FromInt(type));
|
| Push(lr, fp);
|
| Push(type_reg);
|
| @@ -2666,7 +2666,18 @@ void MacroAssembler::EnterFrame(StackFrame::Type type) {
|
| // jssp[3] : fp
|
| // jssp[1] : type
|
| // jssp[0] : [code object]
|
| + } else if (type == StackFrame::WASM) {
|
| + DCHECK(csp.Is(StackPointer()));
|
| + Mov(type_reg, Smi::FromInt(type));
|
| + Push(xzr, lr);
|
| + Push(fp, type_reg);
|
| + Add(fp, csp, TypedFrameConstants::kFixedFrameSizeFromFp);
|
| + // csp[3] for alignment
|
| + // csp[2] : lr
|
| + // csp[1] : fp
|
| + // csp[0] : type
|
| } else {
|
| + DCHECK(jssp.Is(StackPointer()));
|
| Mov(type_reg, Smi::FromInt(type));
|
| Push(lr, fp);
|
| Push(type_reg);
|
|
|