diff --git a/src/compiler/arm64/unwinding-info-writer-arm64.cc b/src/compiler/arm64/unwinding-info-writer-arm64.cc
index 3095423854..edf96026e7 100644
--- a/src/compiler/arm64/unwinding-info-writer-arm64.cc
+++ b/src/compiler/arm64/unwinding-info-writer-arm64.cc
@@ -24,6 +24,7 @@ void UnwindingInfoWriter::BeginInstructionBlock(int pc_offset,
       eh_frame_writer_.AdvanceLocation(pc_offset);
       if (initial_state->saved_lr_) {
         eh_frame_writer_.RecordRegisterSavedToStack(lr, kPointerSize);
+        eh_frame_writer_.RecordRegisterSavedToStack(fp, 0);
       } else {
         eh_frame_writer_.RecordRegisterFollowsInitialRule(lr);
       }
@@ -76,6 +77,7 @@ void UnwindingInfoWriter::MarkFrameConstructed(int at_pc) {
   // the construction, since the LR itself is not modified in the process.
   eh_frame_writer_.AdvanceLocation(at_pc);
   eh_frame_writer_.RecordRegisterSavedToStack(lr, kPointerSize);
+  eh_frame_writer_.RecordRegisterSavedToStack(fp, 0);
   saved_lr_ = true;
 }