Lines Matching refs:cs
205 static uint64_t ir_disasm_branch_target(csh cs, const cs_insn *insn) in ir_disasm_branch_target() argument
210 if (cs_insn_group(cs, insn, X86_GRP_JUMP)) { in ir_disasm_branch_target()
218 if (cs_insn_group(cs, insn, ARM64_GRP_JUMP) in ir_disasm_branch_target()
231 static uint64_t ir_disasm_rodata_reference(csh cs, const cs_insn *insn) in ir_disasm_rodata_reference() argument
245 if (cs_insn_group(cs, insn, X86_GRP_JUMP)) { in ir_disasm_rodata_reference()
339 csh cs; local
359 ret = cs_open(CS_ARCH_X86, CS_MODE_64, &cs);
365 ret = cs_open(CS_ARCH_X86, CS_MODE_32, &cs);
371 cs_option(cs, CS_OPT_DETAIL, CS_OPT_ON);
373 cs_option(cs, CS_OPT_SYNTAX, CS_OPT_SYNTAX_INTEL);
375 cs_option(cs, CS_OPT_SYNTAX, CS_OPT_SYNTAX_ATT);
378 ret = cs_open(CS_ARCH_ARM64, CS_MODE_ARM, &cs);
383 cs_option(cs, CS_OPT_DETAIL, CS_OPT_ON);
384 cs_option(cs, CS_OPT_SYNTAX, CS_OPT_SYNTAX_ATT);
441 insn = cs_malloc(cs);
442 while (cs_disasm_iter(cs, &cs_code, &cs_size, &cs_addr, insn)) {
443 if ((addr = ir_disasm_branch_target(cs, insn))
445 count = cs_disasm(cs, start, (uint8_t*)end - (uint8_t*)start, (uintptr_t)start, 0, &insn);
447 if ((addr = ir_disasm_branch_target(cs, &(insn[i])))
452 } else if ((addr = ir_disasm_rodata_reference(cs, insn))) {
454 } else if ((addr = ir_disasm_rodata_reference(cs, &(insn[i])))) {
480 while (cs_disasm_iter(cs, &cs_code, &cs_size, &cs_addr, insn)) {
526 if ((addr = ir_disasm_rodata_reference(cs, insn))) {
528 if ((addr = ir_disasm_rodata_reference(cs, &(insn[i])))) {
753 cs_close(&cs);