Always call reassign_in for register ABI arguments.
Even if an argument is already in the correct register, make sure that we detect conflicts by registering the no-op move. This also means that the ABI argument register won't be turned into a variable for the solver.
This commit is contained in:
@@ -364,13 +364,15 @@ impl Solver {
|
||||
}
|
||||
self.regs_in.free(rc, from);
|
||||
self.regs_out.take(rc, to);
|
||||
self.assignments
|
||||
.insert(Assignment {
|
||||
value,
|
||||
rc,
|
||||
from,
|
||||
to,
|
||||
});
|
||||
if from != to {
|
||||
self.assignments
|
||||
.insert(Assignment {
|
||||
value,
|
||||
rc,
|
||||
from,
|
||||
to,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// Add a variable representing an input side value with an existing register assignment.
|
||||
|
||||
Reference in New Issue
Block a user