authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-10-26 11:13:14-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-10-29 19:31:44-04:00
log09aa4add2a00454077b5421204acf5e96b6d51cf
tree1a4cd26d75b1aca9c16ba594cdb6cc557dd601a7
parent52a029e503f1c8180a5479871737f01a3b43d1b5

x86_64: add `lret` encoding

Closes #25608

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

src/codegen/x86_64/Encoding.zig+1-1
......@@ -297,7 +297,7 @@ pub const Mnemonic = enum {
297297 jnc, jne, jng, jnge, jnl, jnle, jno, jnp, jns, jnz, jo, jp, jpe, jpo, jrcxz, js, jz,
298298 lahf, lar, lea, leave, lfence, lgdt, lidt, lldt, lmsw, loop, loope, loopne,
299299 lods, lodsb, lodsd, lodsq, lodsw,
300 lsl, ltr,
300 lret, lsl, ltr,
301301 mfence, mov, movbe,
302302 movs, movsb, movsd, movsq, movsw,
303303 movsx, movsxd, movzx, mul,
src/codegen/x86_64/Mir.zig+2-2
......@@ -1732,7 +1732,7 @@ pub const Inst = struct {
17321732 assert(@sizeOf(Data) == 8);
17331733 }
17341734 const Mnemonic = @import("Encoding.zig").Mnemonic;
1735 if (@typeInfo(Mnemonic).@"enum".fields.len != 977 or
1735 if (@typeInfo(Mnemonic).@"enum".fields.len != 978 or
17361736 @typeInfo(Fixes).@"enum".fields.len != 231 or
17371737 @typeInfo(Tag).@"enum".fields.len != 251)
17381738 {
......@@ -1741,7 +1741,7 @@ pub const Inst = struct {
17411741 return @src();
17421742 }
17431743 }).src();
1744 @setEvalBranchQuota(1_750_000);
1744 @setEvalBranchQuota(2_000_000);
17451745 for (@typeInfo(Mnemonic).@"enum".fields) |mnemonic| {
17461746 if (mnemonic.name[0] == '.') continue;
17471747 for (@typeInfo(Fixes).@"enum".fields) |fixes| {
src/codegen/x86_64/encodings.zon+2
......@@ -459,6 +459,8 @@
459459 .{ .loope, .d, .{ .rel8 }, .{ 0xe1 }, 0, .none, .none },
460460 .{ .loopne, .d, .{ .rel8 }, .{ 0xe0 }, 0, .none, .none },
461461
462 .{ .lret, .z, .{}, .{ 0xcb }, 0, .none, .none },
463
462464 .{ .lsl, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x03 }, 0, .none, .none },
463465 .{ .lsl, .rm, .{ .r32, .r32_m16 }, .{ 0x0f, 0x03 }, 0, .none, .none },
464466 .{ .lsl, .rm, .{ .r64, .r32_m16 }, .{ 0x0f, 0x03 }, 0, .none, .none },