public TableEntry(InstEmitter emitter, Type opCodeType, int xBits) { Emitter = emitter; OpCodeType = opCodeType; XBits = xBits; OpActivator = CacheOpActivator(opCodeType); }
public OpCodePsetp(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Predicate12 = new Register(opCode.Extract(12, 3), RegisterType.Predicate); Predicate29 = new Register(opCode.Extract(29, 3), RegisterType.Predicate); LogicalOpAB = (LogicalOperation)opCode.Extract(24, 2); }
public OpCodeTld4s(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { HasDepthCompare = opCode.Extract(50); HasOffset = opCode.Extract(51); GatherCompIndex = opCode.Extract(52, 2); }
public OpCodeAluRegCbuf(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Offset = opCode.Extract(20, 14); Slot = opCode.Extract(34, 5); Rb = new Register(opCode.Extract(39, 8), RegisterType.Gpr); }
public OpCodeBranchIndir(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { PossibleTargets = new HashSet <Block>(); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Offset = ((int)(opCode >> 20) << 8) >> 8; }
public OpCodeAluImm32(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Immediate = opCode.Extract(20, 32); SetCondCode = opCode.Extract(52); Extended = opCode.Extract(53); Saturate = opCode.Extract(54); }
public OpCodeAl2p(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Predicate44 = new Register(opCode.Extract(44, 3), RegisterType.Predicate); Immediate = ((int)opCode << 1) >> 21; }
public OpCodeHfmaImm32(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Immediate = opCode.Extract(20, 32); NegateC = opCode.Extract(52); Rc = Rd; }
public OpCodeHfma(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Rc = new Register(opCode.Extract(39, 8), RegisterType.Gpr); SwizzleA = (FPHalfSwizzle)opCode.Extract(47, 2); }
public OpCodeBranch(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Condition = (Condition)(opCode & 0x1f); Offset = ((int)(opCode >> 20) << 8) >> 8; PushTarget = false; }
public OpCodeTld4(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { HasDepthCompare = opCode.Extract(50); Offset = (TextureGatherOffset)opCode.Extract(54, 2); GatherCompIndex = opCode.Extract(56, 2); }
public OpCodeTxd(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { HasOffset = opCode.Extract(35); IsBindless = opCode.Extract(54); LodMode = TextureLodMode.None; }
public OpCodeIpa(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { AttributeOffset = opCode.Extract(28, 10); Saturate = opCode.Extract(51); Mode = (InterpolationMode)opCode.Extract(54, 2); }
public InstOp(ulong address, ulong rawOpCode, InstName name, InstEmitter emitter, InstProps props) { Address = address; RawOpCode = rawOpCode; Name = name; Emitter = emitter; Props = props; }
public OpCodeSsy(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Syncs = new Dictionary <OpCodeSync, Operand>(); Predicate = new Register(RegisterConsts.PredicateTrueIndex, RegisterType.Predicate); InvertPredicate = false; }
public OpCodeFArith(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { RoundingMode = (RoundingMode)opCode.Extract(39, 2); Scale = (FPMultiplyScale)opCode.Extract(41, 3); FlushToZero = opCode.Extract(44); AbsoluteA = opCode.Extract(46); }
public OpCodeLopImm32(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { LogicalOp = (LogicalOperation)opCode.Extract(53, 2); InvertA = opCode.Extract(55); InvertB = opCode.Extract(56); Extended = opCode.Extract(57); }
public OpCodeLop(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { InvertA = opCode.Extract(39); InvertB = opCode.Extract(40); LogicalOp = (LogicalOperation)opCode.Extract(41, 2); Predicate48 = new Register(opCode.Extract(48, 3), RegisterType.Predicate); }
public OpCodeSet(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Predicate0 = new Register(opCode.Extract(0, 3), RegisterType.Predicate); Predicate3 = new Register(opCode.Extract(3, 3), RegisterType.Predicate); LogicalOp = (LogicalOperation)opCode.Extract(45, 2); FlushToZero = opCode.Extract(47); }
public OpCodeVideo(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Rc = new Register(opCode.Extract(39, 8), RegisterType.Gpr); SetCondCode = opCode.Extract(47); Saturate = opCode.Extract(55); }
public OpCodeHfmaImm2x10(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Immediate = DecoderHelper.Decode2xF10Immediate(opCode); NegateC = opCode.Extract(51); Saturate = opCode.Extract(52); SwizzleC = (FPHalfSwizzle)opCode.Extract(53, 2); }
public OpCodePush(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { PopOps = new Dictionary <OpCodeBranchPop, Operand>(); Predicate = new Register(RegisterConsts.PredicateTrueIndex, RegisterType.Predicate); InvertPredicate = false; PushTarget = true; }
public OpCodeVote(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Predicate39 = new Register(opCode.Extract(39, 3), RegisterType.Predicate); Predicate45 = new Register(opCode.Extract(45, 3), RegisterType.Predicate); InvertP = opCode.Extract(42); VoteOp = (VoteOp)opCode.Extract(48, 2); }
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); }
public OpCodeLdc(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Offset = opCode.Extract(22, 14); Slot = opCode.Extract(36, 5); Size = (IntegerSize)opCode.Extract(48, 3); }
public OpCodeAtom(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Rb = new Register(opCode.Extract(20, 8), RegisterType.Gpr); Extended = opCode.Extract(48); AtomicOp = (AtomicOp)opCode.Extract(52, 4); }
private static OpCode MakeOpCode(Type type, InstEmitter emitter, ulong address, long opCode) { if (type == null) { throw new ArgumentNullException(nameof(type)); } OpActivator createInstance = _opActivators.GetOrAdd(type, CacheOpActivator); return((OpCode)createInstance(emitter, address, opCode)); }
public OpCodeMemory(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Offset = (opCode.Extract(20, 24) << 8) >> 8; Extended = opCode.Extract(45); Size = (IntegerSize)opCode.Extract(48, 3); }
public OpCodeTld4s(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { HasDepthCompare = opCode.Extract(50); HasOffset = opCode.Extract(51); GatherCompIndex = opCode.Extract(52, 2); IsFp16 = opCode.Extract(55); ComponentMask = Rd1.IsRZ ? 3 : 0xf; }
public OpCodeLdc(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); Offset = (opCode.Extract(20, 16) << 16) >> 16; Slot = opCode.Extract(36, 5); IndexMode = (CbIndexMode)opCode.Extract(44, 2); Size = (IntegerSize)opCode.Extract(48, 3); }