diff options
| author | Ficture Seven <FICTURE7@gmail.com> | 2020-07-13 14:20:07 +0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-13 20:20:07 +1000 |
| commit | 30d4f752f47217bcdc4dd05428010acf270189d0 (patch) | |
| tree | 0befe872b3d9ccbd5aa4859221b3cc1e81d1cee6 | |
| parent | b5127131c558ac6613e4e61df3da96031a8fa155 (diff) | |
Fix Node Uses/Assignments (#1376)
* Fix Node Uses/Assignments
* Bump PPTC Version Number
Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com>
| -rw-r--r-- | ARMeilleure/IntermediateRepresentation/Node.cs | 53 | ||||
| -rw-r--r-- | ARMeilleure/Translation/PTC/Ptc.cs | 2 |
2 files changed, 26 insertions, 29 deletions
diff --git a/ARMeilleure/IntermediateRepresentation/Node.cs b/ARMeilleure/IntermediateRepresentation/Node.cs index 9ce78c09..3f41d814 100644 --- a/ARMeilleure/IntermediateRepresentation/Node.cs +++ b/ARMeilleure/IntermediateRepresentation/Node.cs @@ -10,25 +10,12 @@ namespace ARMeilleure.IntermediateRepresentation public Operand Destination { - get - { - return _destinations.Count != 0 ? GetDestination(0) : null; - } - set - { - if (value != null) - { - SetDestination(value); - } - else - { - _destinations.Clear(); - } - } + get => _destinations.Count != 0 ? GetDestination(0) : null; + set => SetDestination(value); } - private List<Operand> _destinations; - private List<Operand> _sources; + private readonly List<Operand> _destinations; + private readonly List<Operand> _sources; private bool _clearedDest; public int DestinationsCount => _destinations.Count; @@ -123,13 +110,14 @@ namespace ARMeilleure.IntermediateRepresentation private void RemoveOldDestinations() { - if (_destinations != null && !_clearedDest) + if (!_clearedDest) { for (int index = 0; index < _destinations.Count; index++) { RemoveAssignment(_destinations[index]); } } + _clearedDest = false; } @@ -137,13 +125,18 @@ namespace ARMeilleure.IntermediateRepresentation { RemoveOldDestinations(); - Resize(_destinations, 1); + if (destination == null) + { + _destinations.Clear(); + _clearedDest = true; + } + else + { + Resize(_destinations, 1); - _destinations[0] = destination; + _destinations[0] = destination; - if (destination.Kind == OperandKind.LocalVariable) - { - destination.Assignments.Add(this); + AddAssignment(destination); } } @@ -175,13 +168,17 @@ namespace ARMeilleure.IntermediateRepresentation { RemoveOldSources(); - Resize(_sources, 1); + if (source == null) + { + _sources.Clear(); + } + else + { + Resize(_sources, 1); - _sources[0] = source; + _sources[0] = source; - if (source.Kind == OperandKind.LocalVariable) - { - source.Uses.Add(this); + AddUse(source); } } diff --git a/ARMeilleure/Translation/PTC/Ptc.cs b/ARMeilleure/Translation/PTC/Ptc.cs index b538e948..0051d25a 100644 --- a/ARMeilleure/Translation/PTC/Ptc.cs +++ b/ARMeilleure/Translation/PTC/Ptc.cs @@ -20,7 +20,7 @@ namespace ARMeilleure.Translation.PTC { private const string HeaderMagic = "PTChd"; - private const int InternalVersion = 7; //! To be incremented manually for each change to the ARMeilleure project. + private const int InternalVersion = 8; //! To be incremented manually for each change to the ARMeilleure project. private const string BaseDir = "Ryujinx"; |
