1
0
Fork 0
mirror of https://github.com/Ryujinx/Ryujinx.git synced 2024-11-27 18:42:04 +00:00

Fix Node Uses/Assignments (#1376)

* Fix Node Uses/Assignments

* Bump PPTC Version Number

Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com>
This commit is contained in:
Ficture Seven 2020-07-13 14:20:07 +04:00 committed by GitHub
parent b5127131c5
commit 30d4f752f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 31 deletions

View file

@ -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);
_destinations[0] = destination;
if (destination.Kind == OperandKind.LocalVariable)
if (destination == null)
{
destination.Assignments.Add(this);
_destinations.Clear();
_clearedDest = true;
}
else
{
Resize(_destinations, 1);
_destinations[0] = destination;
AddAssignment(destination);
}
}
@ -175,13 +168,17 @@ namespace ARMeilleure.IntermediateRepresentation
{
RemoveOldSources();
Resize(_sources, 1);
_sources[0] = source;
if (source.Kind == OperandKind.LocalVariable)
if (source == null)
{
source.Uses.Add(this);
_sources.Clear();
}
else
{
Resize(_sources, 1);
_sources[0] = source;
AddUse(source);
}
}

View file

@ -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";