Rizin
unix-like reverse engineering framework and cli tools
|
Go to the source code of this file.
Classes | |
struct | rz_arm_it_context_t |
Typedefs | |
typedef struct rz_arm_it_context_t | RzArmITContext |
Functions | |
RZ_API void | rz_arm_it_context_init (RzArmITContext *ctx) |
RZ_API void | rz_arm_it_context_fini (RzArmITContext *ctx) |
RZ_API void | rz_arm_it_update_block (RzArmITContext *ctx, cs_insn *insn) |
RZ_API void | rz_arm_it_update_nonblock (RzArmITContext *ctx, cs_insn *insn) |
RZ_API bool | rz_arm_it_apply_cond (RzArmITContext *ctx, cs_insn *insn) |
Tracking of Arm thumb IT blocks during disassembly. Note: all of this is really just a best guess approach.
Definition in file arm_it.h.
typedef struct rz_arm_it_context_t RzArmITContext |
RZ_API bool rz_arm_it_apply_cond | ( | RzArmITContext * | ctx, |
cs_insn * | insn | ||
) |
Apply any previously tracked IT condition to insn
Definition at line 87 of file arm_it.c.
References addr, cond, found, i, setup::idx, arm_cs_itblock_t::off, arm_cs_itcond_t::off, arm_cs_itblock_t::packed, arm_cs_itcond_t::packed, and ut64().
Referenced by anop32(), and disassemble().
RZ_API void rz_arm_it_context_fini | ( | RzArmITContext * | ctx | ) |
RZ_API void rz_arm_it_context_init | ( | RzArmITContext * | ctx | ) |
RZ_API void rz_arm_it_update_block | ( | RzArmITContext * | ctx, |
cs_insn * | insn | ||
) |
Signal a newly detected IT block insn
must be ARM_INS_IT
Definition at line 34 of file arm_it.c.
References ARM_INS_IT, cond, found, i, arm_cs_itblock_t::off, arm_cs_itblock_t::packed, rz_return_if_fail, RZ_STATIC_ASSERT, and rz_str_nlen().
Referenced by anop32(), and disassemble().
RZ_API void rz_arm_it_update_nonblock | ( | RzArmITContext * | ctx, |
cs_insn * | insn | ||
) |
Signal that a non-IT instruction was disassembled and clear any block at the same address.
Definition at line 70 of file arm_it.c.
References found, i, arm_cs_itblock_t::off, arm_cs_itblock_t::packed, and rz_return_if_fail.
Referenced by anop32(), and disassemble().