authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-11-12 11:08:27+01:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-11-12 18:12:41-05:00
log412519dd49ec2a42d0feb9842545dadaf1c6b68d
treea5ede12126d54f34be56861c51de60bb0def2317
parent0dab319e86f0918331be2e49dde22e9eaf93a46b

x86_64: seems like we will need to keep track of rax and reserve rax+rdi for TLS


1 files changed, 5 insertions(+), 5 deletions(-)

src/arch/x86_64/Lower.zig+5-5
......@@ -364,14 +364,14 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand)
364364 _ = lower.reloc(.{ .linker_tlsld = sym });
365365 lower.result_insts[lower.result_insts_len] =
366366 try Instruction.new(.none, .lea, &[_]Operand{
367 .{ .reg = ops[0].reg.to64() },
367 .{ .reg = .rdi },
368368 .{ .mem = Memory.rip(mem_op.sib.ptr_size, 0) },
369369 });
370370 lower.result_insts_len += 1;
371371 if (lower.bin_file.cast(link.File.Elf)) |elf_file| {
372372 _ = lower.reloc(.{ .linker_extern_fn = .{
373373 .atom_index = sym.atom_index,
374 .sym_index = try elf_file.getGlobalSymbol("__tls_get_address", null),
374 .sym_index = try elf_file.getGlobalSymbol("__tls_get_addr", null),
375375 } });
376376 }
377377 lower.result_insts[lower.result_insts_len] =
......@@ -386,8 +386,8 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand)
386386 }
387387 emit_mnemonic = .lea;
388388 break :op .{ .mem = Memory.sib(mem_op.sib.ptr_size, .{
389 .base = .{ .reg = ops[0].reg.to64() },
390 .disp = undefined,
389 .base = .{ .reg = .rax },
390 .disp = std.math.minInt(i32),
391391 }) };
392392 } else {
393393 // Since we are linking statically, we emit LE model directly.
......@@ -405,7 +405,7 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand)
405405 emit_mnemonic = .lea;
406406 break :op .{ .mem = Memory.sib(mem_op.sib.ptr_size, .{
407407 .base = .{ .reg = ops[0].reg.to64() },
408 .disp = undefined,
408 .disp = std.math.minInt(i32),
409409 }) };
410410 }
411411 }