int tms320_op(RAnal * anal, RAnalOp * op, ut64 addr, const ut8 * buf, int len) { TMS_ANAL_OP_FN aop = tms320_c55x_op; if (anal->cpu && r_str_casecmp(anal->cpu, "c64x") == 0) { #ifdef CAPSTONE_TMS320C64X_H return tms320c64x_analop (anal, op, addr, buf, len); #else return -1; #endif } if (anal->cpu && r_str_casecmp(anal->cpu, "c54x") == 0) { aop = tms320_c54x_op; } else if (anal->cpu && r_str_casecmp(anal->cpu, "c55x") == 0) { aop = tms320_c55x_op; } else if (anal->cpu && r_str_casecmp(anal->cpu, "c55x+") == 0) { aop = tms320_c55x_plus_op; } return aop (anal, op, addr, buf, len); }
static int tms320_disassemble(RAsm *a, RAsmOp *op, const ut8 *buf, int len) { if (a->cpu && r_str_casecmp (a->cpu, "c54x") == 0) { tms320_f_set_cpu (&engine, TMS320_F_CPU_C54X); } else if (a->cpu && r_str_casecmp(a->cpu, "c55x+") == 0) { tms320_f_set_cpu (&engine, TMS320_F_CPU_C55X_PLUS); } else if (a->cpu && r_str_casecmp(a->cpu, "c55x") == 0) { tms320_f_set_cpu (&engine, TMS320_F_CPU_C55X); } else { #if CAPSTONE_HAS_TMS320C64X if (a->cpu && !r_str_casecmp (a->cpu, "c64x")) { return tms320c64x_disassemble (a, op, buf, len); } #endif r_asm_op_set_asm (op, "unknown asm.cpu"); return op->size = -1; } op->size = tms320_dasm (&engine, buf, len); r_asm_op_set_asm (op, engine.syntax); return op->size; }