Lines Matching refs:ptr
180 const u8 *ptr = header_start + 4; in init_unwind_table() local
193 || (void *)read_pointer(&ptr, end, header_start[1]) != table_start in init_unwind_table()
195 || read_pointer(&ptr, end, header_start[2]) <= 0 in init_unwind_table()
247 const u8 *ptr; in setup_unwind_table() local
285 ptr = (const u8 *)(fde + 2); in setup_unwind_table()
286 if (!read_pointer(&ptr, (const u8 *)(fde + 1) + *fde, in setup_unwind_table()
325 ptr = (const u8 *)(fde + 2); in setup_unwind_table()
326 header->table[n].start = read_pointer(&ptr, in setup_unwind_table()
526 } ptr; in read_pointer() local
530 ptr.p8 = *pLoc; in read_pointer()
533 if (end < (const void *)(ptr.p16u + 1)) in read_pointer()
536 value = get_unaligned((u16 *) ptr.p16s++); in read_pointer()
538 value = get_unaligned((u16 *) ptr.p16u++); in read_pointer()
542 if (end < (const void *)(ptr.p32u + 1)) in read_pointer()
545 value = get_unaligned(ptr.p32s++); in read_pointer()
547 value = get_unaligned(ptr.p32u++); in read_pointer()
555 if (end < (const void *)(ptr.pul + 1)) in read_pointer()
557 value = get_unaligned((unsigned long *)ptr.pul++); in read_pointer()
561 value = ptrType & DW_EH_PE_signed ? get_sleb128(&ptr.p8, end) in read_pointer()
562 : get_uleb128(&ptr.p8, end); in read_pointer()
563 if ((const void *)ptr.p8 > end) in read_pointer()
581 *pLoc = ptr.p8; in read_pointer()
588 const u8 *ptr = (const u8 *)(cie + 2); in fde_pointer_type() local
589 unsigned version = *ptr; in fde_pointer_type()
594 if (*++ptr) { in fde_pointer_type()
600 if (*ptr != 'z') in fde_pointer_type()
604 aug = (const void *)ptr; in fde_pointer_type()
605 ptr = memchr(aug, 0, end - ptr); in fde_pointer_type()
606 if (ptr == NULL) in fde_pointer_type()
609 ++ptr; /* skip terminator */ in fde_pointer_type()
610 get_uleb128(&ptr, end); /* skip code alignment */ in fde_pointer_type()
611 get_sleb128(&ptr, end); /* skip data alignment */ in fde_pointer_type()
613 version <= 1 ? (void) ++ptr : (void)get_uleb128(&ptr, end); in fde_pointer_type()
614 len = get_uleb128(&ptr, end); /* augmentation length */ in fde_pointer_type()
616 if (ptr + len < ptr || ptr + len > end) in fde_pointer_type()
619 end = ptr + len; in fde_pointer_type()
621 if (ptr >= end) in fde_pointer_type()
625 ++ptr; in fde_pointer_type()
628 signed ptrType = *ptr++; in fde_pointer_type()
630 if (!read_pointer(&ptr, end, ptrType) in fde_pointer_type()
631 || ptr > end) in fde_pointer_type()
636 return *ptr; in fde_pointer_type()
692 } ptr; in processCFI() local
704 for (ptr.p8 = start; result && ptr.p8 < end;) { in processCFI()
705 switch (*ptr.p8 >> 6) { in processCFI()
709 opcode = *ptr.p8++; in processCFI()
716 state->loc = read_pointer(&ptr.p8, end, in processCFI()
724 result = ptr.p8 < end in processCFI()
725 && advance_loc(*ptr.p8++, state); in processCFI()
728 value = *ptr.p8++; in processCFI()
729 value += *ptr.p8++ << 8; in processCFI()
731 result = ptr.p8 <= end + 2 in processCFI()
737 result = ptr.p8 <= end + 4 in processCFI()
738 && advance_loc(*ptr.p32++, state); in processCFI()
741 value = get_uleb128(&ptr.p8, end); in processCFI()
744 get_uleb128(&ptr.p8, end), state); in processCFI()
747 value = get_uleb128(&ptr.p8, end); in processCFI()
749 get_uleb128(&ptr.p8, end), state); in processCFI()
752 value = get_uleb128(&ptr.p8, end); in processCFI()
754 get_sleb128(&ptr.p8, end), state); in processCFI()
757 value = get_uleb128(&ptr.p8, end); in processCFI()
759 get_sleb128(&ptr.p8, end), state); in processCFI()
767 set_rule(get_uleb128(&ptr.p8, end), Nowhere, 0, in processCFI()
772 value = get_uleb128(&ptr.p8, end); in processCFI()
775 get_uleb128(&ptr.p8, end), state); in processCFI()
779 if (ptr.p8 == state->label) { in processCFI()
785 state->stack[state->stackDepth++] = ptr.p8; in processCFI()
809 state->cfa.reg = get_uleb128(&ptr.p8, end); in processCFI()
813 state->cfa.offs = get_uleb128(&ptr.p8, end); in processCFI()
818 state->cfa.reg = get_uleb128(&ptr.p8, end); in processCFI()
821 state->cfa.offs = get_sleb128(&ptr.p8, end) in processCFI()
826 state->cfa.reg = get_uleb128(&ptr.p8, end); in processCFI()
832 get_uleb128(&ptr.p8, end); in processCFI()
835 value = get_uleb128(&ptr.p8, end); in processCFI()
838 (uleb128_t) 0 - get_uleb128(&ptr.p8, in processCFI()
851 result = advance_loc(*ptr.p8++ & 0x3f, state); in processCFI()
855 value = *ptr.p8++ & 0x3f; in processCFI()
856 set_rule(value, Memory, get_uleb128(&ptr.p8, end), in processCFI()
861 set_rule(*ptr.p8++ & 0x3f, Nowhere, 0, state); in processCFI()
865 if (ptr.p8 > end) in processCFI()
871 return result && ptr.p8 == end && (targetLoc == 0 || ( in processCFI()
884 const u8 *ptr = NULL, *end = NULL; in arc_unwind() local
938 ptr = hdr + 4; in arc_unwind()
940 if (tableSize && read_pointer(&ptr, end, hdr[1]) in arc_unwind()
942 && (i = read_pointer(&ptr, end, hdr[2])) > 0 in arc_unwind()
943 && i == (end - ptr) / (2 * tableSize) in arc_unwind()
944 && !((end - ptr) % (2 * tableSize))) { in arc_unwind()
947 ptr + (i / 2) * (2 * tableSize); in arc_unwind()
955 ptr = cur - tableSize; in arc_unwind()
960 && (startLoc = read_pointer(&ptr, in arc_unwind()
961 ptr + tableSize, in arc_unwind()
964 fde = (void *)read_pointer(&ptr, in arc_unwind()
965 ptr + in arc_unwind()
973 ptr = (const u8 *)(fde + 2); in arc_unwind()
978 && read_pointer(&ptr, in arc_unwind()
985 startLoc + read_pointer(&ptr, in arc_unwind()
1009 ptr = (const u8 *)(fde + 2); in arc_unwind()
1010 startLoc = read_pointer(&ptr, in arc_unwind()
1019 startLoc + read_pointer(&ptr, in arc_unwind()
1030 state.cieEnd = ptr; /* keep here temporarily */ in arc_unwind()
1031 ptr = (const u8 *)(cie + 2); in arc_unwind()
1034 if ((state.version = *ptr) != 1) in arc_unwind()
1036 else if (*++ptr) { in arc_unwind()
1038 if (*ptr == 'z') { in arc_unwind()
1039 while (++ptr < end && *ptr) { in arc_unwind()
1040 switch (*ptr) { in arc_unwind()
1056 if (ptr >= end || *ptr) in arc_unwind()
1059 ++ptr; in arc_unwind()
1063 state.codeAlign = get_uleb128(&ptr, end); in arc_unwind()
1065 state.dataAlign = get_sleb128(&ptr, end); in arc_unwind()
1066 if (state.codeAlign == 0 || state.dataAlign == 0 || ptr >= end) in arc_unwind()
1070 state.version <= 1 ? *ptr++ : get_uleb128(&ptr, in arc_unwind()
1079 uleb128_t augSize = get_uleb128(&ptr, end); in arc_unwind()
1081 ptr += augSize; in arc_unwind()
1083 if (ptr > end || retAddrReg >= ARRAY_SIZE(reg_info) in arc_unwind()
1091 state.cieStart = ptr; in arc_unwind()
1092 ptr = state.cieEnd; in arc_unwind()
1097 uleb128_t augSize = get_uleb128(&ptr, end); in arc_unwind()
1099 if ((ptr += augSize) > end) in arc_unwind()
1157 if (!processCFI(ptr, end, pc, ptrType, &state) in arc_unwind()