Index: src/arm64/deoptimizer-arm64.cc |
diff --git a/src/arm64/deoptimizer-arm64.cc b/src/arm64/deoptimizer-arm64.cc |
index a70104fcc28992db7656326f5e9126a7c6e4c0e3..5e35266815de89a6f2da3d4ce5ec3b2479c6078e 100644 |
--- a/src/arm64/deoptimizer-arm64.cc |
+++ b/src/arm64/deoptimizer-arm64.cc |
@@ -126,7 +126,7 @@ void Deoptimizer::TableEntryGenerator::Generate() { |
// address for lazy deoptimization. |
__ Mov(code_object, lr); |
// Compute the fp-to-sp delta, and correct one word for bailout id. |
- __ Add(fp_to_sp, masm()->StackPointer(), |
+ __ Add(fp_to_sp, __ StackPointer(), |
kSavedRegistersAreaSize + (1 * kPointerSize)); |
__ Sub(fp_to_sp, fp, fp_to_sp); |
@@ -209,6 +209,9 @@ void Deoptimizer::TableEntryGenerator::Generate() { |
} |
__ Pop(x4); // Restore deoptimizer object (class Deoptimizer). |
+ __ Ldr(__ StackPointer(), |
+ MemOperand(x4, Deoptimizer::caller_frame_top_offset())); |
+ |
// Replace the current (input) frame with the output frames. |
Label outer_push_loop, inner_push_loop, |
outer_loop_header, inner_loop_header; |