From 34c3ec2f8c69159fd61b42091ee3157c6e77fa30 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Mon, 25 Jan 2021 02:48:03 -0300 Subject: Revert "Start of Integer flags implementation" This reverts #4713. The implementation in that PR is not accurate. It does not reflect the behavior seen in hardware. --- src/video_core/shader/shader_ir.cpp | 51 +++---------------------------------- 1 file changed, 3 insertions(+), 48 deletions(-) (limited to 'src/video_core/shader/shader_ir.cpp') diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp index 625a5eb46..a4987ffc6 100644 --- a/src/video_core/shader/shader_ir.cpp +++ b/src/video_core/shader/shader_ir.cpp @@ -388,54 +388,9 @@ void ShaderIR::SetInternalFlagsFromInteger(NodeBlock& bb, Node value, bool sets_ if (!sets_cc) { return; } - switch (value->index()) { - case 0: // Operation Node - SearchOperands(bb, value); - break; - case 2: // General Purpose Node - if (const auto* gpr = std::get_if(value.get())) { - LOG_DEBUG(HW_GPU, "GprNode: index={}", gpr->GetIndex()); - Node zerop = Operation(OperationCode::LogicalIEqual, std::move(value), - Immediate(gpr->GetIndex())); - SetInternalFlag(bb, InternalFlag::Zero, std::move(zerop)); - } - break; - - default: - Node zerop = Operation(OperationCode::LogicalIEqual, std::move(value), Immediate(0)); - SetInternalFlag(bb, InternalFlag::Zero, std::move(zerop)); - LOG_WARNING(HW_GPU, "Node Type: {}", value->index()); - break; - } -} - -void ShaderIR::SearchOperands(NodeBlock& nb, Node var) { - const auto* op = std::get_if(var.get()); - if (op == nullptr) { - return; - } - - if (op->GetOperandsCount() == 0) { - return; - } - - for (auto& operand : op->GetOperands()) { - switch (operand->index()) { - case 0: // Operation Node - return SearchOperands(nb, operand); - case 2: // General Purpose Node - if (const auto* gpr = std::get_if(operand.get())) { - LOG_DEBUG(HW_GPU, "Child GprNode: index={}", gpr->GetIndex()); - Node zerop = Operation(OperationCode::LogicalIEqual, std::move(operand), - Immediate(gpr->GetIndex())); - SetInternalFlag(nb, InternalFlag::Zero, std::move(zerop)); - } - break; - default: - LOG_WARNING(HW_GPU, "Child Node Type: {}", operand->index()); - break; - } - } + Node zerop = Operation(OperationCode::LogicalIEqual, std::move(value), Immediate(0)); + SetInternalFlag(bb, InternalFlag::Zero, std::move(zerop)); + LOG_WARNING(HW_GPU, "Condition codes implementation is incomplete"); } Node ShaderIR::BitfieldExtract(Node value, u32 offset, u32 bits) { -- cgit v1.2.3