diff options
author | Joel Sing <joel@sing.id.au> | 2020-03-03 03:43:02 +1100 |
---|---|---|
committer | Joel Sing <joel@sing.id.au> | 2020-03-15 08:18:17 +0000 |
commit | 7b2f0ba5b91b4b2b659fb46638ff56f51be9b2b5 (patch) | |
tree | 232eb6b5ac95be4a2325e5790a7ee70fb4981698 /src/cmd/compile/internal/ssa/rewriteRISCV64.go | |
parent | 25da2ea72c18a63f5efdb7c506669aa733693bea (diff) | |
download | go-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.go | 60 |
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 |