diff options
Diffstat (limited to 'src/cmd/compile/internal/ssa/regalloc.go')
| -rw-r--r-- | src/cmd/compile/internal/ssa/regalloc.go | 2 |
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 f1e210fe9b..405d018a41 100644 --- a/src/cmd/compile/internal/ssa/regalloc.go +++ b/src/cmd/compile/internal/ssa/regalloc.go @@ -2433,7 +2433,7 @@ func (e *edgeState) processDest(loc Location, vid ID, splice **Value, pos src.XP } // Check if we're allowed to clobber the destination location. - if len(e.cache[occupant.vid]) == 1 && !e.s.values[occupant.vid].rematerializeable { + if len(e.cache[occupant.vid]) == 1 && !e.s.values[occupant.vid].rematerializeable && !opcodeTable[e.s.orig[occupant.vid].Op].fixedReg { // We can't overwrite the last copy // of a value that needs to survive. return false |
