Lines Matching refs:fde
215 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *);
219 unsigned long start, fde; member
239 v = e1->fde; in swap_eh_frame_hdr_table_entries()
240 e1->fde = e2->fde; in swap_eh_frame_hdr_table_entries()
241 e2->fde = v; in swap_eh_frame_hdr_table_entries()
250 const u32 *fde; in setup_unwind_table() local
268 if (tableSize & (sizeof(*fde) - 1)) in setup_unwind_table()
271 for (fde = table->address, n = 0; in setup_unwind_table()
272 tableSize > sizeof(*fde) && tableSize - sizeof(*fde) >= *fde; in setup_unwind_table()
273 tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) { in setup_unwind_table()
274 const u32 *cie = cie_for_fde(fde, table); in setup_unwind_table()
285 ptr = (const u8 *)(fde + 2); in setup_unwind_table()
286 if (!read_pointer(&ptr, (const u8 *)(fde + 1) + *fde, in setup_unwind_table()
293 (const u8 *)(fde + 1) + *fde); in setup_unwind_table()
317 for (fde = table->address, tableSize = table->size, n = 0; in setup_unwind_table()
319 tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) { in setup_unwind_table()
321 const u32 *cie = (const u32 *)(fde[1]); in setup_unwind_table()
323 if (fde[1] == 0xffffffff) in setup_unwind_table()
325 ptr = (const u8 *)(fde + 2); in setup_unwind_table()
327 (const u8 *)(fde + 1) + in setup_unwind_table()
328 *fde, in setup_unwind_table()
330 header->table[n].fde = (unsigned long)fde; in setup_unwind_table()
491 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *table) in cie_for_fde() argument
495 if (!*fde || (*fde & (sizeof(*fde) - 1))) in cie_for_fde()
498 if (fde[1] == 0xffffffff) in cie_for_fde()
501 if ((fde[1] & (sizeof(*fde) - 1))) in cie_for_fde()
506 cie = (u32 *) fde[1]; in cie_for_fde()
508 if (*cie <= sizeof(*cie) + 4 || *cie >= fde[1] - sizeof(*fde) in cie_for_fde()
883 const u32 *fde = NULL, *cie = NULL; in arc_unwind() local
915 && !(table->size & (sizeof(*fde) - 1))) { in arc_unwind()
964 fde = (void *)read_pointer(&ptr, in arc_unwind()
971 if (fde != NULL) { in arc_unwind()
972 cie = cie_for_fde(fde, table); in arc_unwind()
973 ptr = (const u8 *)(fde + 2); in arc_unwind()
979 (const u8 *)(fde + 1) + *fde, in arc_unwind()
986 (const u8 *)(fde + in arc_unwind()
988 *fde, ptrType); in arc_unwind()
990 fde = NULL; in arc_unwind()
992 fde = NULL; in arc_unwind()
994 if (fde == NULL) { in arc_unwind()
995 for (fde = table->address, tableSize = table->size; in arc_unwind()
996 cie = NULL, tableSize > sizeof(*fde) in arc_unwind()
997 && tableSize - sizeof(*fde) >= *fde; in arc_unwind()
998 tableSize -= sizeof(*fde) + *fde, in arc_unwind()
999 fde += 1 + *fde / sizeof(*fde)) { in arc_unwind()
1000 cie = cie_for_fde(fde, table); in arc_unwind()
1009 ptr = (const u8 *)(fde + 2); in arc_unwind()
1011 (const u8 *)(fde + 1) + in arc_unwind()
1012 *fde, ptrType); in arc_unwind()
1020 (const u8 *)(fde + in arc_unwind()
1022 *fde, ptrType); in arc_unwind()
1094 end = (const u8 *)(fde + 1) + *fde; in arc_unwind()
1100 fde = NULL; in arc_unwind()
1103 if (cie == NULL || fde == NULL) { in arc_unwind()