| ... | @@ -13381,35 +13381,25 @@ fn genSetReg(self: *Self, dst_reg: Register, ty: Type, src_mcv: MCValue) InnerEr | ... | @@ -13381,35 +13381,25 @@ fn genSetReg(self: *Self, dst_reg: Register, ty: Type, src_mcv: MCValue) InnerEr |
| 13381 | }, | 13381 | }, |
| 13382 | .lea_direct, .lea_got => |sym_index| { | 13382 | .lea_direct, .lea_got => |sym_index| { |
| 13383 | const atom_index = try self.owner.getSymbolIndex(self); | 13383 | const atom_index = try self.owner.getSymbolIndex(self); |
| 13384 | if (self.bin_file.cast(link.File.Elf)) |_| { | 13384 | _ = try self.addInst(.{ |
| 13385 | try self.asmRegisterMemory(.{ ._, .lea }, dst_reg.to64(), .{ | 13385 | .tag = switch (src_mcv) { |
| 13386 | .base = .{ .reloc = .{ | 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 | .atom_index = atom_index, | 13398 | .atom_index = atom_index, |
| 13388 | .sym_index = sym_index, | 13399 | .sym_index = sym_index, |
| 13389 | } }, | 13400 | }), |
| 13390 | .mod = .{ .rm = .{ .size = .qword } }, | 13401 | } }, |
| 13391 | }); | 13402 | }); |
| 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 | } | | |
| 13413 | }, | 13403 | }, |
| 13414 | .lea_tlv => |sym_index| { | 13404 | .lea_tlv => |sym_index| { |
| 13415 | const atom_index = try self.owner.getSymbolIndex(self); | 13405 | const atom_index = try self.owner.getSymbolIndex(self); |