stage2,x64: fix registerAlias helper function

This commit is contained in:
Jakub Konka
2022-02-07 16:23:37 +01:00
parent bbd7969c87
commit ac36fe7114

View File

@@ -4692,11 +4692,17 @@ fn parseRegName(name: []const u8) ?Register {
fn registerAlias(reg: Register, size_bytes: u32) Register {
// For x86_64 we have to pick a smaller register alias depending on abi size.
switch (size_bytes) {
1 => return reg.to8(),
2 => return reg.to16(),
4 => return reg.to32(),
8 => return reg.to64(),
else => unreachable,
if (size_bytes == 0) {
unreachable; // should be comptime known
} else if (size_bytes <= 1) {
return reg.to8();
} else if (size_bytes <= 2) {
return reg.to16();
} else if (size_bytes <= 4) {
return reg.to32();
} else if (size_bytes <= 8) {
return reg.to64();
} else {
unreachable; // TODO handle floating-point registers
}
}