authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-08-06 02:01:29-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-08-08 21:32:50-04:00
log3ebf8ce9704647686a9f9654c59e0be17bc78984
tree347b8acec3d17a488ed06543359f149f3fecced5
parentf938404a45d347fe448351c70cc34db98700e068

Builder: fix builtin pseudo-instruction dumping


1 files changed, 23 insertions(+), 4 deletions(-)

src/codegen/llvm/Builder.zig+23-4
...@@ -7727,7 +7727,14 @@ pub fn printUnbuffered(...@@ -7727,7 +7727,14 @@ pub fn printUnbuffered(
7727 },7727 },
7728 .fneg,7728 .fneg,
7729 .@"fneg fast",7729 .@"fneg fast",
7730 .ret,7730 => |tag| {
7731 const val: Value = @enumFromInt(instruction.data);
7732 try writer.print(" %{} = {s} {%}\n", .{
7733 instruction_index.name(&function).fmt(self),
7734 @tagName(tag),
7735 val.fmt(function_index, self),
7736 });
7737 },
7731 .@"llvm.ceil.",7738 .@"llvm.ceil.",
7732 .@"llvm.cos.",7739 .@"llvm.cos.",
7733 .@"llvm.exp.",7740 .@"llvm.exp.",
...@@ -7746,8 +7753,12 @@ pub fn printUnbuffered(...@@ -7746,8 +7753,12 @@ pub fn printUnbuffered(
7746 .@"llvm.ctpop.",7753 .@"llvm.ctpop.",
7747 => |tag| {7754 => |tag| {
7748 const val: Value = @enumFromInt(instruction.data);7755 const val: Value = @enumFromInt(instruction.data);
7749 try writer.print(" {s} {%}\n", .{7756 const ty = val.typeOf(function_index, self);
7757 try writer.print(" %{} = call {%} @{s}{m}({%})\n", .{
7758 instruction_index.name(&function).fmt(self),
7759 ty.fmt(self),
7750 @tagName(tag),7760 @tagName(tag),
7761 ty.fmt(self),
7751 val.fmt(function_index, self),7762 val.fmt(function_index, self),
7752 });7763 });
7753 },7764 },
...@@ -7872,6 +7883,13 @@ pub fn printUnbuffered(...@@ -7872,6 +7883,13 @@ pub fn printUnbuffered(
7872 }7883 }
7873 try writer.writeByte('\n');7884 try writer.writeByte('\n');
7874 },7885 },
7886 .ret => |tag| {
7887 const val: Value = @enumFromInt(instruction.data);
7888 try writer.print(" {s} {%}\n", .{
7889 @tagName(tag),
7890 val.fmt(function_index, self),
7891 });
7892 },
7875 .@"ret void",7893 .@"ret void",
7876 .@"unreachable",7894 .@"unreachable",
7877 => |tag| try writer.print(" {s}\n", .{@tagName(tag)}),7895 => |tag| try writer.print(" {s}\n", .{@tagName(tag)}),
...@@ -7966,13 +7984,14 @@ pub fn printUnbuffered(...@@ -7966,13 +7984,14 @@ pub fn printUnbuffered(
7966 extra.type.fmt(self),7984 extra.type.fmt(self),
7967 });7985 });
7968 },7986 },
7969 .@"llvm.fma." => {7987 .@"llvm.fma." => |tag| {
7970 const extra =7988 const extra =
7971 function.extraData(Function.Instruction.FusedMultiplyAdd, instruction.data);7989 function.extraData(Function.Instruction.FusedMultiplyAdd, instruction.data);
7972 const ty = instruction_index.typeOf(function_index, self);7990 const ty = instruction_index.typeOf(function_index, self);
7973 try writer.print(" %{} = call {%} @llvm.fma.{m}({%}, {%}, {%})\n", .{7991 try writer.print(" %{} = call {%} @{s}{m}({%}, {%}, {%})\n", .{
7974 instruction_index.name(&function).fmt(self),7992 instruction_index.name(&function).fmt(self),
7975 ty.fmt(self),7993 ty.fmt(self),
7994 @tagName(tag),
7976 ty.fmt(self),7995 ty.fmt(self),
7977 extra.a.fmt(function_index, self),7996 extra.a.fmt(function_index, self),
7978 extra.b.fmt(function_index, self),7997 extra.b.fmt(function_index, self),