zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit afaec5c3e477a66695fdfca30bcc662fd1c73cd4 (tree)
parent edd72c75eb4164f5799d56128ce6e17668efb0e2
Author: Jakub Konka <kubkon@jakubkonka.com>
Date:   Tue, 13 Aug 2024 11:11:16 +0200

x86_64: fix generating lazy symbol refs

Diffstat:
Msrc/arch/x86_64/CodeGen.zig | 9+++------
1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig @@ -15304,7 +15304,7 @@ fn genLazySymbolRef( if (self.mod.pic) { switch (tag) { .lea, .call => try self.genSetReg(reg, Type.usize, .{ - .load_symbol = .{ .sym = sym_index }, + .lea_symbol = .{ .sym = sym_index }, }, .{}), .mov => try self.genSetReg(reg, Type.usize, .{ .load_symbol = .{ .sym = sym_index }, @@ -15322,14 +15322,11 @@ fn genLazySymbolRef( .sym_index = sym_index, }; switch (tag) { - .lea, .mov => try self.asmRegisterMemory(.{ ._, .mov }, reg.to64(), .{ - .base = .{ .reloc = reloc }, - .mod = .{ .rm = .{ .size = .qword } }, - }), - .call => try self.asmMemory(.{ ._, .call }, .{ + .lea, .mov => try self.asmRegisterMemory(.{ ._, tag }, reg.to64(), .{ .base = .{ .reloc = reloc }, .mod = .{ .rm = .{ .size = .qword } }, }), + .call => try self.asmImmediate(.{ ._, .call }, Immediate.rel(reloc)), else => unreachable, } }