59 const xed_operand_t *op0 = xed_inst_operand(xi, 0);
60 xed_operand_enum_t op0_name = xed_operand_name(op0);
62 if ((op0_name == XED_OPERAND_REG0)) {
65 xed_reg_enum_t regname = xed_decoded_inst_get_reg(xptr, op0_name);
66 char *next_ins =
nextInsn(iarg, xptr);
67 if (x86_isReg_BP(regname)) {
79 }
else if (x86_isReg_SP(regname)) {
81 unsigned int memops = xed_decoded_inst_number_of_memory_operands(xptr);
85 xed_reg_enum_t basereg =
86 xed_decoded_inst_get_base_reg(xptr, mem_op_index);
88 if (x86_isReg_SP(basereg)) {
95 xed_decoded_inst_get_memory_displacement(xptr, mem_op_index);
#define HW_NEW_STATE(state, set)
#define UWI_RECIPE(btuwi)
#define HW_BP_OVERWRITTEN
bitree_uwi_t * canonical_interval
static char * nextInsn(uint32_t *insn)
#define HW_SP_DECREMENTED
highwatermark_t highwatermark
unwind_interval * new_ui(char *startaddr, sp_ty_t sp_ty, ra_ty_t ra_ty, int sp_arg, int ra_arg)
#define HW_TEST_STATE(state, is_set, is_clear)
unwind_interval * process_lea(xed_decoded_inst_t *xptr, const xed_inst_t *xi, interval_arg_t *iarg)
bitree_uwi_t unwind_interval