Remove dependency on hard-coded ordering of x86 register banks
With this change, register banks can now be re-ordered and other components (e.g. unwinding, regalloc) will no longer break. The previous behavior assumed that GPR registers always started at `RegUnit` 0.
This commit is contained in:
@@ -57,7 +57,13 @@ fn gen_regclass(isa: &TargetIsa, reg_class: &RegClass, fmt: &mut Formatter) {
|
||||
fmtln!(fmt, "first: {},", reg_bank.first_unit + reg_class.start);
|
||||
fmtln!(fmt, "subclasses: {:#x},", reg_class.subclass_mask());
|
||||
fmtln!(fmt, "mask: [{}],", mask);
|
||||
fmtln!(fmt, "pinned_reg: {:?},", reg_bank.pinned_reg);
|
||||
fmtln!(
|
||||
fmt,
|
||||
"pinned_reg: {:?},",
|
||||
reg_bank
|
||||
.pinned_reg
|
||||
.map(|index| index + reg_bank.first_unit as u16 + reg_class.start as u16)
|
||||
);
|
||||
fmtln!(fmt, "info: &INFO,");
|
||||
});
|
||||
fmtln!(fmt, "};");
|
||||
|
||||
Reference in New Issue
Block a user