diff options
| author | Wei Xiao <wei.xiao@arm.com> | 2018-04-25 08:38:09 +0000 |
|---|---|---|
| committer | Cherry Zhang <cherryyz@google.com> | 2018-04-30 13:29:14 +0000 |
| commit | bd8a88729c7ff12725834c4411ffe5d4b337d5de (patch) | |
| tree | 3f249ae066617b1e04904a5ca37975360f2cbfe5 /src/cmd/internal/obj/arm64 | |
| parent | b7f1777a709e575cb6aa03c25a976d06d36cb6a6 (diff) | |
| download | go-bd8a88729c7ff12725834c4411ffe5d4b337d5de.tar.xz | |
cmd/compile: intrinsify runtime.getcallerpc on arm64
Add a compiler intrinsic for getcallerpc on arm64 for better code generation.
Change-Id: I897e670a2b8ffa1a8c2fdc638f5b2c44bda26318
Reviewed-on: https://go-review.googlesource.com/109276
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/internal/obj/arm64')
| -rw-r--r-- | src/cmd/internal/obj/arm64/obj7.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/arm64/obj7.go b/src/cmd/internal/obj/arm64/obj7.go index fe33b91820..0ea9af2854 100644 --- a/src/cmd/internal/obj/arm64/obj7.go +++ b/src/cmd/internal/obj/arm64/obj7.go @@ -821,6 +821,19 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { } } break + + case obj.AGETCALLERPC: + if cursym.Leaf() { + /* MOVD LR, Rd */ + p.As = AMOVD + p.From.Type = obj.TYPE_REG + p.From.Reg = REGLINK + } else { + /* MOVD (RSP), Rd */ + p.As = AMOVD + p.From.Type = obj.TYPE_MEM + p.From.Reg = REGSP + } } } } |
