aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/panic.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/panic.go')
-rw-r--r--src/runtime/panic.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/runtime/panic.go b/src/runtime/panic.go
index 8c91c9435a..04b3afe168 100644
--- a/src/runtime/panic.go
+++ b/src/runtime/panic.go
@@ -1379,10 +1379,10 @@ func recovery(gp *g) {
// the caller
gp.sched.bp = fp - 2*goarch.PtrSize
case goarch.IsArm64 != 0:
- // on arm64, the architectural bp points one word higher
- // than the sp. fp is totally useless to us here, because it
- // only gets us to the caller's fp.
- gp.sched.bp = sp - goarch.PtrSize
+ // on arm64, the first two words of the frame are caller's PC
+ // (the saved LR register) and the caller's BP.
+ // Coincidentally, the same as amd64.
+ gp.sched.bp = fp - 2*goarch.PtrSize
}
gogo(&gp.sched)
}