aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Translation/RegisterUsage.cs
diff options
context:
space:
mode:
authorFICTURE7 <FICTURE7@gmail.com>2020-09-12 19:32:53 +0400
committerGitHub <noreply@github.com>2020-09-12 12:32:53 -0300
commit36ec1bc6c023811235d9f5fb664feff09bc7b4f7 (patch)
tree98d74ad92cdce8294bb5116bf7cd06acb55ff9da /ARMeilleure/Translation/RegisterUsage.cs
parent3d055da5fc77f462e9c7099e08570213c0220cd4 (diff)
Relax block ordering constraints (#1535)
* Relax block ordering constraints Before `block.Next` had to follow `block.ListNext`, now it does not. Instead `CodeGenerator` will now emit the necessary jump instructions to ensure control flow. This makes control flow and block order modifications easier. It also eliminates some simple cases of redundant branches. * Set PPTC version
Diffstat (limited to 'ARMeilleure/Translation/RegisterUsage.cs')
-rw-r--r--ARMeilleure/Translation/RegisterUsage.cs9
1 files changed, 2 insertions, 7 deletions
diff --git a/ARMeilleure/Translation/RegisterUsage.cs b/ARMeilleure/Translation/RegisterUsage.cs
index d5124285..6a21ae2a 100644
--- a/ARMeilleure/Translation/RegisterUsage.cs
+++ b/ARMeilleure/Translation/RegisterUsage.cs
@@ -171,14 +171,9 @@ namespace ARMeilleure.Translation
RegisterMask inputs = localInputs[block.Index];
- if (block.Next != null)
+ for (int i = 0; i < block.SuccessorCount; i++)
{
- inputs |= globalInputs[block.Next.Index];
- }
-
- if (block.Branch != null)
- {
- inputs |= globalInputs[block.Branch.Index];
+ inputs |= globalInputs[block.GetSuccessor(i).Index];
}
inputs &= ~globalCmnOutputs[block.Index];