Instructions can be encoded and decoded with up to five operands
This commit is contained in:
parent
545be0d170
commit
43f662221b
@ -81,11 +81,11 @@ typedef enum _ArchOperandType
|
||||
# define AOI_REFERS_FUNCTION 0x2
|
||||
|
||||
/* macros */
|
||||
# define AO_0() AOT_NONE, AOT_NONE, AOT_NONE
|
||||
# define AO_1(op1) op1, AOT_NONE, AOT_NONE
|
||||
# define AO_2(op1, op2) op1, op2, AOT_NONE
|
||||
# define AO_0() AOT_NONE, AOT_NONE, AOT_NONE, AOT_NONE, AOT_NONE
|
||||
# define AO_1(op1) op1, AOT_NONE, AOT_NONE, AOT_NONE, AOT_NONE
|
||||
# define AO_2(op1, op2) op1, op2, AOT_NONE, AOT_NONE, AOT_NONE
|
||||
# define AO_3(op1, op2, op3) \
|
||||
op1, op2, op3
|
||||
op1, op2, op3, AOT_NONE, AOT_NONE
|
||||
# define AO_GET_FLAGS(operand) ((operand & AOM_FLAGS) >> AOD_FLAGS)
|
||||
# define AO_GET_OFFSET(operand) ((operand & AOM_OFFSET) >> AOD_OFFSET)
|
||||
# define AO_GET_DSIZE(operand) ((operand & AOM_OFFSET) >> AOD_OFFSET)
|
||||
@ -168,12 +168,14 @@ typedef struct _ArchInstruction
|
||||
ArchOperandDefinition op1;
|
||||
ArchOperandDefinition op2;
|
||||
ArchOperandDefinition op3;
|
||||
ArchOperandDefinition op4;
|
||||
ArchOperandDefinition op5;
|
||||
} ArchInstruction;
|
||||
|
||||
typedef struct _ArchInstructionCall
|
||||
{
|
||||
char const * name;
|
||||
ArchOperand operands[3];
|
||||
ArchOperand operands[5];
|
||||
uint32_t operands_cnt;
|
||||
|
||||
/* meta information */
|
||||
|
Loading…
Reference in New Issue
Block a user