Initial work
This commit is contained in:
parent
f617fb542a
commit
1876b346fe
518 changed files with 15170 additions and 12486 deletions
30
Ryujinx.Graphics.Shader/Decoders/OpCode.cs
Normal file
30
Ryujinx.Graphics.Shader/Decoders/OpCode.cs
Normal file
|
@ -0,0 +1,30 @@
|
|||
using Ryujinx.Graphics.Shader.Instructions;
|
||||
|
||||
namespace Ryujinx.Graphics.Shader.Decoders
|
||||
{
|
||||
class OpCode
|
||||
{
|
||||
public InstEmitter Emitter { get; }
|
||||
|
||||
public ulong Address { get; }
|
||||
public long RawOpCode { get; }
|
||||
|
||||
public Register Predicate { get; protected set; }
|
||||
|
||||
public bool InvertPredicate { get; protected set; }
|
||||
|
||||
// When inverted, the always true predicate == always false.
|
||||
public bool NeverExecute => Predicate.Index == RegisterConsts.PredicateTrueIndex && InvertPredicate;
|
||||
|
||||
public OpCode(InstEmitter emitter, ulong address, long opCode)
|
||||
{
|
||||
Emitter = emitter;
|
||||
Address = address;
|
||||
RawOpCode = opCode;
|
||||
|
||||
Predicate = new Register(opCode.Extract(16, 3), RegisterType.Predicate);
|
||||
|
||||
InvertPredicate = opCode.Extract(19);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue