early-access version 2012
This commit is contained in:
parent
7ab94d57a1
commit
eece4e8a1c
2 changed files with 12 additions and 1 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue