diff options
| -rw-r--r-- | src/arch/x86_64/CodeGen.zig | 6 | ||||
| -rw-r--r-- | src/arch/x86_64/Emit.zig | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index ef599092de..9f5438a9fa 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -4091,11 +4091,11 @@ fn airCall(self: *Self, inst: Air.Inst.Index, modifier: std.builtin.CallModifier if (self.bin_file.cast(link.File.Elf)) |elf_file| { const atom_index = try elf_file.getOrCreateAtomForDecl(func.owner_decl); const atom = elf_file.getAtom(atom_index); - const got_addr = @intCast(u32, atom.getOffsetTableAddress(elf_file)); + const got_addr = @intCast(i32, atom.getOffsetTableAddress(elf_file)); _ = try self.addInst(.{ .tag = .call, .ops = Mir.Inst.Ops.encode(.{ .flags = 0b01 }), - .data = .{ .imm = got_addr }, + .data = .{ .disp = got_addr }, }); } else if (self.bin_file.cast(link.File.Coff)) |coff_file| { const atom_index = try coff_file.getOrCreateAtomForDecl(func.owner_decl); @@ -4142,7 +4142,7 @@ fn airCall(self: *Self, inst: Air.Inst.Index, modifier: std.builtin.CallModifier _ = try self.addInst(.{ .tag = .call, .ops = Mir.Inst.Ops.encode(.{ .flags = 0b01 }), - .data = .{ .imm = @intCast(u32, fn_got_addr) }, + .data = .{ .disp = @intCast(i32, fn_got_addr) }, }); } else unreachable; } else if (func_value.castTag(.extern_fn)) |func_payload| { diff --git a/src/arch/x86_64/Emit.zig b/src/arch/x86_64/Emit.zig index 5d52b87d87..8bc182d773 100644 --- a/src/arch/x86_64/Emit.zig +++ b/src/arch/x86_64/Emit.zig @@ -340,9 +340,9 @@ fn mirJmpCall(emit: *Emit, mnemonic: Instruction.Mnemonic, inst: Mir.Inst.Index) }, 0b01 => { if (ops.reg1 == .none) { - const imm = emit.mir.instructions.items(.data)[inst].imm; + const disp = emit.mir.instructions.items(.data)[inst].disp; return emit.encode(mnemonic, .{ - .op1 = .{ .imm = imm }, + .op1 = .{ .mem = Memory.sib(.qword, .{ .disp = disp }) }, }); } return emit.encode(mnemonic, .{ |
