authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-11-18 19:46:56+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-11-18 19:46:56+01:00
log7747bf07c73a174dbd8c976dca8a94114c49349d
tree334da8cf215f3af6292159e62024d1192b65153e
parent00966b7258bdf56fe2cc653b30b4d4352d8fe14f

stage2: use correct register alias for mem operands

When loading/storing on the stack, use `registerAlias` to correctly workout the size of the register and thus correctly select target instruction.

1 files changed, 4 insertions(+), 4 deletions(-)

src/arch/x86_64/CodeGen.zig+4-4
......@@ -1545,7 +1545,7 @@ fn genBinMathOpMir(
15451545 _ = try self.addInst(.{
15461546 .tag = mir_tag,
15471547 .ops = (Mir.Ops{
1548 .reg1 = dst_reg,
1548 .reg1 = registerAlias(dst_reg, @intCast(u32, abi_size)),
15491549 .reg2 = .ebp,
15501550 .flags = 0b01,
15511551 }).encode(),
......@@ -1576,7 +1576,7 @@ fn genBinMathOpMir(
15761576 _ = try self.addInst(.{
15771577 .tag = mir_tag,
15781578 .ops = (Mir.Ops{
1579 .reg1 = src_reg,
1579 .reg1 = registerAlias(src_reg, @intCast(u32, abi_size)),
15801580 .reg2 = .ebp,
15811581 .flags = 0b10,
15821582 }).encode(),
......@@ -2749,7 +2749,7 @@ fn genSetStack(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) InnerErro
27492749 _ = try self.addInst(.{
27502750 .tag = .mov,
27512751 .ops = (Mir.Ops{
2752 .reg1 = reg,
2752 .reg1 = registerAlias(reg, @intCast(u32, abi_size)),
27532753 .reg2 = .ebp,
27542754 .flags = 0b10,
27552755 }).encode(),
......@@ -2970,7 +2970,7 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, mcv: MCValue) InnerError!void
29702970 _ = try self.addInst(.{
29712971 .tag = .mov,
29722972 .ops = (Mir.Ops{
2973 .reg1 = reg,
2973 .reg1 = registerAlias(reg, @intCast(u32, abi_size)),
29742974 .reg2 = .ebp,
29752975 .flags = 0b01,
29762976 }).encode(),