authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-05-18 12:50:19+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-05-19 19:39:34+02:00
log020f99d893be794376eea329af06838474744e80
treed394091b6ccaf577b64f5e67bef37eafc5827422
parentf34615082058549d8945a39195cf0dc826b688e1

x64: remove special-casing of AVX for br()


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

src/arch/x86_64/CodeGen.zig+1-10
......@@ -5042,21 +5042,12 @@ fn br(self: *Self, block: Air.Inst.Index, operand: Air.Inst.Ref) !void {
50425042 if (block_mcv == .none) {
50435043 block_data.mcv = switch (operand_mcv) {
50445044 .none, .dead, .unreach => unreachable,
5045 .stack_offset, .memory => operand_mcv,
5045 .register, .stack_offset, .memory => operand_mcv,
50465046 .compare_flags_signed, .compare_flags_unsigned, .immediate => blk: {
50475047 const new_mcv = try self.allocRegOrMem(block, true);
50485048 try self.setRegOrMem(self.air.typeOfIndex(block), new_mcv, operand_mcv);
50495049 break :blk new_mcv;
50505050 },
5051 .register => blk: {
5052 if (self.air.typeOfIndex(block).zigTypeTag() == .Float) {
5053 // TODO not needed; return operand_mcv ones we can transfer between XMM registers
5054 const new_mcv = try self.allocRegOrMem(block, false);
5055 try self.setRegOrMem(self.air.typeOfIndex(block), new_mcv, operand_mcv);
5056 break :blk new_mcv;
5057 }
5058 break :blk operand_mcv;
5059 },
50605051 else => return self.fail("TODO implement block_data.mcv = operand_mcv for {}", .{operand_mcv}),
50615052 };
50625053 } else {