Lines Matching refs:cache

66 intern_fde (Dwarf_CFI *cache, const Dwarf_FDE *entry)
69 struct dwarf_cie *cie = __libdw_find_cie (cache, entry->CIE_pointer);
82 if (unlikely (read_encoded_value (cache, cie->fde_encoding,
84 || unlikely (read_encoded_value (cache, cie->fde_encoding & 0x0f,
122 struct dwarf_fde **tres = tsearch (fde, &cache->fde_tree, &compare_fde);
131 /* There is already an FDE in the cache that covers the same
133 the one in the cache for consistency. */
143 __libdw_fde_by_offset (Dwarf_CFI *cache, Dwarf_Off offset)
147 int result = INTUSE(dwarf_next_cfi) (cache->e_ident,
148 &cache->data->d, CFI_IS_EH (cache),
162 struct dwarf_fde *fde = intern_fde (cache, &entry.fde);
167 if (cache->next_offset == offset)
168 cache->next_offset = next_offset;
175 binary_search_fde (Dwarf_CFI *cache, Dwarf_Addr address)
177 const size_t size = 2 * encoded_value_size (&cache->data->d, cache->e_ident,
178 cache->search_table_encoding,
186 .d = { .d_buf = (void *) cache->search_table,
187 .d_size = cache->search_table_len }
192 .e_ident = cache->e_ident,
193 .datarel = cache->search_table_vaddr,
194 .frame_vaddr = cache->search_table_vaddr,
198 size_t l = 0, u = cache->search_table_entries;
205 const uint8_t *p = &cache->search_table[idx * size];
208 cache->search_table_encoding, &p,
219 cache->search_table_encoding, &p,
226 if (l < cache->search_table_entries)
231 (&dummy_cfi, cache->search_table_encoding, &p,
238 return fde - cache->frame_vaddr;
247 __libdw_find_fde (Dwarf_CFI *cache, Dwarf_Addr address)
252 struct dwarf_fde **found = tfind (&fde_key, &cache->fde_tree, &compare_fde);
257 if (cache->search_table != NULL)
259 Dwarf_Off offset = binary_search_fde (cache, address);
262 struct dwarf_fde *fde = __libdw_fde_by_offset (cache, offset);
281 Dwarf_Off last_offset = cache->next_offset;
283 int result = INTUSE(dwarf_next_cfi) (cache->e_ident,
284 &cache->data->d, CFI_IS_EH (cache),
285 last_offset, &cache->next_offset,
291 if (cache->next_offset == last_offset)
302 __libdw_intern_cie (cache, last_offset, &entry.cie);
307 struct dwarf_fde *fde = intern_fde (cache, &entry.fde);