Compare commits

...

2 Commits

2 changed files with 41 additions and 27 deletions

View File

@ -58,9 +58,10 @@ typedef enum _AsmArchOperandType
AOT_NONE = 0x0,
AOT_CONSTANT = 0x1, /* flags | 0 | size | value */
AOT_IMMEDIATE = 0x2, /* flags | 0 | size | refers */
AOT_REGISTER = 0x3, /* flags | 0 | size | id */
AOT_DREGISTER = 0x4, /* flags | dsize | rsize | id */
AOT_DREGISTER2 = 0x5 /* flags | did | rsize | id */
AOT_IMMEDIATE256= 0x3, /* flags | 0 | size | refers */
AOT_REGISTER = 0x4, /* flags | 0 | size | id */
AOT_DREGISTER = 0x5, /* flags | dsize | rsize | id */
AOT_DREGISTER2 = 0x6 /* flags | did | rsize | id */
} AsmArchOperandType;
/* displacement */
@ -117,6 +118,11 @@ typedef enum _AsmArchOperandType
| ((flags) << AOD_FLAGS) \
| ((size) << AOD_SIZE) \
| ((type) << AOD_VALUE))
# define AO_IMMEDIATE256(flags, size, type) \
((AOT_IMMEDIATE256 << AOD_TYPE) \
| ((flags) << AOD_FLAGS) \
| ((size) << AOD_SIZE) \
| ((type) << AOD_VALUE))
# define AO_REGISTER(flags, size, id) \
((AOT_REGISTER << AOD_TYPE) \
| ((flags) << AOD_FLAGS) \
@ -162,6 +168,14 @@ typedef struct _AsmArchOperand
int negative;
} immediate;
/* AOT_IMMEDIATE256 */
struct
{
char const * name; /* optional */
uint8_t value[32];
int negative;
} immediate256;
/* AOT_REGISTER */
struct
{

View File

@ -28,30 +28,30 @@
#define OP_U48 AO_IMMEDIATE(0, 48, 0)
#define OP_U56 AO_IMMEDIATE(0, 56, 0)
#define OP_U64 AO_IMMEDIATE(0, 64, 0)
#define OP_U72 AO_IMMEDIATE(0, 72, 0)
#define OP_U80 AO_IMMEDIATE(0, 80, 0)
#define OP_U88 AO_IMMEDIATE(0, 88, 0)
#define OP_U96 AO_IMMEDIATE(0, 96, 0)
#define OP_U104 AO_IMMEDIATE(0, 104, 0)
#define OP_U112 AO_IMMEDIATE(0, 112, 0)
#define OP_U120 AO_IMMEDIATE(0, 120, 0)
#define OP_U128 AO_IMMEDIATE(0, 128, 0)
#define OP_U136 AO_IMMEDIATE(0, 136, 0)
#define OP_U144 AO_IMMEDIATE(0, 144, 0)
#define OP_U152 AO_IMMEDIATE(0, 152, 0)
#define OP_U160 AO_IMMEDIATE(0, 160, 0)
#define OP_U168 AO_IMMEDIATE(0, 168, 0)
#define OP_U176 AO_IMMEDIATE(0, 176, 0)
#define OP_U184 AO_IMMEDIATE(0, 184, 0)
#define OP_U192 AO_IMMEDIATE(0, 192, 0)
#define OP_U200 AO_IMMEDIATE(0, 200, 0)
#define OP_U208 AO_IMMEDIATE(0, 208, 0)
#define OP_U216 AO_IMMEDIATE(0, 216, 0)
#define OP_U224 AO_IMMEDIATE(0, 224, 0)
#define OP_U232 AO_IMMEDIATE(0, 232, 0)
#define OP_U240 AO_IMMEDIATE(0, 240, 0)
#define OP_U248 AO_IMMEDIATE(0, 248, 0)
#define OP_U256 AO_IMMEDIATE(0, 256, 0)
#define OP_U72 AO_IMMEDIATE256(0, 72, 0)
#define OP_U80 AO_IMMEDIATE256(0, 80, 0)
#define OP_U88 AO_IMMEDIATE256(0, 88, 0)
#define OP_U96 AO_IMMEDIATE256(0, 96, 0)
#define OP_U104 AO_IMMEDIATE256(0, 104, 0)
#define OP_U112 AO_IMMEDIATE256(0, 112, 0)
#define OP_U120 AO_IMMEDIATE256(0, 120, 0)
#define OP_U128 AO_IMMEDIATE256(0, 128, 0)
#define OP_U136 AO_IMMEDIATE256(0, 136, 0)
#define OP_U144 AO_IMMEDIATE256(0, 144, 0)
#define OP_U152 AO_IMMEDIATE256(0, 152, 0)
#define OP_U160 AO_IMMEDIATE256(0, 160, 0)
#define OP_U168 AO_IMMEDIATE256(0, 168, 0)
#define OP_U176 AO_IMMEDIATE256(0, 176, 0)
#define OP_U184 AO_IMMEDIATE256(0, 184, 0)
#define OP_U192 AO_IMMEDIATE256(0, 192, 0)
#define OP_U200 AO_IMMEDIATE256(0, 200, 0)
#define OP_U208 AO_IMMEDIATE256(0, 208, 0)
#define OP_U216 AO_IMMEDIATE256(0, 216, 0)
#define OP_U224 AO_IMMEDIATE256(0, 224, 0)
#define OP_U232 AO_IMMEDIATE256(0, 232, 0)
#define OP_U240 AO_IMMEDIATE256(0, 240, 0)
#define OP_U248 AO_IMMEDIATE256(0, 248, 0)
#define OP_U256 AO_IMMEDIATE256(0, 256, 0)
/* instructions */