Lines Matching refs:addr
37 uint64_t addr; member
86 uint64_t addr, in ir_disasm_add_symbol() argument
96 sym->addr = addr; in ir_disasm_add_symbol()
97 sym->end = (addr + size - 1); in ir_disasm_add_symbol()
106 if (sym->addr > node->addr) { in ir_disasm_add_symbol()
107 IR_ASSERT(sym->addr > (node->end)); in ir_disasm_add_symbol()
115 } else if (sym->addr < node->addr) { in ir_disasm_add_symbol()
124 IR_ASSERT(sym->addr == node->addr); in ir_disasm_add_symbol()
189 const char* ir_disasm_find_symbol(uint64_t addr, int64_t *offset) in ir_disasm_find_symbol() argument
193 if (addr < node->addr) { in ir_disasm_find_symbol()
195 } else if (addr > node->end) { in ir_disasm_find_symbol()
198 *offset = addr - node->addr; in ir_disasm_find_symbol()
296 static const char* ir_disasm_resolver(uint64_t addr, in ir_disasm_resolver() argument
301 void *a = (void*)(uintptr_t)(addr); in ir_disasm_resolver()
304 name = ir_disasm_find_symbol(addr, offset); in ir_disasm_resolver()
317 name = ir_disasm_find_symbol(addr, offset); in ir_disasm_resolver()
338 uint64_t addr; local
443 if ((addr = ir_disasm_branch_target(cs, insn))
447 if ((addr = ir_disasm_branch_target(cs, &(insn[i])))
449 && (addr >= (uint64_t)(uintptr_t)start && addr < (uint64_t)(uintptr_t)end)) {
450 ir_hashtab_add(&labels, (uint32_t)((uintptr_t)addr - (uintptr_t)start), -1);
452 } else if ((addr = ir_disasm_rodata_reference(cs, insn))) {
454 } else if ((addr = ir_disasm_rodata_reference(cs, &(insn[i])))) {
456 if (addr >= (uint64_t)(uintptr_t)end && addr < (uint64_t)(uintptr_t)orig_end) {
457 ir_hashtab_add(&labels, (uint32_t)((uintptr_t)addr - (uintptr_t)start), -1);
526 if ((addr = ir_disasm_rodata_reference(cs, insn))) {
528 if ((addr = ir_disasm_rodata_reference(cs, &(insn[i])))) {
530 if (addr >= (uint64_t)(uintptr_t)end && addr < (uint64_t)(uintptr_t)orig_end) {
531 entry = ir_hashtab_find(&labels, (uint32_t)((uintptr_t)addr - (uintptr_t)start));
553 } else if ((sym = ir_disasm_resolver(addr, &offset))) {
587 addr = 0;
590 addr = addr * 16 + (*r - '0');
592 addr = addr * 16 + (*r - 'A' + 10);
594 addr = addr * 16 + (*r - 'a' + 10);
602 addr = (uint32_t)(-(int64_t)addr);
604 if (addr >= (uint64_t)(uintptr_t)start && addr < (uint64_t)(uintptr_t)orig_end) {
605 entry = ir_hashtab_find(&labels, (uint32_t)((uintptr_t)addr - (uintptr_t)start));
616 } else if ((sym = ir_disasm_resolver(addr, &offset))) {