aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/rewriteRISCV64.go
diff options
context:
space:
mode:
authorJoel Sing <joel@sing.id.au>2020-03-03 03:43:02 +1100
committerJoel Sing <joel@sing.id.au>2020-03-15 08:18:17 +0000
commit7b2f0ba5b91b4b2b659fb46638ff56f51be9b2b5 (patch)
tree232eb6b5ac95be4a2325e5790a7ee70fb4981698 /src/cmd/compile/internal/ssa/rewriteRISCV64.go
parent25da2ea72c18a63f5efdb7c506669aa733693bea (diff)
downloadgo-7b2f0ba5b91b4b2b659fb46638ff56f51be9b2b5.tar.gz
go-7b2f0ba5b91b4b2b659fb46638ff56f51be9b2b5.zip
cmd/compile: use NOT pseudo-instruction on riscv64
Change-Id: I24a72c3fb8d72a47cfded4b523c5d7aa2d40419d Reviewed-on: https://go-review.googlesource.com/c/go/+/221690 Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteRISCV64.go')
-rw-r--r--src/cmd/compile/internal/ssa/rewriteRISCV64.go60
1 files changed, 8 insertions, 52 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
index 676ca52e8e..dcb1b60da1 100644
--- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go
+++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
@@ -53,13 +53,17 @@ func rewriteValueRISCV64(v *Value) bool {
v.Op = OpRISCV64CALLclosure
return true
case OpCom16:
- return rewriteValueRISCV64_OpCom16(v)
+ v.Op = OpRISCV64NOT
+ return true
case OpCom32:
- return rewriteValueRISCV64_OpCom32(v)
+ v.Op = OpRISCV64NOT
+ return true
case OpCom64:
- return rewriteValueRISCV64_OpCom64(v)
+ v.Op = OpRISCV64NOT
+ return true
case OpCom8:
- return rewriteValueRISCV64_OpCom8(v)
+ v.Op = OpRISCV64NOT
+ return true
case OpConst16:
v.Op = OpRISCV64MOVHconst
return true
@@ -615,54 +619,6 @@ func rewriteValueRISCV64_OpAvg64u(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpCom16(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Com16 x)
- // result: (XORI [int64(-1)] x)
- for {
- x := v_0
- v.reset(OpRISCV64XORI)
- v.AuxInt = int64(-1)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCom32(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Com32 x)
- // result: (XORI [int64(-1)] x)
- for {
- x := v_0
- v.reset(OpRISCV64XORI)
- v.AuxInt = int64(-1)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCom64(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Com64 x)
- // result: (XORI [int64(-1)] x)
- for {
- x := v_0
- v.reset(OpRISCV64XORI)
- v.AuxInt = int64(-1)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCom8(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Com8 x)
- // result: (XORI [int64(-1)] x)
- for {
- x := v_0
- v.reset(OpRISCV64XORI)
- v.AuxInt = int64(-1)
- v.AddArg(x)
- return true
- }
-}
func rewriteValueRISCV64_OpConst32F(v *Value) bool {
b := v.Block
typ := &b.Func.Config.Types