aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/rewriteMIPS64.go
diff options
context:
space:
mode:
authorWei Xiao <Wei.Xiao@arm.com>2018-05-02 14:25:00 +0800
committerCherry Zhang <cherryyz@google.com>2018-05-02 16:59:27 +0000
commit20102594a027336b08b8b38584f27656d4fc689e (patch)
tree2441b7fd954889d5e1aee903d1f034a1a8e1ab65 /src/cmd/compile/internal/ssa/rewriteMIPS64.go
parent836fe697c4ec34fb30fcba65052cb42822edf752 (diff)
downloadgo-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.go11
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: