aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2021-12-15 17:18:38 +0100
committerJakub Konka <kubkon@jakubkonka.com>2021-12-15 17:28:48 +0100
commit04784463772decb18d70734747d3fc89c043b979 (patch)
tree2552ad30128a68dac5386c501414c21cd4a11425 /src
parent510357355a3ca597daf13fadb6aa8f7df72ea26a (diff)
downloadzig-04784463772decb18d70734747d3fc89c043b979.tar.gz
zig-04784463772decb18d70734747d3fc89c043b979.zip
stage2: fix register size selection
This actually needs proper rework, and I'll get to that when refactoring MIR.
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86_64/CodeGen.zig9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig
index 2de37b05bc..378184f70a 100644
--- a/src/arch/x86_64/CodeGen.zig
+++ b/src/arch/x86_64/CodeGen.zig
@@ -1635,7 +1635,7 @@ fn genBinMathOpMir(
.tag = mir_tag,
.ops = (Mir.Ops{
.reg1 = registerAlias(dst_reg, @intCast(u32, abi_size)),
- .reg2 = .ebp,
+ .reg2 = registerAlias(.rbp, @intCast(u32, abi_size)),
.flags = 0b01,
}).encode(),
.data = .{ .imm = -@intCast(i32, adj_off) },
@@ -1666,7 +1666,7 @@ fn genBinMathOpMir(
.tag = mir_tag,
.ops = (Mir.Ops{
.reg1 = registerAlias(src_reg, @intCast(u32, abi_size)),
- .reg2 = .ebp,
+ .reg2 = registerAlias(.rbp, @intCast(u32, abi_size)),
.flags = 0b10,
}).encode(),
.data = .{ .imm = -@intCast(i32, adj_off) },
@@ -2835,12 +2835,11 @@ fn genSetStack(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) InnerErro
}
const abi_size = ty.abiSize(self.target.*);
const adj_off = stack_offset + abi_size;
- // TODO select instruction size
_ = try self.addInst(.{
.tag = .mov,
.ops = (Mir.Ops{
.reg1 = registerAlias(reg, @intCast(u32, abi_size)),
- .reg2 = .rbp,
+ .reg2 = registerAlias(.rbp, @intCast(u32, abi_size)),
.flags = 0b10,
}).encode(),
.data = .{ .imm = -@intCast(i32, adj_off) },
@@ -3061,7 +3060,7 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, mcv: MCValue) InnerError!void
.tag = .mov,
.ops = (Mir.Ops{
.reg1 = registerAlias(reg, @intCast(u32, abi_size)),
- .reg2 = .ebp,
+ .reg2 = registerAlias(.rbp, @intCast(u32, abi_size)),
.flags = 0b01,
}).encode(),
.data = .{ .imm = ioff },