Implement IEquatable on the Register struct

This commit is contained in:
gdkchan 2019-04-17 20:55:24 -03:00
parent ef47ed9007
commit 9d0b070dfd
2 changed files with 12 additions and 9 deletions

View file

@ -43,14 +43,14 @@ namespace ChocolArm64.IntermediateRepresentation
return obj is RegisterMask regMask && Equals(regMask);
}
public override int GetHashCode()
{
return HashCode.Combine(IntMask, VecMask);
}
public bool Equals(RegisterMask other)
{
return IntMask == other.IntMask && VecMask == other.VecMask;
}
public override int GetHashCode()
{
return HashCode.Combine(IntMask, VecMask);
}
}
}

View file

@ -3,7 +3,7 @@ using System.Reflection;
namespace ChocolArm64.State
{
struct Register
struct Register : IEquatable<Register>
{
public int Index;
@ -22,9 +22,12 @@ namespace ChocolArm64.State
public override bool Equals(object obj)
{
return obj is Register reg &&
reg.Index == Index &&
reg.Type == Type;
return obj is Register reg && Equals(reg);
}
public bool Equals(Register other)
{
return Index == other.Index && Type == other.Type;
}
public FieldInfo GetField()