diff options
author | Austin Clements <austin@google.com> | 2019-10-29 00:16:28 -0400 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2019-10-29 13:48:29 +0000 |
commit | ec10e6f364dddef88223eb9ddda1ee900b1551cb (patch) | |
tree | fcb0ee857c9d8101e1890829f6c898655a2fc382 /src/cmd/compile/internal/ssa/opGen.go | |
parent | 28a15e3df34258f4f6c1de319fa30a81356ee92c (diff) | |
download | go-ec10e6f364dddef88223eb9ddda1ee900b1551cb.tar.gz go-ec10e6f364dddef88223eb9ddda1ee900b1551cb.zip |
cmd/compile: fix missing lowering of atomic {Load,Store}8
CL 203284 added a compiler intrinsics from atomic Load8 and Store8 on
several architectures, but missed the lowering on MIPS. This CL fixes
that.
Updates #10958, #24543.
Change-Id: I82e88971554fe8c33ad2bf195a633c44b9ac4cf7
Reviewed-on: https://go-review.googlesource.com/c/go/+/203977
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/opGen.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/opGen.go | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index 5077e80a15..9f112c10f1 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -1537,8 +1537,10 @@ const ( OpMIPSCALLstatic OpMIPSCALLclosure OpMIPSCALLinter - OpMIPSLoweredAtomicLoad - OpMIPSLoweredAtomicStore + OpMIPSLoweredAtomicLoad8 + OpMIPSLoweredAtomicLoad32 + OpMIPSLoweredAtomicStore8 + OpMIPSLoweredAtomicStore32 OpMIPSLoweredAtomicStorezero OpMIPSLoweredAtomicExchange OpMIPSLoweredAtomicAdd @@ -20316,7 +20318,20 @@ var opcodeTable = [...]opInfo{ }, }, { - name: "LoweredAtomicLoad", + name: "LoweredAtomicLoad8", + argLen: 2, + faultOnNilArg0: 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 + }, + outputs: []outputInfo{ + {0, 335544318}, // 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 R31 + }, + }, + }, + { + name: "LoweredAtomicLoad32", argLen: 2, faultOnNilArg0: true, reg: regInfo{ @@ -20329,7 +20344,19 @@ var opcodeTable = [...]opInfo{ }, }, { - name: "LoweredAtomicStore", + name: "LoweredAtomicStore8", + 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 + {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 + }, + }, + }, + { + name: "LoweredAtomicStore32", argLen: 3, faultOnNilArg0: true, hasSideEffects: true, |