authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-02-07 16:23:37+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-02-07 20:13:29+01:00
logac36fe71147a78e5f9299428eee776efcc9e4afb
treee0f37c25786d30541c69709f427ee7799bf617ff
parentbbd7969c87e03c9312eeafd9940ef8287a3ad689

stage2,x64: fix registerAlias helper function


1 files changed, 12 insertions(+), 6 deletions(-)

src/arch/x86_64/CodeGen.zig+12-6
......@@ -4692,11 +4692,17 @@ fn parseRegName(name: []const u8) ?Register {
46924692
46934693fn registerAlias(reg: Register, size_bytes: u32) Register {
46944694 // For x86_64 we have to pick a smaller register alias depending on abi size.
4695 switch (size_bytes) {
4696 1 => return reg.to8(),
4697 2 => return reg.to16(),
4698 4 => return reg.to32(),
4699 8 => return reg.to64(),
4700 else => unreachable,
4695 if (size_bytes == 0) {
4696 unreachable; // should be comptime known
4697 } else if (size_bytes <= 1) {
4698 return reg.to8();
4699 } else if (size_bytes <= 2) {
4700 return reg.to16();
4701 } else if (size_bytes <= 4) {
4702 return reg.to32();
4703 } else if (size_bytes <= 8) {
4704 return reg.to64();
4705 } else {
4706 unreachable; // TODO handle floating-point registers
47014707 }
47024708}