public static AOpCode DecodeOpCode(AThreadState State, AMemory Memory, long Position) { int OpCode = Memory.ReadInt32(Position); AInst Inst; if (State.ExecutionMode == AExecutionMode.AArch64) { Inst = AOpCodeTable.GetInstA64(OpCode); } else { //TODO: Thumb support. Inst = AOpCodeTable.GetInstA32(OpCode); } AOpCode DecodedOpCode = new AOpCode(AInst.Undefined, Position, OpCode); if (Inst.Type != null) { DecodedOpCode = MakeOpCode(Inst.Type, Inst, Position, OpCode); } return(DecodedOpCode); }
public static AOpCode DecodeOpCode(AMemory Memory, long Position) { int OpCode = Memory.ReadInt32(Position); AInst Inst = AOpCodeTable.GetInst(OpCode); AOpCode DecodedOpCode = new AOpCode(AInst.Undefined, Position, OpCode); if (Inst.Type != null) { DecodedOpCode = CreateOpCode(Inst.Type, Inst, Position, OpCode); } return(DecodedOpCode); }