diff options
| author | Wei Xiao <Wei.Xiao@arm.com> | 2018-05-02 14:25:00 +0800 |
|---|---|---|
| committer | Cherry Zhang <cherryyz@google.com> | 2018-05-02 16:59:27 +0000 |
| commit | 20102594a027336b08b8b38584f27656d4fc689e (patch) | |
| tree | 2441b7fd954889d5e1aee903d1f034a1a8e1ab65 /src/cmd/internal/obj/ppc64 | |
| parent | 836fe697c4ec34fb30fcba65052cb42822edf752 (diff) | |
| download | go-20102594a027336b08b8b38584f27656d4fc689e.tar.xz | |
cmd/compile: intrinsify runtime.getcallerpc on all link register architectures
Add a compiler intrinsic for getcallerpc on following architectures:
arm
mips mipsle mips64 mips64le
ppc64 ppc64le
s390x
Change-Id: I758f3d4742fc214b206bcd07d90408622c17dbef
Reviewed-on: https://go-review.googlesource.com/110835
Run-TryBot: Wei Xiao <Wei.Xiao@arm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/internal/obj/ppc64')
| -rw-r--r-- | src/cmd/internal/obj/ppc64/obj9.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/ppc64/obj9.go b/src/cmd/internal/obj/ppc64/obj9.go index 4982a85fdb..c3a9443228 100644 --- a/src/cmd/internal/obj/ppc64/obj9.go +++ b/src/cmd/internal/obj/ppc64/obj9.go @@ -781,6 +781,18 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.From.Type == obj.TYPE_CONST { p.Spadj = int32(-p.From.Offset) } + case obj.AGETCALLERPC: + if cursym.Leaf() { + /* MOVD LR, Rd */ + p.As = AMOVD + p.From.Type = obj.TYPE_REG + p.From.Reg = REG_LR + } else { + /* MOVD (RSP), Rd */ + p.As = AMOVD + p.From.Type = obj.TYPE_MEM + p.From.Reg = REGSP + } } } } |
