diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/MachO/ZldAtom.zig | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/link/MachO/ZldAtom.zig b/src/link/MachO/ZldAtom.zig index 44cc609b9a..ea173b73ad 100644 --- a/src/link/MachO/ZldAtom.zig +++ b/src/link/MachO/ZldAtom.zig @@ -843,8 +843,10 @@ fn resolveRelocsX86( log.debug(" | target_addr = 0x{x}", .{adjusted_target_addr}); const disp = try calcPcRelativeDisplacementX86(source_addr, adjusted_target_addr, 0); - // We need to rewrite the opcode from movq to leaq. - atom_code[rel_offset - 2] = 0x8d; + if (zld.tlv_ptr_table.get(target) == null) { + // We need to rewrite the opcode from movq to leaq. + atom_code[rel_offset - 2] = 0x8d; + } mem.writeIntLittle(i32, atom_code[rel_offset..][0..4], disp); }, |
