authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-08-13 11:11:16+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-08-13 13:30:24+02:00
logafaec5c3e477a66695fdfca30bcc662fd1c73cd4
tree67b0a57a557a9cbb502ab372917bc1fd83b8dbb7
parentedd72c75eb4164f5799d56128ce6e17668efb0e2

x86_64: fix generating lazy symbol refs


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

src/arch/x86_64/CodeGen.zig+3-6
......@@ -15304,7 +15304,7 @@ fn genLazySymbolRef(
1530415304 if (self.mod.pic) {
1530515305 switch (tag) {
1530615306 .lea, .call => try self.genSetReg(reg, Type.usize, .{
15307 .load_symbol = .{ .sym = sym_index },
15307 .lea_symbol = .{ .sym = sym_index },
1530815308 }, .{}),
1530915309 .mov => try self.genSetReg(reg, Type.usize, .{
1531015310 .load_symbol = .{ .sym = sym_index },
......@@ -15322,14 +15322,11 @@ fn genLazySymbolRef(
1532215322 .sym_index = sym_index,
1532315323 };
1532415324 switch (tag) {
15325 .lea, .mov => try self.asmRegisterMemory(.{ ._, .mov }, reg.to64(), .{
15326 .base = .{ .reloc = reloc },
15327 .mod = .{ .rm = .{ .size = .qword } },
15328 }),
15329 .call => try self.asmMemory(.{ ._, .call }, .{
15325 .lea, .mov => try self.asmRegisterMemory(.{ ._, tag }, reg.to64(), .{
1533015326 .base = .{ .reloc = reloc },
1533115327 .mod = .{ .rm = .{ .size = .qword } },
1533215328 }),
15329 .call => try self.asmImmediate(.{ ._, .call }, Immediate.rel(reloc)),
1533315330 else => unreachable,
1533415331 }
1533515332 }