| ... | ... | @@ -13381,35 +13381,25 @@ fn genSetReg(self: *Self, dst_reg: Register, ty: Type, src_mcv: MCValue) InnerEr |
| 13381 | 13381 | }, |
| 13382 | 13382 | .lea_direct, .lea_got => |sym_index| { |
| 13383 | 13383 | const atom_index = try self.owner.getSymbolIndex(self); |
| 13384 | | if (self.bin_file.cast(link.File.Elf)) |_| { |
| 13385 | | try self.asmRegisterMemory(.{ ._, .lea }, dst_reg.to64(), .{ |
| 13386 | | .base = .{ .reloc = .{ |
| 13384 | _ = try self.addInst(.{ |
| 13385 | .tag = switch (src_mcv) { |
| 13386 | .lea_direct => .lea, |
| 13387 | .lea_got => .mov, |
| 13388 | else => unreachable, |
| 13389 | }, |
| 13390 | .ops = switch (src_mcv) { |
| 13391 | .lea_direct => .direct_reloc, |
| 13392 | .lea_got => .got_reloc, |
| 13393 | else => unreachable, |
| 13394 | }, |
| 13395 | .data = .{ .rx = .{ |
| 13396 | .r1 = dst_reg.to64(), |
| 13397 | .payload = try self.addExtra(bits.Symbol{ |
| 13387 | 13398 | .atom_index = atom_index, |
| 13388 | 13399 | .sym_index = sym_index, |
| 13389 | | } }, |
| 13390 | | .mod = .{ .rm = .{ .size = .qword } }, |
| 13391 | | }); |
| 13392 | | } else { |
| 13393 | | _ = try self.addInst(.{ |
| 13394 | | .tag = switch (src_mcv) { |
| 13395 | | .lea_direct => .lea, |
| 13396 | | .lea_got => .mov, |
| 13397 | | else => unreachable, |
| 13398 | | }, |
| 13399 | | .ops = switch (src_mcv) { |
| 13400 | | .lea_direct => .direct_reloc, |
| 13401 | | .lea_got => .got_reloc, |
| 13402 | | else => unreachable, |
| 13403 | | }, |
| 13404 | | .data = .{ .rx = .{ |
| 13405 | | .r1 = dst_reg.to64(), |
| 13406 | | .payload = try self.addExtra(bits.Symbol{ |
| 13407 | | .atom_index = atom_index, |
| 13408 | | .sym_index = sym_index, |
| 13409 | | }), |
| 13410 | | } }, |
| 13411 | | }); |
| 13412 | | } |
| 13400 | }), |
| 13401 | } }, |
| 13402 | }); |
| 13413 | 13403 | }, |
| 13414 | 13404 | .lea_tlv => |sym_index| { |
| 13415 | 13405 | const atom_index = try self.owner.getSymbolIndex(self); |