authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-05-06 23:20:02+07:00
committergravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-05-16 23:17:11+07:00
logae2d6b7eea9c2dff7cfe6d38f5713d2f8cfed4e6
tree7140e3dfb7ed3917554c2fbd89a86831c9c284d7
parente057ff249648bdcd8cf2e9be62b40a2379de03e9

stage2: sparc64: Add BPr support for airCondBr


1 files changed, 17 insertions(+), 1 deletions(-)

src/arch/sparc64/CodeGen.zig+17-1
...@@ -1031,7 +1031,23 @@ fn airCondBr(self: *Self, inst: Air.Inst.Index) !void {...@@ -1031,7 +1031,23 @@ fn airCondBr(self: *Self, inst: Air.Inst.Index) !void {
1031 },1031 },
1032 },1032 },
1033 }),1033 }),
1034 else => return self.fail("TODO branch on register content (BPr)", .{}),1034 else => blk: {
1035 const reg = switch (cond) {
1036 .register => |r| r,
1037 else => try self.copyToTmpRegister(Type.bool, cond),
1038 };
1039
1040 break :blk try self.addInst(.{
1041 .tag = .bpr,
1042 .data = .{
1043 .branch_predict_reg = .{
1044 .cond = .eq_zero,
1045 .rs1 = reg,
1046 .inst = undefined, // populated later through performReloc
1047 },
1048 },
1049 });
1050 },
1035 };1051 };
10361052
1037 // Regardless of the branch type that's emitted, we need to reserve1053 // Regardless of the branch type that's emitted, we need to reserve