aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/ssa/regalloc.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/ssa/regalloc.go b/src/cmd/compile/internal/ssa/regalloc.go
index dbcc93a7dd..c1cef741fa 100644
--- a/src/cmd/compile/internal/ssa/regalloc.go
+++ b/src/cmd/compile/internal/ssa/regalloc.go
@@ -1810,7 +1810,7 @@ func (s *regAllocState) regalloc(f *Func) {
if regspec.clobbersArg0 {
s.freeReg(register(s.f.getHome(args[0].ID).(*Register).num))
}
- if regspec.clobbersArg1 {
+ if regspec.clobbersArg1 && !(regspec.clobbersArg0 && s.f.getHome(args[0].ID) == s.f.getHome(args[1].ID)) {
s.freeReg(register(s.f.getHome(args[1].ID).(*Register).num))
}