Definition at line 50 of file analysis_v810.c.
52 ut8 opcode, reg1, reg2, imm5,
cond;
53 ut16 word1, word2 = 0;
73 if (opcode >> 3 == 0x4) {
120 if (
REG1(word1) == 31) {
145 rz_strbuf_appendf(&
op->esil,
"r%u,r%u,*=,32,r%u,r%u,*,>>,r30,=",
232 rz_strbuf_appendf(&
op->esil,
"31,r%u,>>,?{,r%u,32,-,r%u,1,<<,--,<<,}{,0,},r%u,r%u,>>,|,r%u,=",
233 reg2, reg1, reg1, reg1, reg2, reg2);
241 rz_strbuf_appendf(&
op->esil,
"31,r%u,>>,?{,%u,32,-,%u,1,<<,--,<<,}{,0,},%u,r%u,>>,|,r%u,=",
242 reg2, (
ut8)imm5, (
ut8)imm5, (
ut8)imm5, reg2, reg2);
311 jumpdisp =
DISP26(word1, word2);
312 op->jump =
addr + jumpdisp;
331 jumpdisp =
DISP9(word1);
332 op->jump =
addr + jumpdisp;
static void update_flags(RzAnalysisOp *op, int flags)
static void clear_flags(RzAnalysisOp *op, int flags)
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags cmd
return memset(p, 0, total)
@ RZ_ANALYSIS_OP_TYPE_CMP
@ RZ_ANALYSIS_OP_TYPE_SUB
@ RZ_ANALYSIS_OP_TYPE_LOAD
@ RZ_ANALYSIS_OP_TYPE_MUL
@ RZ_ANALYSIS_OP_TYPE_JMP
@ RZ_ANALYSIS_OP_TYPE_AND
@ RZ_ANALYSIS_OP_TYPE_UJMP
@ RZ_ANALYSIS_OP_TYPE_SAR
@ RZ_ANALYSIS_OP_TYPE_TRAP
@ RZ_ANALYSIS_OP_TYPE_CALL
@ RZ_ANALYSIS_OP_TYPE_ADD
@ RZ_ANALYSIS_OP_TYPE_STORE
@ RZ_ANALYSIS_OP_TYPE_SHR
@ RZ_ANALYSIS_OP_TYPE_CJMP
@ RZ_ANALYSIS_OP_TYPE_DIV
@ RZ_ANALYSIS_OP_TYPE_MOV
@ RZ_ANALYSIS_OP_TYPE_SHL
@ RZ_ANALYSIS_OP_TYPE_NOT
@ RZ_ANALYSIS_OP_TYPE_RET
@ RZ_ANALYSIS_OP_TYPE_NOP
@ RZ_ANALYSIS_OP_TYPE_XOR
static ut16 rz_read_ble16(const void *src, bool big_endian)
RZ_API bool rz_strbuf_appendf(RzStrBuf *sb, const char *fmt,...) RZ_PRINTF_CHECK(2
#define cond(bop, top, mask, flags)
int v810_decode_command(const ut8 *instr, int len, struct v810_cmd *cmd)
#define DISP26(word1, word2)
References addr, rz_analysis_t::big_endian, clear_flags(), cmd, COND, cond, DISP26, DISP9, IMM5, len, memset(), OPCODE, REG1, REG2, RZ_ANALYSIS_OP_TYPE_ADD, RZ_ANALYSIS_OP_TYPE_AND, RZ_ANALYSIS_OP_TYPE_CALL, RZ_ANALYSIS_OP_TYPE_CJMP, RZ_ANALYSIS_OP_TYPE_CMP, RZ_ANALYSIS_OP_TYPE_DIV, RZ_ANALYSIS_OP_TYPE_IO, RZ_ANALYSIS_OP_TYPE_JMP, RZ_ANALYSIS_OP_TYPE_LOAD, RZ_ANALYSIS_OP_TYPE_MOV, RZ_ANALYSIS_OP_TYPE_MUL, RZ_ANALYSIS_OP_TYPE_NOP, RZ_ANALYSIS_OP_TYPE_NOT, RZ_ANALYSIS_OP_TYPE_OR, RZ_ANALYSIS_OP_TYPE_RET, RZ_ANALYSIS_OP_TYPE_SAR, RZ_ANALYSIS_OP_TYPE_SHL, RZ_ANALYSIS_OP_TYPE_SHR, RZ_ANALYSIS_OP_TYPE_STORE, RZ_ANALYSIS_OP_TYPE_SUB, RZ_ANALYSIS_OP_TYPE_TRAP, RZ_ANALYSIS_OP_TYPE_UJMP, RZ_ANALYSIS_OP_TYPE_XOR, rz_read_ble16(), rz_strbuf_appendf(), SIGN_EXT_T5, st32, st8, update_flags(), V810_ADD, V810_ADD_IMM5, V810_ADDI, V810_AND, V810_ANDI, V810_BCOND, V810_CMP, V810_CMP_IMM5, V810_COND_E, V810_COND_GE, V810_COND_GT, V810_COND_H, V810_COND_L, V810_COND_LE, V810_COND_LT, V810_COND_N, V810_COND_NE, V810_COND_NH, V810_COND_NL, V810_COND_NONE, V810_COND_NOP, V810_COND_NV, V810_COND_P, V810_COND_V, v810_decode_command(), V810_DIV, V810_DIVU, V810_FLAG_CY, V810_FLAG_OV, V810_FLAG_S, V810_FLAG_Z, V810_INB, V810_INH, V810_INW, V810_JAL, V810_JMP, V810_JR, V810_LDB, V810_LDH, V810_LDSR, V810_LDW, V810_MOV, V810_MOV_IMM5, V810_MOVEA, V810_MOVHI, V810_MUL, V810_MULU, V810_NOT, V810_OR, V810_ORI, V810_OUTB, V810_OUTH, V810_OUTW, V810_RETI, V810_SAR, V810_SAR_IMM5, V810_SHL, V810_SHL_IMM5, V810_SHR, V810_SHR_IMM5, V810_STB, V810_STH, V810_STSR, V810_STW, V810_SUB, V810_TRAP, V810_XOR, and V810_XORI.