Merge pull request #3240 from ReinUsesLisp/decomp-cond-code
vk_shader_decompiler: Use Visit instead of reimplementing it
This commit is contained in:
		@@ -2552,29 +2552,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Id operator()(const ExprCondCode& expr) {
 | 
			
		||||
        const Node cc = decomp.ir.GetConditionCode(expr.cc);
 | 
			
		||||
        Id target;
 | 
			
		||||
 | 
			
		||||
        if (const auto pred = std::get_if<PredicateNode>(&*cc)) {
 | 
			
		||||
            const auto index = pred->GetIndex();
 | 
			
		||||
            switch (index) {
 | 
			
		||||
            case Tegra::Shader::Pred::NeverExecute:
 | 
			
		||||
                target = decomp.v_false;
 | 
			
		||||
                break;
 | 
			
		||||
            case Tegra::Shader::Pred::UnusedIndex:
 | 
			
		||||
                target = decomp.v_true;
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                target = decomp.predicates.at(index);
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
 | 
			
		||||
            target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag()));
 | 
			
		||||
        } else {
 | 
			
		||||
            UNREACHABLE();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return decomp.OpLoad(decomp.t_bool, target);
 | 
			
		||||
        return decomp.AsBool(decomp.Visit(decomp.ir.GetConditionCode(expr.cc)));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Id operator()(const ExprVar& expr) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user