aarch64: fix up regalloc2 semantics. (#4830)
This PR removes all uses of modify-operands in the aarch64 backend, replacing them with reused-input operands instead. This has the nice effect of removing a bunch of move instructions and more clearly representing inputs and outputs. This PR also removes the explicit use of pinned vregs in the aarch64 backend, instead using fixed-register constraints on the operands when insts or pseudo-inst sequences require certain registers. This is the second PR in the regalloc-semantics cleanup series; after the remaining backend (s390x) and the ABI code are cleaned up as well, we'll be able to simplify the regalloc2 frontend.
This commit is contained in:
@@ -50,6 +50,7 @@ pub(crate) const fn vreg_preg(num: u8) -> PReg {
|
||||
}
|
||||
|
||||
/// Get a writable reference to a V-register.
|
||||
#[cfg(test)] // Used only in test code.
|
||||
pub fn writable_vreg(num: u8) -> Writable<Reg> {
|
||||
Writable::from_reg(vreg(num))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user