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/compile/internal/ssa/rewriteMIPS64.go | |
parent | 836fe697c4ec34fb30fcba65052cb42822edf752 (diff) | |
download | go-20102594a027336b08b8b38584f27656d4fc689e.tar.gz go-20102594a027336b08b8b38584f27656d4fc689e.zip |
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/compile/internal/ssa/rewriteMIPS64.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewriteMIPS64.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS64.go b/src/cmd/compile/internal/ssa/rewriteMIPS64.go index 77573d784a..084463a10f 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS64.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS64.go @@ -169,6 +169,8 @@ func rewriteValueMIPS64(v *Value) bool { return rewriteValueMIPS64_OpGeq8_0(v) case OpGeq8U: return rewriteValueMIPS64_OpGeq8U_0(v) + case OpGetCallerPC: + return rewriteValueMIPS64_OpGetCallerPC_0(v) case OpGetCallerSP: return rewriteValueMIPS64_OpGetCallerSP_0(v) case OpGetClosurePtr: @@ -1931,6 +1933,15 @@ func rewriteValueMIPS64_OpGeq8U_0(v *Value) bool { return true } } +func rewriteValueMIPS64_OpGetCallerPC_0(v *Value) bool { + // match: (GetCallerPC) + // cond: + // result: (LoweredGetCallerPC) + for { + v.reset(OpMIPS64LoweredGetCallerPC) + return true + } +} func rewriteValueMIPS64_OpGetCallerSP_0(v *Value) bool { // match: (GetCallerSP) // cond: |