// RexPrefixOffset: byte; //if specified specifies which byte should be used for the rexw (e.g f3 before rex ) //paramencoding: TParamEncoding; public AOpCode() { Mnemonic = ""; OpCode1 = AExtraOpCode.None; OpCode2 = AExtraOpCode.None; ParamType1 = AParam.None; ParamType2 = AParam.None; ParamType3 = AParam.None; ParamType4 = AParam.None; Bytes = 0; Bt1 = 0; Bt2 = 0; Bt3 = 0; Bt4 = 0; Signed = false; W0 = false; W1 = false; InvalidIn64Bit = false; InvalidIn32Bit = false; CanDoAddressSwitch = false; DefaultType = false; HasVex = false; VexL = 0x00; VexOpCodeExtension = AVexOpCodeExtension.None; VexLeadingOpCode = AVexLeadingOpCode.None; VexExtraParam = 0; }
public int EoToReg(AExtraOpCode eo) { var result = -1; switch (eo) { case AExtraOpCode.Reg0: result = 0; break; case AExtraOpCode.Reg1: result = 1; break; case AExtraOpCode.Reg2: result = 2; break; case AExtraOpCode.Reg3: result = 3; break; case AExtraOpCode.Reg4: result = 4; break; case AExtraOpCode.Reg5: result = 5; break; case AExtraOpCode.Reg6: result = 6; break; case AExtraOpCode.Reg7: result = 7; break; } return(result); }