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;
425 "gpr r25 .32 100 0\n"
426 "gpr r26 .32 104 0\n"
427 "gpr r27 .32 108 0\n"
428 "gpr r28 .32 112 0\n"
429 "gpr r29 .32 116 0\n"
430 "gpr r30 .32 120 0\n"
431 "gpr r31 .32 124 0\n"
434 "gpr psw .32 132 0\n"
435 "gpr np .1 132.16 0\n"
436 "gpr ep .1 132.17 0\n"
437 "gpr ae .1 132.18 0\n"
438 "gpr id .1 132.19 0\n"
439 "flg cy .1 132.28 0\n"
440 "flg ov .1 132.29 0\n"
441 "flg s .1 132.30 0\n"
442 "flg z .1 132.31 0\n";
449 .desc =
"V810 code analysis plugin",
458 #ifndef RZ_PLUGIN_INCORE
static void update_flags(RzAnalysisOp *op, int flags)
static char * get_reg_profile(RzAnalysis *analysis)
static int v810_op(RzAnalysis *analysis, RzAnalysisOp *op, ut64 addr, const ut8 *buf, int len, RzAnalysisOpMask mask)
RZ_API RzLibStruct rizin_plugin
static void clear_flags(RzAnalysisOp *op, int flags)
RzAnalysisPlugin rz_analysis_plugin_v810
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)
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
@ 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_append(RzStrBuf *sb, const char *s)
RZ_API bool rz_strbuf_appendf(RzStrBuf *sb, const char *fmt,...) RZ_PRINTF_CHECK(2
static struct sockaddr static addrlen static backlog const void static flags void flags
#define cond(bop, top, mask, flags)
int v810_decode_command(const ut8 *instr, int len, struct v810_cmd *cmd)
#define DISP26(word1, word2)
ut64(WINAPI *w32_GetEnabledXStateFeatures)()