diff options
author | Josh Bleecher Snyder <josharian@gmail.com> | 2020-01-23 12:03:26 -0800 |
---|---|---|
committer | Josh Bleecher Snyder <josharian@gmail.com> | 2020-02-24 23:32:38 +0000 |
commit | 1bda9b001f4a8fbec82bf580ea36c25dfca8e8d9 (patch) | |
tree | 861a5c006f4099c77005b5dc8da682a004b89440 /src/cmd/compile/internal/ssa/rewriteMIPS.go | |
parent | 917c7a6fc9c6843e40da7f8e1a1fcf8605d1383e (diff) | |
download | go-1bda9b001f4a8fbec82bf580ea36c25dfca8e8d9.tar.gz go-1bda9b001f4a8fbec82bf580ea36c25dfca8e8d9.zip |
cmd/compile: use ellipses in MIPS rules
Passes toolstash-check -all.
Change-Id: I14db0acb9b531029c613fa31bc076928651b6448
Reviewed-on: https://go-review.googlesource.com/c/go/+/217007
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteMIPS.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewriteMIPS.go | 1318 |
1 files changed, 164 insertions, 1154 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS.go b/src/cmd/compile/internal/ssa/rewriteMIPS.go index 3058ecb677..b9edc14d9f 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS.go @@ -8,57 +8,78 @@ import "cmd/compile/internal/types" func rewriteValueMIPS(v *Value) bool { switch v.Op { case OpAdd16: - return rewriteValueMIPS_OpAdd16(v) + v.Op = OpMIPSADD + return true case OpAdd32: - return rewriteValueMIPS_OpAdd32(v) + v.Op = OpMIPSADD + return true case OpAdd32F: - return rewriteValueMIPS_OpAdd32F(v) + v.Op = OpMIPSADDF + return true case OpAdd32withcarry: return rewriteValueMIPS_OpAdd32withcarry(v) case OpAdd64F: - return rewriteValueMIPS_OpAdd64F(v) + v.Op = OpMIPSADDD + return true case OpAdd8: - return rewriteValueMIPS_OpAdd8(v) + v.Op = OpMIPSADD + return true case OpAddPtr: - return rewriteValueMIPS_OpAddPtr(v) + v.Op = OpMIPSADD + return true case OpAddr: - return rewriteValueMIPS_OpAddr(v) + v.Op = OpMIPSMOVWaddr + return true case OpAnd16: - return rewriteValueMIPS_OpAnd16(v) + v.Op = OpMIPSAND + return true case OpAnd32: - return rewriteValueMIPS_OpAnd32(v) + v.Op = OpMIPSAND + return true case OpAnd8: - return rewriteValueMIPS_OpAnd8(v) + v.Op = OpMIPSAND + return true case OpAndB: - return rewriteValueMIPS_OpAndB(v) + v.Op = OpMIPSAND + return true case OpAtomicAdd32: - return rewriteValueMIPS_OpAtomicAdd32(v) + v.Op = OpMIPSLoweredAtomicAdd + return true case OpAtomicAnd8: return rewriteValueMIPS_OpAtomicAnd8(v) case OpAtomicCompareAndSwap32: - return rewriteValueMIPS_OpAtomicCompareAndSwap32(v) + v.Op = OpMIPSLoweredAtomicCas + return true case OpAtomicExchange32: - return rewriteValueMIPS_OpAtomicExchange32(v) + v.Op = OpMIPSLoweredAtomicExchange + return true case OpAtomicLoad32: - return rewriteValueMIPS_OpAtomicLoad32(v) + v.Op = OpMIPSLoweredAtomicLoad32 + return true case OpAtomicLoad8: - return rewriteValueMIPS_OpAtomicLoad8(v) + v.Op = OpMIPSLoweredAtomicLoad8 + return true case OpAtomicLoadPtr: - return rewriteValueMIPS_OpAtomicLoadPtr(v) + v.Op = OpMIPSLoweredAtomicLoad32 + return true case OpAtomicOr8: return rewriteValueMIPS_OpAtomicOr8(v) case OpAtomicStore32: - return rewriteValueMIPS_OpAtomicStore32(v) + v.Op = OpMIPSLoweredAtomicStore32 + return true case OpAtomicStore8: - return rewriteValueMIPS_OpAtomicStore8(v) + v.Op = OpMIPSLoweredAtomicStore8 + return true case OpAtomicStorePtrNoWB: - return rewriteValueMIPS_OpAtomicStorePtrNoWB(v) + v.Op = OpMIPSLoweredAtomicStore32 + return true case OpAvg32u: return rewriteValueMIPS_OpAvg32u(v) case OpBitLen32: return rewriteValueMIPS_OpBitLen32(v) case OpClosureCall: - return rewriteValueMIPS_OpClosureCall(v) + v.Op = OpMIPSCALLclosure + return true case OpCom16: return rewriteValueMIPS_OpCom16(v) case OpCom32: @@ -66,35 +87,48 @@ func rewriteValueMIPS(v *Value) bool { case OpCom8: return rewriteValueMIPS_OpCom8(v) case OpConst16: - return rewriteValueMIPS_OpConst16(v) + v.Op = OpMIPSMOVWconst + return true case OpConst32: - return rewriteValueMIPS_OpConst32(v) + v.Op = OpMIPSMOVWconst + return true case OpConst32F: - return rewriteValueMIPS_OpConst32F(v) + v.Op = OpMIPSMOVFconst + return true case OpConst64F: - return rewriteValueMIPS_OpConst64F(v) + v.Op = OpMIPSMOVDconst + return true case OpConst8: - return rewriteValueMIPS_OpConst8(v) + v.Op = OpMIPSMOVWconst + return true case OpConstBool: - return rewriteValueMIPS_OpConstBool(v) + v.Op = OpMIPSMOVWconst + return true case OpConstNil: return rewriteValueMIPS_OpConstNil(v) case OpCtz32: return rewriteValueMIPS_OpCtz32(v) case OpCtz32NonZero: - return rewriteValueMIPS_OpCtz32NonZero(v) + v.Op = OpCtz32 + return true case OpCvt32Fto32: - return rewriteValueMIPS_OpCvt32Fto32(v) + v.Op = OpMIPSTRUNCFW + return true case OpCvt32Fto64F: - return rewriteValueMIPS_OpCvt32Fto64F(v) + v.Op = OpMIPSMOVFD + return true case OpCvt32to32F: - return rewriteValueMIPS_OpCvt32to32F(v) + v.Op = OpMIPSMOVWF + return true case OpCvt32to64F: - return rewriteValueMIPS_OpCvt32to64F(v) + v.Op = OpMIPSMOVWD + return true case OpCvt64Fto32: - return rewriteValueMIPS_OpCvt64Fto32(v) + v.Op = OpMIPSTRUNCDW + return true case OpCvt64Fto32F: - return rewriteValueMIPS_OpCvt64Fto32F(v) + v.Op = OpMIPSMOVDF + return true case OpDiv16: return rewriteValueMIPS_OpDiv16(v) case OpDiv16u: @@ -102,11 +136,13 @@ func rewriteValueMIPS(v *Value) bool { case OpDiv32: return rewriteValueMIPS_OpDiv32(v) case OpDiv32F: - return rewriteValueMIPS_OpDiv32F(v) + v.Op = OpMIPSDIVF + return true case OpDiv32u: return rewriteValueMIPS_OpDiv32u(v) case OpDiv64F: - return rewriteValueMIPS_OpDiv64F(v) + v.Op = OpMIPSDIVD + return true case OpDiv8: return rewriteValueMIPS_OpDiv8(v) case OpDiv8u: @@ -142,21 +178,26 @@ func rewriteValueMIPS(v *Value) bool { case OpGeq8U: return rewriteValueMIPS_OpGeq8U(v) case OpGetCallerPC: - return rewriteValueMIPS_OpGetCallerPC(v) + v.Op = OpMIPSLoweredGetCallerPC + return true case OpGetCallerSP: - return rewriteValueMIPS_OpGetCallerSP(v) + v.Op = OpMIPSLoweredGetCallerSP + return true case OpGetClosurePtr: - return rewriteValueMIPS_OpGetClosurePtr(v) + v.Op = OpMIPSLoweredGetClosurePtr + return true case OpGreater16: return rewriteValueMIPS_OpGreater16(v) case OpGreater16U: return rewriteValueMIPS_OpGreater16U(v) case OpGreater32: - return rewriteValueMIPS_OpGreater32(v) + v.Op = OpMIPSSGT + return true case OpGreater32F: return rewriteValueMIPS_OpGreater32F(v) case OpGreater32U: - return rewriteValueMIPS_OpGreater32U(v) + v.Op = OpMIPSSGTU + return true case OpGreater64F: return rewriteValueMIPS_OpGreater64F(v) case OpGreater8: @@ -168,7 +209,8 @@ func rewriteValueMIPS(v *Value) bool { case OpHmul32u: return rewriteValueMIPS_OpHmul32u(v) case OpInterCall: - return rewriteValueMIPS_OpInterCall(v) + v.Op = OpMIPSCALLinter + return true case OpIsInBounds: return rewriteValueMIPS_OpIsInBounds(v) case OpIsNonNil: @@ -350,27 +392,38 @@ func rewriteValueMIPS(v *Value) bool { case OpMove: return rewriteValueMIPS_OpMove(v) case OpMul16: - return rewriteValueMIPS_OpMul16(v) + v.Op = OpMIPSMUL + return true case OpMul32: - return rewriteValueMIPS_OpMul32(v) + v.Op = OpMIPSMUL + return true case OpMul32F: - return rewriteValueMIPS_OpMul32F(v) + v.Op = OpMIPSMULF + return true case OpMul32uhilo: - return rewriteValueMIPS_OpMul32uhilo(v) + v.Op = OpMIPSMULTU + return true case OpMul64F: - return rewriteValueMIPS_OpMul64F(v) + v.Op = OpMIPSMULD + return true case OpMul8: - return rewriteValueMIPS_OpMul8(v) + v.Op = OpMIPSMUL + return true case OpNeg16: - return rewriteValueMIPS_OpNeg16(v) + v.Op = OpMIPSNEG + return true case OpNeg32: - return rewriteValueMIPS_OpNeg32(v) + v.Op = OpMIPSNEG + return true case OpNeg32F: - return rewriteValueMIPS_OpNeg32F(v) + v.Op = OpMIPSNEGF + return true case OpNeg64F: - return rewriteValueMIPS_OpNeg64F(v) + v.Op = OpMIPSNEGD + return true case OpNeg8: - return rewriteValueMIPS_OpNeg8(v) + v.Op = OpMIPSNEG + return true case OpNeq16: return rewriteValueMIPS_OpNeq16(v) case OpNeq32: @@ -382,23 +435,29 @@ func rewriteValueMIPS(v *Value) bool { case OpNeq8: return rewriteValueMIPS_OpNeq8(v) case OpNeqB: - return rewriteValueMIPS_OpNeqB(v) + v.Op = OpMIPSXOR + return true case OpNeqPtr: return rewriteValueMIPS_OpNeqPtr(v) case OpNilCheck: - return rewriteValueMIPS_OpNilCheck(v) + v.Op = OpMIPSLoweredNilCheck + return true case OpNot: return rewriteValueMIPS_OpNot(v) case OpOffPtr: return rewriteValueMIPS_OpOffPtr(v) case OpOr16: - return rewriteValueMIPS_OpOr16(v) + v.Op = OpMIPSOR + return true case OpOr32: - return rewriteValueMIPS_OpOr32(v) + v.Op = OpMIPSOR + return true case OpOr8: - return rewriteValueMIPS_OpOr8(v) + v.Op = OpMIPSOR + return true case OpOrB: - return rewriteValueMIPS_OpOrB(v) + v.Op = OpMIPSOR + return true case OpPanicBounds: return rewriteValueMIPS_OpPanicBounds(v) case OpPanicExtend: @@ -412,9 +471,11 @@ func rewriteValueMIPS(v *Value) bool { case OpRotateLeft8: return rewriteValueMIPS_OpRotateLeft8(v) case OpRound32F: - return rewriteValueMIPS_OpRound32F(v) + v.Op = OpCopy + return true case OpRound64F: - return rewriteValueMIPS_OpRound64F(v) + v.Op = OpCopy + return true case OpRsh16Ux16: return rewriteValueMIPS_OpRsh16Ux16(v) case OpRsh16Ux32: @@ -468,104 +529,83 @@ func rewriteValueMIPS(v *Value) bool { case OpSelect1: return rewriteValueMIPS_OpSelect1(v) case OpSignExt16to32: - return rewriteValueMIPS_OpSignExt16to32(v) + v.Op = OpMIPSMOVHreg + return true case OpSignExt8to16: - return rewriteValueMIPS_OpSignExt8to16(v) + v.Op = OpMIPSMOVBreg + return true case OpSignExt8to32: - return rewriteValueMIPS_OpSignExt8to32(v) + v.Op = OpMIPSMOVBreg + return true case OpSignmask: return rewriteValueMIPS_OpSignmask(v) case OpSlicemask: return rewriteValueMIPS_OpSlicemask(v) case OpSqrt: - return rewriteValueMIPS_OpSqrt(v) + v.Op = OpMIPSSQRTD + return true case OpStaticCall: - return rewriteValueMIPS_OpStaticCall(v) + v.Op = OpMIPSCALLstatic + return true case OpStore: return rewriteValueMIPS_OpStore(v) case OpSub16: - return rewriteValueMIPS_OpSub16(v) + v.Op = OpMIPSSUB + return true case OpSub32: - return rewriteValueMIPS_OpSub32(v) + v.Op = OpMIPSSUB + return true case OpSub32F: - return rewriteValueMIPS_OpSub32F(v) + v.Op = OpMIPSSUBF + return true case OpSub32withcarry: return rewriteValueMIPS_OpSub32withcarry(v) case OpSub64F: - return rewriteValueMIPS_OpSub64F(v) + v.Op = OpMIPSSUBD + return true case OpSub8: - return rewriteValueMIPS_OpSub8(v) + v.Op = OpMIPSSUB + return true case OpSubPtr: - return rewriteValueMIPS_OpSubPtr(v) + v.Op = OpMIPSSUB + return true case OpTrunc16to8: - return rewriteValueMIPS_OpTrunc16to8(v) + v.Op = OpCopy + return true case OpTrunc32to16: - return rewriteValueMIPS_OpTrunc32to16(v) + v.Op = OpCopy + return true case OpTrunc32to8: - return rewriteValueMIPS_OpTrunc32to8(v) + v.Op = OpCopy + return true case OpWB: - return rewriteValueMIPS_OpWB(v) + v.Op = OpMIPSLoweredWB + return true case OpXor16: - return rewriteValueMIPS_OpXor16(v) + v.Op = OpMIPSXOR + return true case OpXor32: - return rewriteValueMIPS_OpXor32(v) + v.Op = OpMIPSXOR + return true case OpXor8: - return rewriteValueMIPS_OpXor8(v) + v.Op = OpMIPSXOR + return true case OpZero: return rewriteValueMIPS_OpZero(v) case OpZeroExt16to32: - return rewriteValueMIPS_OpZeroExt16to32(v) + v.Op = OpMIPSMOVHUreg + return true case OpZeroExt8to16: - return rewriteValueMIPS_OpZeroExt8to16(v) + v.Op = OpMIPSMOVBUreg + return true case OpZeroExt8to32: - return rewriteValueMIPS_OpZeroExt8to32(v) + v.Op = OpMIPSMOVBUreg + return true case OpZeromask: return rewriteValueMIPS_OpZeromask(v) } return false } -func rewriteValueMIPS_OpAdd16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Add16 x y) - // result: (ADD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSADD) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAdd32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Add32 x y) - // result: (ADD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSADD) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAdd32F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Add32F x y) - // result: (ADDF x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSADDF) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpAdd32withcarry(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -587,134 +627,6 @@ func rewriteValueMIPS_OpAdd32withcarry(v *Value) bool { return true } } -func rewriteValueMIPS_OpAdd64F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Add64F x y) - // result: (ADDD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSADDD) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAdd8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Add8 x y) - // result: (ADD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSADD) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAddPtr(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AddPtr x y) - // result: (ADD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSADD) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAddr(v *Value) bool { - v_0 := v.Args[0] - // match: (Addr {sym} base) - // result: (MOVWaddr {sym} base) - for { - sym := v.Aux - base := v_0 - v.reset(OpMIPSMOVWaddr) - v.Aux = sym - v.AddArg(base) - return true - } -} -func rewriteValueMIPS_OpAnd16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (And16 x y) - // result: (AND x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSAND) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAnd32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (And32 x y) - // result: (AND x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSAND) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAnd8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (And8 x y) - // result: (AND x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSAND) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAndB(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AndB x y) - // result: (AND x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSAND) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpAtomicAdd32(v *Value) bool { - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicAdd32 ptr val mem) - // result: (LoweredAtomicAdd ptr val mem) - for { - ptr := v_0 - val := v_1 - mem := v_2 - v.reset(OpMIPSLoweredAtomicAdd) - v.AddArg(ptr) - v.AddArg(val) - v.AddArg(mem) - return true - } -} func rewriteValueMIPS_OpAtomicAnd8(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -828,85 +740,6 @@ func rewriteValueMIPS_OpAtomicAnd8(v *Value) bool { } return false } -func rewriteValueMIPS_OpAtomicCompareAndSwap32(v *Value) bool { - v_3 := v.Args[3] - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicCompareAndSwap32 ptr old new_ mem) - // result: (LoweredAtomicCas ptr old new_ mem) - for { - ptr := v_0 - old := v_1 - new_ := v_2 - mem := v_3 - v.reset(OpMIPSLoweredAtomicCas) - v.AddArg(ptr) - v.AddArg(old) - v.AddArg(new_) - v.AddArg(mem) - return true - } -} -func rewriteValueMIPS_OpAtomicExchange32(v *Value) bool { - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicExchange32 ptr val mem) - // result: (LoweredAtomicExchange ptr val mem) - for { - ptr := v_0 - val := v_1 - mem := v_2 - v.reset(OpMIPSLoweredAtomicExchange) - v.AddArg(ptr) - v.AddArg(val) - v.AddArg(mem) - return true - } -} -func rewriteValueMIPS_OpAtomicLoad32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicLoad32 ptr mem) - // result: (LoweredAtomicLoad32 ptr mem) - for { - ptr := v_0 - mem := v_1 - v.reset(OpMIPSLoweredAtomicLoad32) - v.AddArg(ptr) - v.AddArg(mem) - return true - } -} -func rewriteValueMIPS_OpAtomicLoad8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicLoad8 ptr mem) - // result: (LoweredAtomicLoad8 ptr mem) - for { - ptr := v_0 - mem := v_1 - v.reset(OpMIPSLoweredAtomicLoad8) - v.AddArg(ptr) - v.AddArg(mem) - return true - } -} -func rewriteValueMIPS_OpAtomicLoadPtr(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicLoadPtr ptr mem) - // result: (LoweredAtomicLoad32 ptr mem) - for { - ptr := v_0 - mem := v_1 - v.reset(OpMIPSLoweredAtomicLoad32) - v.AddArg(ptr) - v.AddArg(mem) - return true - } -} func rewriteValueMIPS_OpAtomicOr8(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -983,57 +816,6 @@ func rewriteValueMIPS_OpAtomicOr8(v *Value) bool { } return false } -func rewriteValueMIPS_OpAtomicStore32(v *Value) bool { - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicStore32 ptr val mem) - // result: (LoweredAtomicStore32 ptr val mem) - for { - ptr := v_0 - val := v_1 - mem := v_2 - v.reset(OpMIPSLoweredAtomicStore32) - v.AddArg(ptr) - v.AddArg(val) - v.AddArg(mem) - return true - } -} -func rewriteValueMIPS_OpAtomicStore8(v *Value) bool { - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicStore8 ptr val mem) - // result: (LoweredAtomicStore8 ptr val mem) - for { - ptr := v_0 - val := v_1 - mem := v_2 - v.reset(OpMIPSLoweredAtomicStore8) - v.AddArg(ptr) - v.AddArg(val) - v.AddArg(mem) - return true - } -} -func rewriteValueMIPS_OpAtomicStorePtrNoWB(v *Value) bool { - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (AtomicStorePtrNoWB ptr val mem) - // result: (LoweredAtomicStore32 ptr val mem) - for { - ptr := v_0 - val := v_1 - mem := v_2 - v.reset(OpMIPSLoweredAtomicStore32) - v.AddArg(ptr) - v.AddArg(val) - v.AddArg(mem) - return true - } -} func rewriteValueMIPS_OpAvg32u(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1075,25 +857,6 @@ func rewriteValueMIPS_OpBitLen32(v *Value) bool { return true } } -func rewriteValueMIPS_OpClosureCall(v *Value) bool { - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ClosureCall [argwid] entry closure mem) - // result: (CALLclosure [argwid] entry closure mem) - for { - argwid := v.AuxInt - entry := v_0 - closure := v_1 - mem := v_2 - v.reset(OpMIPSCALLclosure) - v.AuxInt = argwid - v.AddArg(entry) - v.AddArg(closure) - v.AddArg(mem) - return true - } -} func rewriteValueMIPS_OpCom16(v *Value) bool { v_0 := v.Args[0] // match: (Com16 x) @@ -1130,66 +893,6 @@ func rewriteValueMIPS_OpCom8(v *Value) bool { return true } } -func rewriteValueMIPS_OpConst16(v *Value) bool { - // match: (Const16 [val]) - // result: (MOVWconst [val]) - for { - val := v.AuxInt - v.reset(OpMIPSMOVWconst) - v.AuxInt = val - return true - } -} -func rewriteValueMIPS_OpConst32(v *Value) bool { - // match: (Const32 [val]) - // result: (MOVWconst [val]) - for { - val := v.AuxInt - v.reset(OpMIPSMOVWconst) - v.AuxInt = val - return true - } -} -func rewriteValueMIPS_OpConst32F(v *Value) bool { - // match: (Const32F [val]) - // result: (MOVFconst [val]) - for { - val := v.AuxInt - v.reset(OpMIPSMOVFconst) - v.AuxInt = val - return true - } -} -func rewriteValueMIPS_OpConst64F(v *Value) bool { - // match: (Const64F [val]) - // result: (MOVDconst [val]) - for { - val := v.AuxInt - v.reset(OpMIPSMOVDconst) - v.AuxInt = val - return true - } -} -func rewriteValueMIPS_OpConst8(v *Value) bool { - // match: (Const8 [val]) - // result: (MOVWconst [val]) - for { - val := v.AuxInt - v.reset(OpMIPSMOVWconst) - v.AuxInt = val - return true - } -} -func rewriteValueMIPS_OpConstBool(v *Value) bool { - // match: (ConstBool [b]) - // result: (MOVWconst [b]) - for { - b := v.AuxInt - v.reset(OpMIPSMOVWconst) - v.AuxInt = b - return true - } -} func rewriteValueMIPS_OpConstNil(v *Value) bool { // match: (ConstNil) // result: (MOVWconst [0]) @@ -1226,83 +929,6 @@ func rewriteValueMIPS_OpCtz32(v *Value) bool { return true } } -func rewriteValueMIPS_OpCtz32NonZero(v *Value) bool { - v_0 := v.Args[0] - // match: (Ctz32NonZero x) - // result: (Ctz32 x) - for { - x := v_0 - v.reset(OpCtz32) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpCvt32Fto32(v *Value) bool { - v_0 := v.Args[0] - // match: (Cvt32Fto32 x) - // result: (TRUNCFW x) - for { - x := v_0 - v.reset(OpMIPSTRUNCFW) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpCvt32Fto64F(v *Value) bool { - v_0 := v.Args[0] - // match: (Cvt32Fto64F x) - // result: (MOVFD x) - for { - x := v_0 - v.reset(OpMIPSMOVFD) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpCvt32to32F(v *Value) bool { - v_0 := v.Args[0] - // match: (Cvt32to32F x) - // result: (MOVWF x) - for { - x := v_0 - v.reset(OpMIPSMOVWF) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpCvt32to64F(v *Value) bool { - v_0 := v.Args[0] - // match: (Cvt32to64F x) - // result: (MOVWD x) - for { - x := v_0 - v.reset(OpMIPSMOVWD) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpCvt64Fto32(v *Value) bool { - v_0 := v.Args[0] - // match: (Cvt64Fto32 x) - // result: (TRUNCDW x) - for { - x := v_0 - v.reset(OpMIPSTRUNCDW) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpCvt64Fto32F(v *Value) bool { - v_0 := v.Args[0] - // match: (Cvt64Fto32F x) - // result: (MOVDF x) - for { - x := v_0 - v.reset(OpMIPSMOVDF) - v.AddArg(x) - return true - } -} func rewriteValueMIPS_OpDiv16(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1365,20 +991,6 @@ func rewriteValueMIPS_OpDiv32(v *Value) bool { return true } } -func rewriteValueMIPS_OpDiv32F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Div32F x y) - // result: (DIVF x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSDIVF) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpDiv32u(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1397,20 +1009,6 @@ func rewriteValueMIPS_OpDiv32u(v *Value) bool { return true } } -func rewriteValueMIPS_OpDiv64F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Div64F x y) - // result: (DIVD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSDIVD) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpDiv8(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1756,30 +1354,6 @@ func rewriteValueMIPS_OpGeq8U(v *Value) bool { return true } } -func rewriteValueMIPS_OpGetCallerPC(v *Value) bool { - // match: (GetCallerPC) - // result: (LoweredGetCallerPC) - for { - v.reset(OpMIPSLoweredGetCallerPC) - return true - } -} -func rewriteValueMIPS_OpGetCallerSP(v *Value) bool { - // match: (GetCallerSP) - // result: (LoweredGetCallerSP) - for { - v.reset(OpMIPSLoweredGetCallerSP) - return true - } -} -func rewriteValueMIPS_OpGetClosurePtr(v *Value) bool { - // match: (GetClosurePtr) - // result: (LoweredGetClosurePtr) - for { - v.reset(OpMIPSLoweredGetClosurePtr) - return true - } -} func rewriteValueMIPS_OpGreater16(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1820,20 +1394,6 @@ func rewriteValueMIPS_OpGreater16U(v *Value) bool { return true } } -func rewriteValueMIPS_OpGreater32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Greater32 x y) - // result: (SGT x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSGT) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpGreater32F(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1851,20 +1411,6 @@ func rewriteValueMIPS_OpGreater32F(v *Value) bool { return true } } -func rewriteValueMIPS_OpGreater32U(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Greater32U x y) - // result: (SGTU x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSGTU) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpGreater64F(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1958,22 +1504,6 @@ func rewriteValueMIPS_OpHmul32u(v *Value) bool { return true } } -func rewriteValueMIPS_OpInterCall(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (InterCall [argwid] entry mem) - // result: (CALLinter [argwid] entry mem) - for { - argwid := v.AuxInt - entry := v_0 - mem := v_1 - v.reset(OpMIPSCALLinter) - v.AuxInt = argwid - v.AddArg(entry) - v.AddArg(mem) - return true - } -} func rewriteValueMIPS_OpIsInBounds(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -6305,145 +5835,6 @@ func rewriteValueMIPS_OpMove(v *Value) bool { } return false } -func rewriteValueMIPS_OpMul16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mul16 x y) - // result: (MUL x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSMUL) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpMul32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mul32 x y) - // result: (MUL x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSMUL) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpMul32F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mul32F x y) - // result: (MULF x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSMULF) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpMul32uhilo(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mul32uhilo x y) - // result: (MULTU x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSMULTU) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpMul64F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mul64F x y) - // result: (MULD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSMULD) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpMul8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mul8 x y) - // result: (MUL x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSMUL) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpNeg16(v *Value) bool { - v_0 := v.Args[0] - // match: (Neg16 x) - // result: (NEG x) - for { - x := v_0 - v.reset(OpMIPSNEG) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpNeg32(v *Value) bool { - v_0 := v.Args[0] - // match: (Neg32 x) - // result: (NEG x) - for { - x := v_0 - v.reset(OpMIPSNEG) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpNeg32F(v *Value) bool { - v_0 := v.Args[0] - // match: (Neg32F x) - // result: (NEGF x) - for { - x := v_0 - v.reset(OpMIPSNEGF) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpNeg64F(v *Value) bool { - v_0 := v.Args[0] - // match: (Neg64F x) - // result: (NEGD x) - for { - x := v_0 - v.reset(OpMIPSNEGD) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpNeg8(v *Value) bool { - v_0 := v.Args[0] - // match: (Neg8 x) - // result: (NEG x) - for { - x := v_0 - v.reset(OpMIPSNEG) - v.AddArg(x) - return true - } -} func rewriteValueMIPS_OpNeq16(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -6549,20 +5940,6 @@ func rewriteValueMIPS_OpNeq8(v *Value) bool { return true } } -func rewriteValueMIPS_OpNeqB(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (NeqB x y) - // result: (XOR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSXOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpNeqPtr(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -6584,20 +5961,6 @@ func rewriteValueMIPS_OpNeqPtr(v *Value) bool { return true } } -func rewriteValueMIPS_OpNilCheck(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (NilCheck ptr mem) - // result: (LoweredNilCheck ptr mem) - for { - ptr := v_0 - mem := v_1 - v.reset(OpMIPSLoweredNilCheck) - v.AddArg(ptr) - v.AddArg(mem) - return true - } -} func rewriteValueMIPS_OpNot(v *Value) bool { v_0 := v.Args[0] // match: (Not x) @@ -6636,62 +5999,6 @@ func rewriteValueMIPS_OpOffPtr(v *Value) bool { return true } } -func rewriteValueMIPS_OpOr16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Or16 x y) - // result: (OR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpOr32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Or32 x y) - // result: (OR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpOr8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Or8 x y) - // result: (OR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpOrB(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (OrB x y) - // result: (OR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpPanicBounds(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -6943,30 +6250,6 @@ func rewriteValueMIPS_OpRotateLeft8(v *Value) bool { } return false } -func rewriteValueMIPS_OpRound32F(v *Value) bool { - v_0 := v.Args[0] - // match: (Round32F x) - // result: x - for { - x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpRound64F(v *Value) bool { - v_0 := v.Args[0] - // match: (Round64F x) - // result: x - for { - x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) - return true - } -} func rewriteValueMIPS_OpRsh16Ux16(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -8140,39 +7423,6 @@ func rewriteValueMIPS_OpSelect1(v *Value) bool { } return false } -func rewriteValueMIPS_OpSignExt16to32(v *Value) bool { - v_0 := v.Args[0] - // match: (SignExt16to32 x) - // result: (MOVHreg x) - for { - x := v_0 - v.reset(OpMIPSMOVHreg) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpSignExt8to16(v *Value) bool { - v_0 := v.Args[0] - // match: (SignExt8to16 x) - // result: (MOVBreg x) - for { - x := v_0 - v.reset(OpMIPSMOVBreg) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpSignExt8to32(v *Value) bool { - v_0 := v.Args[0] - // match: (SignExt8to32 x) - // result: (MOVBreg x) - for { - x := v_0 - v.reset(OpMIPSMOVBreg) - v.AddArg(x) - return true - } -} func rewriteValueMIPS_OpSignmask(v *Value) bool { v_0 := v.Args[0] // match: (Signmask x) @@ -8201,32 +7451,6 @@ func rewriteValueMIPS_OpSlicemask(v *Value) bool { return true } } -func rewriteValueMIPS_OpSqrt(v *Value) bool { - v_0 := v.Args[0] - // match: (Sqrt x) - // result: (SQRTD x) - for { - x := v_0 - v.reset(OpMIPSSQRTD) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpStaticCall(v *Value) bool { - v_0 := v.Args[0] - // match: (StaticCall [argwid] {target} mem) - // result: (CALLstatic [argwid] {target} mem) - for { - argwid := v.AuxInt - target := v.Aux - mem := v_0 - v.reset(OpMIPSCALLstatic) - v.AuxInt = argwid - v.Aux = target - v.AddArg(mem) - return true - } -} func rewriteValueMIPS_OpStore(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -8318,48 +7542,6 @@ func rewriteValueMIPS_OpStore(v *Value) bool { } return false } -func rewriteValueMIPS_OpSub16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Sub16 x y) - // result: (SUB x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSUB) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpSub32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Sub32 x y) - // result: (SUB x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSUB) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpSub32F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Sub32F x y) - // result: (SUBF x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSUBF) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpSub32withcarry(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -8381,145 +7563,6 @@ func rewriteValueMIPS_OpSub32withcarry(v *Value) bool { return true } } -func rewriteValueMIPS_OpSub64F(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Sub64F x y) - // result: (SUBD x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSUBD) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpSub8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Sub8 x y) - // result: (SUB x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSUB) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpSubPtr(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SubPtr x y) - // result: (SUB x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSSUB) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpTrunc16to8(v *Value) bool { - v_0 := v.Args[0] - // match: (Trunc16to8 x) - // result: x - for { - x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpTrunc32to16(v *Value) bool { - v_0 := v.Args[0] - // match: (Trunc32to16 x) - // result: x - for { - x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpTrunc32to8(v *Value) bool { - v_0 := v.Args[0] - // match: (Trunc32to8 x) - // result: x - for { - x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpWB(v *Value) bool { - v_2 := v.Args[2] - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (WB {fn} destptr srcptr mem) - // result: (LoweredWB {fn} destptr srcptr mem) - for { - fn := v.Aux - destptr := v_0 - srcptr := v_1 - mem := v_2 - v.reset(OpMIPSLoweredWB) - v.Aux = fn - v.AddArg(destptr) - v.AddArg(srcptr) - v.AddArg(mem) - return true - } -} -func rewriteValueMIPS_OpXor16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Xor16 x y) - // result: (XOR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSXOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpXor32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Xor32 x y) - // result: (XOR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSXOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} -func rewriteValueMIPS_OpXor8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Xor8 x y) - // result: (XOR x y) - for { - x := v_0 - y := v_1 - v.reset(OpMIPSXOR) - v.AddArg(x) - v.AddArg(y) - return true - } -} func rewriteValueMIPS_OpZero(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -8885,39 +7928,6 @@ func rewriteValueMIPS_OpZero(v *Value) bool { } return false } -func rewriteValueMIPS_OpZeroExt16to32(v *Value) bool { - v_0 := v.Args[0] - // match: (ZeroExt16to32 x) - // result: (MOVHUreg x) - for { - x := v_0 - v.reset(OpMIPSMOVHUreg) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpZeroExt8to16(v *Value) bool { - v_0 := v.Args[0] - // match: (ZeroExt8to16 x) - // result: (MOVBUreg x) - for { - x := v_0 - v.reset(OpMIPSMOVBUreg) - v.AddArg(x) - return true - } -} -func rewriteValueMIPS_OpZeroExt8to32(v *Value) bool { - v_0 := v.Args[0] - // match: (ZeroExt8to32 x) - // result: (MOVBUreg x) - for { - x := v_0 - v.reset(OpMIPSMOVBUreg) - v.AddArg(x) - return true - } -} func rewriteValueMIPS_OpZeromask(v *Value) bool { v_0 := v.Args[0] b := v.Block |