Skip to content

Commit f8ba6aa

Browse files
cherrymuipull[bot]
authored andcommitted
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 <[email protected]> Reviewed-by: Jenny Rakoczy <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Eric Fang <[email protected]>
1 parent fcd8fd9 commit f8ba6aa

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

src/cmd/compile/internal/ssa/gen/ARM64Ops.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ func init() {
593593
name: "LoweredMove",
594594
argLength: 4,
595595
reg: regInfo{
596-
inputs: []regMask{buildReg("R17"), buildReg("R16"), gp},
596+
inputs: []regMask{buildReg("R17"), buildReg("R16"), gp &^ buildReg("R25")},
597597
clobbers: buildReg("R16 R17 R25"),
598598
},
599599
clobberFlags: true,

src/cmd/compile/internal/ssa/opGen.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)