Remove uses of reg_mod from s390x (#5073)
Remove uses of reg_mod from the s390x backend. This required moving away from using r0/r1 as the result registers from a few different pseudo instructions, standardizing instead on r2/r3. That change was necessary as regalloc2 will not correctly allocate registers that aren't listed in the allocatable set, which r0/r1 are not. Co-authored-by: Ulrich Weigand <ulrich.weigand@de.ibm.com> Co-authored-by: Chris Fallin <chris@cfallin.org>
This commit is contained in:
@@ -391,18 +391,6 @@ impl<'a, F: Fn(VReg) -> VReg> OperandCollector<'a, F> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Add a register use+def, or "modify", where the reg must stay
|
||||
/// in the same register on the input and output side of the
|
||||
/// instruction.
|
||||
pub fn reg_mod(&mut self, reg: Writable<Reg>) {
|
||||
self.add_operand(Operand::new(
|
||||
reg.to_reg().into(),
|
||||
regalloc2::OperandConstraint::Reg,
|
||||
regalloc2::OperandKind::Mod,
|
||||
regalloc2::OperandPos::Early,
|
||||
));
|
||||
}
|
||||
|
||||
/// Add a register clobber set. This is a set of registers that
|
||||
/// are written by the instruction, so must be reserved (not used)
|
||||
/// for the whole instruction, but are not used afterward.
|
||||
|
||||
Reference in New Issue
Block a user