ff32fb2f25aa3ba19de5dc72c887de49f50304c5
19 #define OPID_OPERANDS 8
27 struct opid_opcode opcode
;
28 uint8_t operands
[OPID_OPERANDS
];
37 #define OPID_OPERAND_SIGNED (UINT64_C(1) << UINT64_C(0))
38 #define OPID_OPERAND_GPR (UINT64_C(1) << UINT64_C(1))
39 #define OPID_OPERAND_FPR (UINT64_C(1) << UINT64_C(2))
40 #define OPID_OPERAND_PAIR (UINT64_C(1) << UINT64_C(3))
41 #define OPID_OPERAND_CR3 (UINT64_C(1) << UINT64_C(4))
42 #define OPID_OPERAND_CR5 (UINT64_C(1) << UINT64_C(5))
43 #define OPID_OPERAND_NONZERO (UINT64_C(1) << UINT64_C(6))
44 #define OPID_OPERAND_ADDRESS (UINT64_C(1) << UINT64_C(7))
47 struct opid_record
const *record
;
48 struct opid_operand operands
[OPID_OPERANDS
];
51 #define opid_foreach_operand(ctx, operand) \
53 (((operand = &(ctx)->operands[id]), 1) && \
54 ((id != OPID_OPERANDS) && (ctx)->record->operands[id])); \
55 operand = &(ctx)->operands[++id])
58 opid_disassemble(struct opid_ctx
*ctx
, uint64_t insn
);
60 struct opid_record
const *
61 opid_lookup_insn(uint64_t insn
);