authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-10-26 22:57:14+02:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-10-28 03:48:18-04:00
log9a1fbb27059ec59b2e6f61c713b9c3120125a3da
tree335bf20f63110daa54af9c0e552a548959c896d7
parenta6a10d9c2b096e1c5cb7bf29273d64e7285b5f94

x86_64: rename load/lea_memory to load/lea_symbol


6 files changed, 83 insertions(+), 83 deletions(-)

src/arch/aarch64/CodeGen.zig+1-1
......@@ -6176,7 +6176,7 @@ fn genTypedValue(self: *Self, arg_tv: TypedValue) InnerError!MCValue {
61766176 .memory => |addr| .{ .memory = addr },
61776177 .load_got => |sym_index| .{ .linker_load = .{ .type = .got, .sym_index = sym_index } },
61786178 .load_direct => |sym_index| .{ .linker_load = .{ .type = .direct, .sym_index = sym_index } },
6179 .load_memory, .lea_memory, .load_tlv => unreachable, // TODO
6179 .load_symbol, .lea_symbol, .load_tlv => unreachable, // TODO
61806180 },
61816181 .fail => |msg| {
61826182 self.err_msg = msg;
src/arch/arm/CodeGen.zig+1-1
......@@ -6135,7 +6135,7 @@ fn genTypedValue(self: *Self, arg_tv: TypedValue) InnerError!MCValue {
61356135 .mcv => |mcv| switch (mcv) {
61366136 .none => .none,
61376137 .undef => .undef,
6138 .load_got, .load_memory, .lea_memory, .load_direct, .load_tlv => unreachable, // TODO
6138 .load_got, .load_symbol, .lea_symbol, .load_direct, .load_tlv => unreachable, // TODO
61396139 .immediate => |imm| .{ .immediate = @as(u32, @truncate(imm)) },
61406140 .memory => |addr| .{ .memory = addr },
61416141 },
src/arch/riscv64/CodeGen.zig+1-1
......@@ -2591,7 +2591,7 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue {
25912591 .mcv => |mcv| switch (mcv) {
25922592 .none => .none,
25932593 .undef => .undef,
2594 .load_got, .load_memory, .lea_memory, .load_direct, .load_tlv => unreachable, // TODO
2594 .load_got, .load_symbol, .lea_symbol, .load_direct, .load_tlv => unreachable, // TODO
25952595 .immediate => |imm| .{ .immediate = imm },
25962596 .memory => |addr| .{ .memory = addr },
25972597 },
src/arch/sparc64/CodeGen.zig+1-1
......@@ -4137,7 +4137,7 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue {
41374137 .mcv => |mcv| switch (mcv) {
41384138 .none => .none,
41394139 .undef => .undef,
4140 .load_got, .load_memory, .lea_memory, .load_direct, .load_tlv => unreachable, // TODO
4140 .load_got, .load_symbol, .lea_symbol, .load_direct, .load_tlv => unreachable, // TODO
41414141 .immediate => |imm| .{ .immediate = imm },
41424142 .memory => |addr| .{ .memory = addr },
41434143 },
src/arch/x86_64/CodeGen.zig+74-74
......@@ -195,9 +195,9 @@ pub const MCValue = union(enum) {
195195 memory: u64,
196196 /// The value is in memory at an address not-yet-allocated by the linker.
197197 /// This traditionally corresponds to a relocation emitted in a relocatable object file.
198 load_memory: u32,
198 load_symbol: u32,
199199 /// The address of the memory location not-yet-allocated by the linker.
200 lea_memory: u32,
200 lea_symbol: u32,
201201 /// The value is in memory at a constant offset from the address in a register.
202202 indirect: RegisterOffset,
203203 /// The value is in memory.
......@@ -298,7 +298,7 @@ pub const MCValue = union(enum) {
298298 .register_pair,
299299 .register_offset,
300300 .register_overflow,
301 .lea_memory,
301 .lea_symbol,
302302 .lea_direct,
303303 .lea_got,
304304 .lea_tlv,
......@@ -315,7 +315,7 @@ pub const MCValue = union(enum) {
315315 .load_got => |sym_index| .{ .lea_got = sym_index },
316316 .load_tlv => |sym_index| .{ .lea_tlv = sym_index },
317317 .load_frame => |frame_addr| .{ .lea_frame = frame_addr },
318 .load_memory => |sym_index| .{ .lea_memory = sym_index },
318 .load_symbol => |sym_index| .{ .lea_symbol = sym_index },
319319 };
320320 }
321321
......@@ -334,7 +334,7 @@ pub const MCValue = union(enum) {
334334 .load_got,
335335 .load_tlv,
336336 .load_frame,
337 .load_memory,
337 .load_symbol,
338338 .reserved_frame,
339339 .air_ref,
340340 => unreachable, // not dereferenceable
......@@ -345,7 +345,7 @@ pub const MCValue = union(enum) {
345345 .lea_got => |sym_index| .{ .load_got = sym_index },
346346 .lea_tlv => |sym_index| .{ .load_tlv = sym_index },
347347 .lea_frame => |frame_addr| .{ .load_frame = frame_addr },
348 .lea_memory => |sym_index| .{ .load_memory = sym_index },
348 .lea_symbol => |sym_index| .{ .load_symbol = sym_index },
349349 };
350350 }
351351
......@@ -370,8 +370,8 @@ pub const MCValue = union(enum) {
370370 .load_tlv,
371371 .lea_tlv,
372372 .load_frame,
373 .load_memory,
374 .lea_memory,
373 .load_symbol,
374 .lea_symbol,
375375 => switch (off) {
376376 0 => mcv,
377377 else => unreachable, // not offsettable
......@@ -408,8 +408,8 @@ pub const MCValue = union(enum) {
408408 .lea_frame,
409409 .reserved_frame,
410410 .air_ref,
411 .load_memory,
412 .lea_memory,
411 .load_symbol,
412 .lea_symbol,
413413 => unreachable,
414414 .memory => |addr| if (math.cast(i32, @as(i64, @bitCast(addr)))) |small_addr|
415415 Memory.sib(ptr_size, .{ .base = .{ .reg = .ds }, .disp = small_addr })
......@@ -453,8 +453,8 @@ pub const MCValue = union(enum) {
453453 .lea_frame => |pl| try writer.print("{} + 0x{x}", .{ pl.index, pl.off }),
454454 .reserved_frame => |pl| try writer.print("(dead:{})", .{pl}),
455455 .air_ref => |pl| try writer.print("(air:0x{x})", .{@intFromEnum(pl)}),
456 .load_memory => |pl| try writer.print("[mem:{d}]", .{pl}),
457 .lea_memory => |pl| try writer.print("mem:{d}", .{pl}),
456 .load_symbol => |pl| try writer.print("[mem:{d}]", .{pl}),
457 .lea_symbol => |pl| try writer.print("mem:{d}", .{pl}),
458458 }
459459 }
460460};
......@@ -480,8 +480,8 @@ const InstTracking = struct {
480480 .lea_tlv,
481481 .load_frame,
482482 .lea_frame,
483 .load_memory,
484 .lea_memory,
483 .load_symbol,
484 .lea_symbol,
485485 => result,
486486 .dead,
487487 .reserved_frame,
......@@ -541,8 +541,8 @@ const InstTracking = struct {
541541 .lea_tlv,
542542 .load_frame,
543543 .lea_frame,
544 .load_memory,
545 .lea_memory,
544 .load_symbol,
545 .lea_symbol,
546546 => self.long,
547547 .dead,
548548 .eflags,
......@@ -577,8 +577,8 @@ const InstTracking = struct {
577577 .load_tlv,
578578 .lea_tlv,
579579 .lea_frame,
580 .load_memory,
581 .lea_memory,
580 .load_symbol,
581 .lea_symbol,
582582 => assert(std.meta.eql(self.long, target.long)),
583583 .load_frame,
584584 .reserved_frame,
......@@ -4731,12 +4731,12 @@ fn airArrayElemVal(self: *Self, inst: Air.Inst.Index) !void {
47314731 Memory.sib(.qword, .{ .base = .{ .frame = frame_addr.index }, .disp = frame_addr.off }),
47324732 ),
47334733 .memory,
4734 .load_memory,
4734 .load_symbol,
47354735 .load_direct,
47364736 .load_got,
47374737 .load_tlv,
47384738 => try self.genSetReg(addr_reg, Type.usize, array.address()),
4739 .lea_memory, .lea_direct, .lea_tlv => unreachable,
4739 .lea_symbol, .lea_direct, .lea_tlv => unreachable,
47404740 else => return self.fail("TODO implement array_elem_val when array is {}", .{array}),
47414741 }
47424742
......@@ -6329,7 +6329,7 @@ fn load(self: *Self, dst_mcv: MCValue, ptr_ty: Type, ptr_mcv: MCValue) InnerErro
63296329 .immediate,
63306330 .register,
63316331 .register_offset,
6332 .lea_memory,
6332 .lea_symbol,
63336333 .lea_direct,
63346334 .lea_got,
63356335 .lea_tlv,
......@@ -6337,7 +6337,7 @@ fn load(self: *Self, dst_mcv: MCValue, ptr_ty: Type, ptr_mcv: MCValue) InnerErro
63376337 => try self.genCopy(dst_ty, dst_mcv, ptr_mcv.deref()),
63386338 .memory,
63396339 .indirect,
6340 .load_memory,
6340 .load_symbol,
63416341 .load_direct,
63426342 .load_got,
63436343 .load_tlv,
......@@ -6478,7 +6478,7 @@ fn store(self: *Self, ptr_ty: Type, ptr_mcv: MCValue, src_mcv: MCValue) InnerErr
64786478 .immediate,
64796479 .register,
64806480 .register_offset,
6481 .lea_memory,
6481 .lea_symbol,
64826482 .lea_direct,
64836483 .lea_got,
64846484 .lea_tlv,
......@@ -6486,7 +6486,7 @@ fn store(self: *Self, ptr_ty: Type, ptr_mcv: MCValue, src_mcv: MCValue) InnerErr
64866486 => try self.genCopy(src_ty, ptr_mcv.deref(), src_mcv),
64876487 .memory,
64886488 .indirect,
6489 .load_memory,
6489 .load_symbol,
64906490 .load_direct,
64916491 .load_got,
64926492 .load_tlv,
......@@ -6919,11 +6919,11 @@ fn genUnOpMir(self: *Self, mir_tag: Mir.Inst.FixedTag, dst_ty: Type, dst_mcv: MC
69196919 .lea_frame,
69206920 .reserved_frame,
69216921 .air_ref,
6922 .lea_memory,
6922 .lea_symbol,
69236923 => unreachable, // unmodifiable destination
69246924 .register => |dst_reg| try self.asmRegister(mir_tag, registerAlias(dst_reg, abi_size)),
69256925 .register_pair => unreachable, // unimplemented
6926 .memory, .load_memory, .load_got, .load_direct, .load_tlv => {
6926 .memory, .load_symbol, .load_got, .load_direct, .load_tlv => {
69276927 const addr_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp);
69286928 const addr_reg_lock = self.register_manager.lockRegAssumeUnused(addr_reg);
69296929 defer self.register_manager.unlockReg(addr_reg_lock);
......@@ -7975,8 +7975,8 @@ fn genBinOp(
79757975 .immediate,
79767976 .eflags,
79777977 .register_offset,
7978 .load_memory,
7979 .lea_memory,
7978 .load_symbol,
7979 .lea_symbol,
79807980 .load_direct,
79817981 .lea_direct,
79827982 .load_got,
......@@ -8033,8 +8033,8 @@ fn genBinOp(
80338033 .register_pair,
80348034 .register_offset,
80358035 .register_overflow,
8036 .load_memory,
8037 .lea_memory,
8036 .load_symbol,
8037 .lea_symbol,
80388038 .load_direct,
80398039 .lea_direct,
80408040 .load_got,
......@@ -9168,7 +9168,7 @@ fn genBinOpMir(
91689168 .lea_got,
91699169 .lea_tlv,
91709170 .lea_frame,
9171 .lea_memory,
9171 .lea_symbol,
91729172 .reserved_frame,
91739173 .air_ref,
91749174 => unreachable, // unmodifiable destination
......@@ -9251,8 +9251,8 @@ fn genBinOpMir(
92519251 .register_offset,
92529252 .memory,
92539253 .indirect,
9254 .load_memory,
9255 .lea_memory,
9254 .load_symbol,
9255 .lea_symbol,
92569256 .load_direct,
92579257 .lea_direct,
92589258 .load_got,
......@@ -9287,7 +9287,7 @@ fn genBinOpMir(
92879287 switch (src_mcv) {
92889288 .eflags,
92899289 .register_offset,
9290 .lea_memory,
9290 .lea_symbol,
92919291 .lea_direct,
92929292 .lea_got,
92939293 .lea_tlv,
......@@ -9303,7 +9303,7 @@ fn genBinOpMir(
93039303 );
93049304 },
93059305 .memory,
9306 .load_memory,
9306 .load_symbol,
93079307 .load_direct,
93089308 .load_got,
93099309 .load_tlv,
......@@ -9326,13 +9326,13 @@ fn genBinOpMir(
93269326 }
93279327 }
93289328 },
9329 .memory, .indirect, .load_memory, .load_got, .load_direct, .load_tlv, .load_frame => {
9329 .memory, .indirect, .load_symbol, .load_got, .load_direct, .load_tlv, .load_frame => {
93309330 const OpInfo = ?struct { addr_reg: Register, addr_lock: RegisterLock };
93319331 const limb_abi_size: u32 = @min(abi_size, 8);
93329332
93339333 const dst_info: OpInfo = switch (dst_mcv) {
93349334 else => unreachable,
9335 .memory, .load_memory, .load_got, .load_direct, .load_tlv => dst: {
9335 .memory, .load_symbol, .load_got, .load_direct, .load_tlv => dst: {
93369336 const dst_addr_reg =
93379337 (try self.register_manager.allocReg(null, abi.RegisterClass.gp)).to64();
93389338 const dst_addr_lock = self.register_manager.lockRegAssumeUnused(dst_addr_reg);
......@@ -9369,14 +9369,14 @@ fn genBinOpMir(
93699369 .lea_tlv,
93709370 .load_frame,
93719371 .lea_frame,
9372 .lea_memory,
9372 .lea_symbol,
93739373 => null,
9374 .memory, .load_memory, .load_got, .load_direct, .load_tlv => src: {
9374 .memory, .load_symbol, .load_got, .load_direct, .load_tlv => src: {
93759375 switch (resolved_src_mcv) {
93769376 .memory => |addr| if (math.cast(i32, @as(i64, @bitCast(addr))) != null and
93779377 math.cast(i32, @as(i64, @bitCast(addr)) + abi_size - limb_abi_size) != null)
93789378 break :src null,
9379 .load_memory, .load_got, .load_direct, .load_tlv => {},
9379 .load_symbol, .load_got, .load_direct, .load_tlv => {},
93809380 else => unreachable,
93819381 }
93829382
......@@ -9418,7 +9418,7 @@ fn genBinOpMir(
94189418 Memory.PtrSize.fromSize(limb_abi_size),
94199419 switch (dst_mcv) {
94209420 .memory,
9421 .load_memory,
9421 .load_symbol,
94229422 .load_got,
94239423 .load_direct,
94249424 .load_tlv,
......@@ -9500,8 +9500,8 @@ fn genBinOpMir(
95009500 .eflags,
95019501 .memory,
95029502 .indirect,
9503 .load_memory,
9504 .lea_memory,
9503 .load_symbol,
9504 .lea_symbol,
95059505 .load_direct,
95069506 .lea_direct,
95079507 .load_got,
......@@ -9519,7 +9519,7 @@ fn genBinOpMir(
95199519 },
95209520 .eflags,
95219521 .register_offset,
9522 .lea_memory,
9522 .lea_symbol,
95239523 .lea_direct,
95249524 .lea_got,
95259525 .lea_tlv,
......@@ -9570,7 +9570,7 @@ fn genIntMulComplexOpMir(self: *Self, dst_ty: Type, dst_mcv: MCValue, src_mcv: M
95709570 .eflags,
95719571 .register_offset,
95729572 .register_overflow,
9573 .lea_memory,
9573 .lea_symbol,
95749574 .lea_direct,
95759575 .lea_got,
95769576 .lea_tlv,
......@@ -9617,8 +9617,8 @@ fn genIntMulComplexOpMir(self: *Self, dst_ty: Type, dst_mcv: MCValue, src_mcv: M
96179617 },
96189618 .register_offset,
96199619 .eflags,
9620 .load_memory,
9621 .lea_memory,
9620 .load_symbol,
9621 .lea_symbol,
96229622 .load_direct,
96239623 .lea_direct,
96249624 .load_got,
......@@ -9661,7 +9661,7 @@ fn genIntMulComplexOpMir(self: *Self, dst_ty: Type, dst_mcv: MCValue, src_mcv: M
96619661 }
96629662 },
96639663 .register_pair => unreachable, // unimplemented
9664 .memory, .indirect, .load_memory, .load_direct, .load_got, .load_tlv, .load_frame => {
9664 .memory, .indirect, .load_symbol, .load_direct, .load_got, .load_tlv, .load_frame => {
96659665 const tmp_reg = try self.copyToTmpRegister(dst_ty, dst_mcv);
96669666 const tmp_mcv = MCValue{ .register = tmp_reg };
96679667 const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg);
......@@ -9761,7 +9761,7 @@ fn genVarDbgInfo(
97619761 // .offset = -off,
97629762 //} },
97639763 .memory => |address| .{ .memory = address },
9764 .load_memory => |sym_index| .{ .linker_load = .{ .type = .direct, .sym_index = sym_index } }, // TODO
9764 .load_symbol => |sym_index| .{ .linker_load = .{ .type = .direct, .sym_index = sym_index } }, // TODO
97659765 .load_got => |sym_index| .{ .linker_load = .{ .type = .got, .sym_index = sym_index } },
97669766 .load_direct => |sym_index| .{ .linker_load = .{ .type = .direct, .sym_index = sym_index } },
97679767 .immediate => |x| .{ .immediate = x },
......@@ -10013,7 +10013,7 @@ fn genCall(self: *Self, info: union(enum) {
1001310013 const sym = elf_file.symbol(sym_index);
1001410014 _ = try sym.getOrCreateZigGotEntry(sym_index, elf_file);
1001510015 if (self.bin_file.options.pic) {
10016 try self.genSetReg(.rax, Type.usize, .{ .lea_memory = sym.esym_index });
10016 try self.genSetReg(.rax, Type.usize, .{ .lea_symbol = sym.esym_index });
1001710017 try self.asmRegister(.{ ._, .call }, .rax);
1001810018 } else {
1001910019 _ = try self.addInst(.{
......@@ -10245,12 +10245,12 @@ fn airCmp(self: *Self, inst: Air.Inst.Index, op: math.CompareOperator) !void {
1024510245 .lea_got,
1024610246 .lea_tlv,
1024710247 .lea_frame,
10248 .lea_memory,
10248 .lea_symbol,
1024910249 .reserved_frame,
1025010250 .air_ref,
1025110251 => unreachable,
1025210252 .register_pair, .load_frame => null,
10253 .memory, .load_memory, .load_got, .load_direct, .load_tlv => dst: {
10253 .memory, .load_symbol, .load_got, .load_direct, .load_tlv => dst: {
1025410254 switch (resolved_dst_mcv) {
1025510255 .memory => |addr| if (math.cast(
1025610256 i32,
......@@ -10259,7 +10259,7 @@ fn airCmp(self: *Self, inst: Air.Inst.Index, op: math.CompareOperator) !void {
1025910259 i32,
1026010260 @as(i64, @bitCast(addr)) + abi_size - 8,
1026110261 ) != null) break :dst null,
10262 .load_memory, .load_got, .load_direct, .load_tlv => {},
10262 .load_symbol, .load_got, .load_direct, .load_tlv => {},
1026310263 else => unreachable,
1026410264 }
1026510265
......@@ -10300,7 +10300,7 @@ fn airCmp(self: *Self, inst: Air.Inst.Index, op: math.CompareOperator) !void {
1030010300 .register_offset,
1030110301 .register_overflow,
1030210302 .indirect,
10303 .lea_memory,
10303 .lea_symbol,
1030410304 .lea_direct,
1030510305 .lea_got,
1030610306 .lea_tlv,
......@@ -10309,7 +10309,7 @@ fn airCmp(self: *Self, inst: Air.Inst.Index, op: math.CompareOperator) !void {
1030910309 .air_ref,
1031010310 => unreachable,
1031110311 .register_pair, .load_frame => null,
10312 .memory, .load_memory, .load_got, .load_direct, .load_tlv => src: {
10312 .memory, .load_symbol, .load_got, .load_direct, .load_tlv => src: {
1031310313 switch (resolved_src_mcv) {
1031410314 .memory => |addr| if (math.cast(
1031510315 i32,
......@@ -10318,7 +10318,7 @@ fn airCmp(self: *Self, inst: Air.Inst.Index, op: math.CompareOperator) !void {
1031810318 i32,
1031910319 @as(i64, @bitCast(addr)) + abi_size - 8,
1032010320 ) != null) break :src null,
10321 .load_memory, .load_got, .load_direct, .load_tlv => {},
10321 .load_symbol, .load_got, .load_direct, .load_tlv => {},
1032210322 else => unreachable,
1032310323 }
1032410324
......@@ -10743,7 +10743,7 @@ fn isNull(self: *Self, inst: Air.Inst.Index, opt_ty: Type, opt_mcv: MCValue) !MC
1074310743 .lea_got,
1074410744 .lea_tlv,
1074510745 .lea_frame,
10746 .lea_memory,
10746 .lea_symbol,
1074710747 .reserved_frame,
1074810748 .air_ref,
1074910749 => unreachable,
......@@ -10767,7 +10767,7 @@ fn isNull(self: *Self, inst: Air.Inst.Index, opt_ty: Type, opt_mcv: MCValue) !MC
1076710767 },
1076810768
1076910769 .memory,
10770 .load_memory,
10770 .load_symbol,
1077110771 .load_got,
1077210772 .load_direct,
1077310773 .load_tlv,
......@@ -11365,7 +11365,7 @@ fn airAsm(self: *Self, inst: Air.Inst.Index) !void {
1136511365 .memory => |addr| if (math.cast(i32, @as(i64, @bitCast(addr)))) |_|
1136611366 break :arg input_mcv,
1136711367 .indirect, .load_frame => break :arg input_mcv,
11368 .load_memory, .load_direct, .load_got, .load_tlv => {},
11368 .load_symbol, .load_direct, .load_got, .load_tlv => {},
1136911369 else => {
1137011370 const temp_mcv = try self.allocTempRegOrMem(ty, false);
1137111371 try self.genCopy(ty, temp_mcv, input_mcv);
......@@ -11627,8 +11627,8 @@ fn airAsm(self: *Self, inst: Air.Inst.Index) !void {
1162711627 .{ .reg = try self.copyToTmpRegister(Type.usize, .{ .lea_got = sym_index }) }
1162811628 else
1162911629 return self.fail("invalid modifier: '{s}'", .{modifier}),
11630 .lea_memory => |sym_index| if (mem.eql(u8, modifier, "P"))
11631 .{ .reg = try self.copyToTmpRegister(Type.usize, .{ .lea_memory = sym_index }) }
11630 .lea_symbol => |sym_index| if (mem.eql(u8, modifier, "P"))
11631 .{ .reg = try self.copyToTmpRegister(Type.usize, .{ .lea_symbol = sym_index }) }
1163211632 else
1163311633 return self.fail("invalid modifier: '{s}'", .{modifier}),
1163411634 else => return self.fail("invalid constraint: '{s}'", .{op_str}),
......@@ -12186,7 +12186,7 @@ fn genCopy(self: *Self, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) InnerError
1218612186 .lea_got,
1218712187 .lea_tlv,
1218812188 .lea_frame,
12189 .lea_memory,
12189 .lea_symbol,
1219012190 .reserved_frame,
1219112191 .air_ref,
1219212192 => unreachable, // unmodifiable destination
......@@ -12242,7 +12242,7 @@ fn genCopy(self: *Self, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) InnerError
1224212242 class_ty,
1224312243 .{ .register = src_regs[dst_reg_i] },
1224412244 ),
12245 .load_memory => {
12245 .load_symbol => {
1224612246 const addr_reg = try self.copyToTmpRegister(Type.usize, src_mcv.address());
1224712247 const addr_lock = self.register_manager.lockRegAssumeUnused(addr_reg);
1224812248 defer self.register_manager.unlockReg(addr_lock);
......@@ -12263,11 +12263,11 @@ fn genCopy(self: *Self, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) InnerError
1226312263 }
1226412264 },
1226512265 .indirect => |reg_off| try self.genSetMem(.{ .reg = reg_off.reg }, reg_off.off, ty, src_mcv),
12266 .memory, .load_memory, .load_direct, .load_got, .load_tlv => {
12266 .memory, .load_symbol, .load_direct, .load_got, .load_tlv => {
1226712267 switch (dst_mcv) {
1226812268 .memory => |addr| if (math.cast(i32, @as(i64, @bitCast(addr)))) |small_addr|
1226912269 return self.genSetMem(.{ .reg = .ds }, small_addr, ty, src_mcv),
12270 .load_memory, .load_direct, .load_got, .load_tlv => {},
12270 .load_symbol, .load_direct, .load_got, .load_tlv => {},
1227112271 else => unreachable,
1227212272 }
1227312273
......@@ -12443,7 +12443,7 @@ fn genSetReg(self: *Self, dst_reg: Register, ty: Type, src_mcv: MCValue) InnerEr
1244312443 else => unreachable,
1244412444 },
1244512445 )),
12446 .memory, .load_memory, .load_direct, .load_got, .load_tlv => {
12446 .memory, .load_symbol, .load_direct, .load_got, .load_tlv => {
1244712447 switch (src_mcv) {
1244812448 .memory => |addr| if (math.cast(i32, @as(i64, @bitCast(addr)))) |small_addr|
1244912449 return (try self.moveStrategy(
......@@ -12473,7 +12473,7 @@ fn genSetReg(self: *Self, dst_reg: Register, ty: Type, src_mcv: MCValue) InnerEr
1247312473 .segment, .mmx => unreachable,
1247412474 .x87, .sse => {},
1247512475 },
12476 .load_memory, .load_got, .load_tlv => {},
12476 .load_symbol, .load_got, .load_tlv => {},
1247712477 else => unreachable,
1247812478 }
1247912479
......@@ -12487,7 +12487,7 @@ fn genSetReg(self: *Self, dst_reg: Register, ty: Type, src_mcv: MCValue) InnerEr
1248712487 Memory.sib(Memory.PtrSize.fromSize(abi_size), .{ .base = .{ .reg = addr_reg } }),
1248812488 );
1248912489 },
12490 .lea_memory, .lea_direct, .lea_got => |sym_index| {
12490 .lea_symbol, .lea_direct, .lea_got => |sym_index| {
1249112491 const atom_index = try self.owner.getSymbolIndex(self);
1249212492 if (self.bin_file.cast(link.File.Elf)) |elf_file| {
1249312493 const sym = elf_file.symbol(elf_file.zigModulePtr().symbol(sym_index));
......@@ -12675,8 +12675,8 @@ fn genSetMem(self: *Self, base: Memory.Base, disp: i32, ty: Type, src_mcv: MCVal
1267512675 .lea_tlv,
1267612676 .load_frame,
1267712677 .lea_frame,
12678 .load_memory,
12679 .lea_memory,
12678 .load_symbol,
12679 .lea_symbol,
1268012680 => switch (abi_size) {
1268112681 0 => {},
1268212682 1, 2, 4, 8 => {
......@@ -12767,8 +12767,8 @@ fn genLazySymbolRef(
1276712767
1276812768 if (self.bin_file.options.pic) {
1276912769 switch (tag) {
12770 .lea, .call => try self.genSetReg(reg, Type.usize, .{ .lea_memory = sym.esym_index }),
12771 .mov => try self.genSetReg(reg, Type.usize, .{ .load_memory = sym.esym_index }),
12770 .lea, .call => try self.genSetReg(reg, Type.usize, .{ .lea_symbol = sym.esym_index }),
12771 .mov => try self.genSetReg(reg, Type.usize, .{ .load_symbol = sym.esym_index }),
1277212772 else => unreachable,
1277312773 }
1277412774 switch (tag) {
......@@ -14742,8 +14742,8 @@ fn genTypedValue(self: *Self, arg_tv: TypedValue) InnerError!MCValue {
1474214742 .undef => .undef,
1474314743 .immediate => |imm| .{ .immediate = imm },
1474414744 .memory => |addr| .{ .memory = addr },
14745 .load_memory => |sym_index| .{ .load_memory = sym_index },
14746 .lea_memory => |sym_index| .{ .lea_memory = sym_index },
14745 .load_symbol => |sym_index| .{ .load_symbol = sym_index },
14746 .lea_symbol => |sym_index| .{ .lea_symbol = sym_index },
1474714747 .load_direct => |sym_index| .{ .load_direct = sym_index },
1474814748 .load_got => |sym_index| .{ .lea_got = sym_index },
1474914749 .load_tlv => |sym_index| .{ .lea_tlv = sym_index },
src/codegen.zig+5-5
......@@ -827,8 +827,8 @@ pub const GenResult = union(enum) {
827827 memory: u64,
828828 /// Reference to memory location but deferred until linker allocated the Decl in memory.
829829 /// Traditionally, this corresponds to emitting a relocation in a relocatable object file.
830 load_memory: u32,
831 lea_memory: u32,
830 load_symbol: u32,
831 lea_symbol: u32,
832832 };
833833
834834 fn mcv(val: MCValue) GenResult {
......@@ -904,12 +904,12 @@ fn genDeclRef(
904904 else
905905 null;
906906 const sym_index = try elf_file.getGlobalSymbol(name, lib_name);
907 return GenResult.mcv(.{ .lea_memory = sym_index });
907 return GenResult.mcv(.{ .lea_symbol = sym_index });
908908 }
909909 const sym_index = try elf_file.getOrCreateMetadataForDecl(decl_index);
910910 const sym = elf_file.symbol(sym_index);
911911 _ = try sym.getOrCreateZigGotEntry(sym_index, elf_file);
912 return GenResult.mcv(.{ .lea_memory = sym.esym_index });
912 return GenResult.mcv(.{ .lea_symbol = sym.esym_index });
913913 } else if (bin_file.cast(link.File.MachO)) |macho_file| {
914914 const atom_index = try macho_file.getOrCreateAtomForDecl(decl_index);
915915 const sym_index = macho_file.getAtom(atom_index).getSymbolIndex().?;
......@@ -945,7 +945,7 @@ fn genUnnamedConst(
945945 };
946946 if (bin_file.cast(link.File.Elf)) |elf_file| {
947947 const local = elf_file.symbol(local_sym_index);
948 return GenResult.mcv(.{ .load_memory = local.esym_index });
948 return GenResult.mcv(.{ .load_symbol = local.esym_index });
949949 } else if (bin_file.cast(link.File.MachO)) |_| {
950950 return GenResult.mcv(.{ .load_direct = local_sym_index });
951951 } else if (bin_file.cast(link.File.Coff)) |_| {