early-access version 2012

This commit is contained in:
pineappleEA 2021-08-26 00:18:54 +02:00
parent 7ab94d57a1
commit eece4e8a1c
2 changed files with 12 additions and 1 deletions

View File

@ -1,7 +1,7 @@
yuzu emulator early access yuzu emulator early access
============= =============
This is the source code for early-access 2011. This is the source code for early-access 2012.
## Legal Notice ## Legal Notice

View File

@ -875,10 +875,21 @@ private:
std::vector<IR::Block*> demote_blocks; std::vector<IR::Block*> demote_blocks;
std::vector<IR::U1> demote_conds; std::vector<IR::U1> demote_conds;
u32 num_epilogues{}; u32 num_epilogues{};
u32 branch_depth{};
for (const IR::AbstractSyntaxNode& node : syntax_list) { for (const IR::AbstractSyntaxNode& node : syntax_list) {
if (node.type == Type::If) {
++branch_depth;
}
if (node.type == Type::EndIf) {
--branch_depth;
}
if (node.type != Type::Block) { if (node.type != Type::Block) {
continue; continue;
} }
if (branch_depth > 1) {
// Skip reordering nested demote branches.
continue;
}
for (const IR::Inst& inst : node.data.block->Instructions()) { for (const IR::Inst& inst : node.data.block->Instructions()) {
const IR::Opcode op{inst.GetOpcode()}; const IR::Opcode op{inst.GetOpcode()};
if (op == IR::Opcode::DemoteToHelperInvocation) { if (op == IR::Opcode::DemoteToHelperInvocation) {