| 123456789101112131415161718192021222324252627282930313233343536 |
- using System;
- namespace Ryujinx.Graphics.Shader.Decoders
- {
- readonly struct Register : IEquatable<Register>
- {
- public int Index { get; }
- public RegisterType Type { get; }
- public bool IsRZ => Type == RegisterType.Gpr && Index == RegisterConsts.RegisterZeroIndex;
- public bool IsPT => Type == RegisterType.Predicate && Index == RegisterConsts.PredicateTrueIndex;
- public Register(int index, RegisterType type)
- {
- Index = index;
- Type = type;
- }
- public override int GetHashCode()
- {
- return (ushort)Index | ((ushort)Type << 16);
- }
- public override bool Equals(object obj)
- {
- return obj is Register reg && Equals(reg);
- }
- public bool Equals(Register other)
- {
- return other.Index == Index &&
- other.Type == Type;
- }
- }
- }
|