mirror of
https://github.com/golang/go
synced 2024-11-23 20:00:04 -07:00
cmd/compile: don't use R25 as input for LoweredMove on ARM64
The rule uses R25 as a scratch register. If the input is R25 it will be clobbered on the way, causing wrong result. Change-Id: I464eadbdef0f3a5e90f9ef8c818393baa4335b87 Reviewed-on: https://go-review.googlesource.com/c/go/+/430015 Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Jenny Rakoczy <jenny@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Eric Fang <eric.fang@arm.com>
This commit is contained in:
parent
f78efc0178
commit
a813be86df
@ -593,7 +593,7 @@ func init() {
|
||||
name: "LoweredMove",
|
||||
argLength: 4,
|
||||
reg: regInfo{
|
||||
inputs: []regMask{buildReg("R17"), buildReg("R16"), gp},
|
||||
inputs: []regMask{buildReg("R17"), buildReg("R16"), gp &^ buildReg("R25")},
|
||||
clobbers: buildReg("R16 R17 R25"),
|
||||
},
|
||||
clobberFlags: true,
|
||||
|
@ -22309,7 +22309,7 @@ var opcodeTable = [...]opInfo{
|
||||
inputs: []inputInfo{
|
||||
{0, 131072}, // R17
|
||||
{1, 65536}, // R16
|
||||
{2, 670826495}, // 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 R30
|
||||
{2, 637272063}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R26 R30
|
||||
},
|
||||
clobbers: 33751040, // R16 R17 R25
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user