diff options
Diffstat (limited to 'src/cmd/compile/internal/ssa/opGen.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/opGen.go | 111 |
1 files changed, 78 insertions, 33 deletions
diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index 9d11d03793..941e6466ae 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -7307,6 +7307,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultInArg0: true, faultOnNilArg1: true, + hasSideEffects: true, asm: x86.AXCHGL, reg: regInfo{ inputs: []inputInfo{ @@ -7324,6 +7325,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultInArg0: true, faultOnNilArg1: true, + hasSideEffects: true, asm: x86.AXCHGQ, reg: regInfo{ inputs: []inputInfo{ @@ -7342,6 +7344,7 @@ var opcodeTable = [...]opInfo{ resultInArg0: true, clobberFlags: true, faultOnNilArg1: true, + hasSideEffects: true, asm: x86.AXADDL, reg: regInfo{ inputs: []inputInfo{ @@ -7360,6 +7363,7 @@ var opcodeTable = [...]opInfo{ resultInArg0: true, clobberFlags: true, faultOnNilArg1: true, + hasSideEffects: true, asm: x86.AXADDQ, reg: regInfo{ inputs: []inputInfo{ @@ -7387,6 +7391,7 @@ var opcodeTable = [...]opInfo{ argLen: 4, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: x86.ACMPXCHGL, reg: regInfo{ inputs: []inputInfo{ @@ -7407,6 +7412,7 @@ var opcodeTable = [...]opInfo{ argLen: 4, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: x86.ACMPXCHGQ, reg: regInfo{ inputs: []inputInfo{ @@ -7427,6 +7433,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: x86.AANDB, reg: regInfo{ inputs: []inputInfo{ @@ -7441,6 +7448,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: x86.AORB, reg: regInfo{ inputs: []inputInfo{ @@ -12657,6 +12665,7 @@ var opcodeTable = [...]opInfo{ name: "STLR", argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: arm64.ASTLR, reg: regInfo{ inputs: []inputInfo{ @@ -12669,6 +12678,7 @@ var opcodeTable = [...]opInfo{ name: "STLRW", argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: arm64.ASTLRW, reg: regInfo{ inputs: []inputInfo{ @@ -12682,6 +12692,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 @@ -12697,6 +12708,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 @@ -12712,6 +12724,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 @@ -12727,6 +12740,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 @@ -12743,6 +12757,7 @@ var opcodeTable = [...]opInfo{ resultNotInArgs: true, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 @@ -12760,6 +12775,7 @@ var opcodeTable = [...]opInfo{ resultNotInArgs: true, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 @@ -12775,6 +12791,7 @@ var opcodeTable = [...]opInfo{ name: "LoweredAtomicAnd8", argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: arm64.AAND, reg: regInfo{ inputs: []inputInfo{ @@ -12787,6 +12804,7 @@ var opcodeTable = [...]opInfo{ name: "LoweredAtomicOr8", argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: arm64.AORR, reg: regInfo{ inputs: []inputInfo{ @@ -13977,6 +13995,7 @@ var opcodeTable = [...]opInfo{ name: "LoweredAtomicStore", argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 @@ -13988,6 +14007,7 @@ var opcodeTable = [...]opInfo{ name: "LoweredAtomicStorezero", argLen: 2, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB @@ -13999,6 +14019,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 @@ -14014,6 +14035,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 @@ -14030,6 +14052,7 @@ var opcodeTable = [...]opInfo{ argLen: 2, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB @@ -14044,6 +14067,7 @@ var opcodeTable = [...]opInfo{ argLen: 4, resultNotInArgs: true, faultOnNilArg0: true, + hasSideEffects: true, reg: regInfo{ inputs: []inputInfo{ {1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 @@ -14059,6 +14083,7 @@ var opcodeTable = [...]opInfo{ name: "LoweredAtomicAnd", argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: mips.AAND, reg: regInfo{ inputs: []inputInfo{ @@ -14071,6 +14096,7 @@ var opcodeTable = [...]opInfo{ name: "LoweredAtomicOr", argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: mips.AOR, reg: regInfo{ inputs: []inputInfo{ @@ -19500,6 +19526,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.AMOVW, reg: regInfo{ inputs: []inputInfo{ @@ -19514,6 +19541,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.AMOVD, reg: regInfo{ inputs: []inputInfo{ @@ -19527,6 +19555,7 @@ var opcodeTable = [...]opInfo{ auxType: auxSymOff, argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.ALAA, reg: regInfo{ inputs: []inputInfo{ @@ -19543,6 +19572,7 @@ var opcodeTable = [...]opInfo{ auxType: auxSymOff, argLen: 3, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.ALAAG, reg: regInfo{ inputs: []inputInfo{ @@ -19570,6 +19600,7 @@ var opcodeTable = [...]opInfo{ argLen: 4, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.ACS, reg: regInfo{ inputs: []inputInfo{ @@ -19590,6 +19621,7 @@ var opcodeTable = [...]opInfo{ argLen: 4, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.ACSG, reg: regInfo{ inputs: []inputInfo{ @@ -19610,6 +19642,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.ACS, reg: regInfo{ inputs: []inputInfo{ @@ -19628,6 +19661,7 @@ var opcodeTable = [...]opInfo{ argLen: 3, clobberFlags: true, faultOnNilArg0: true, + hasSideEffects: true, asm: s390x.ACSG, reg: regInfo{ inputs: []inputInfo{ @@ -21415,59 +21449,70 @@ var opcodeTable = [...]opInfo{ generic: true, }, { - name: "AtomicStore32", - argLen: 3, - generic: true, + name: "AtomicStore32", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicStore64", - argLen: 3, - generic: true, + name: "AtomicStore64", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicStorePtrNoWB", - argLen: 3, - generic: true, + name: "AtomicStorePtrNoWB", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicExchange32", - argLen: 3, - generic: true, + name: "AtomicExchange32", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicExchange64", - argLen: 3, - generic: true, + name: "AtomicExchange64", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicAdd32", - argLen: 3, - generic: true, + name: "AtomicAdd32", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicAdd64", - argLen: 3, - generic: true, + name: "AtomicAdd64", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicCompareAndSwap32", - argLen: 4, - generic: true, + name: "AtomicCompareAndSwap32", + argLen: 4, + hasSideEffects: true, + generic: true, }, { - name: "AtomicCompareAndSwap64", - argLen: 4, - generic: true, + name: "AtomicCompareAndSwap64", + argLen: 4, + hasSideEffects: true, + generic: true, }, { - name: "AtomicAnd8", - argLen: 3, - generic: true, + name: "AtomicAnd8", + argLen: 3, + hasSideEffects: true, + generic: true, }, { - name: "AtomicOr8", - argLen: 3, - generic: true, + name: "AtomicOr8", + argLen: 3, + hasSideEffects: true, + generic: true, }, } |