Lines Matching refs:Sector
67 /* Number of entries in hash table of each sector. This needs to be a prime
80 // HTTno is the Sector->htt hash table index. Must be the same type as TTEno.
83 /* Because each sector contains a hash table of TTEntries, we need to
84 specify the maximum allowable loading, after which the sector is
88 /* The sector is deemed full when this many entries are in it. */
110 SECno from_sNo; /* sector number */
111 TTEno from_tteNo; /* TTE number in given sector */
122 SECno to_sNo; /* sector number */
123 TTEno to_tteNo; /* TTE number in given sector */
178 the corresponding host code (must be in the same sector!)
179 This is a pointer into the sector's tc (code) area. */
199 eclass[] entries in the containing Sector. Those entries in
210 // of this TTEntry in the containing Sector's tt array.
225 1. erased (as part of the oldest sector cleanup) when the
226 youngest sector is full.
255 translation E (in case of sector full). VG_(tt_tc_do_chaining)
322 /* Finally, a sector itself. Each sector contains an array of
327 If the sector is not in use, all three pointers are NULL and
334 precisely when this sector's translation table (tt) reaches
358 the containing sector's tt array, which in turn should point
369 Sector;
375 youngest sector is recorded, and new translations are put into that
376 sector. When it fills up, we move along to the next sector and
379 first time, and are full, we then re-use the oldest sector,
382 When running, youngest sector should be between >= 0 and <
386 static Sector sectors[MAX_N_SECTORS];
394 /* A list of sector numbers, in the order which they should be
406 which sector it's in. Consequently we must be very careful to
480 Sector* s = §ors[sNo];
682 Bool HostExtent__is_dead (const HostExtent* hx, const Sector* sec)
687 " start 0x%p len %u sector %d ttslot %u" \
726 const Sector* sec = §ors[sno];
808 // stay sane -- the patch point (dst) is in this sector's code cache
822 // The from code might have been discarded due to sector re-use
826 "host code %p not found (discarded? sector recycled?)"
1065 this sector. Returns used location in eclass array. */
1068 UInt addEClassNo ( /*MOD*/Sector* sec, EClassNo ec, TTEno tteno )
1109 void upd_eclasses_after_add ( /*MOD*/Sector* sec, TTEno tteno )
1132 static Bool sanity_check_eclasses_in_sector ( const Sector* sec )
1144 /* Basic checks on this sector */
1284 /* Check each sector number only appears once */
1308 Sector* sec;
1355 static Bool isValidSector ( SECno sector )
1357 if (sector == INV_SNO || sector >= n_sectors)
1426 Sector* sec;
1436 /* Sector has never been used before. Need to allocate tt and
1449 VG_(dmsg)("transtab: " "allocate sector %d\n", sno);
1500 VG_(message)(Vg_DebugMsg, "TT/TC: initialise sector %d\n", sno);
1504 /* Sector has been used before. Dump the old contents. */
1506 VG_(dmsg)("transtab: " "recycle sector %d\n", sno);
1520 if (DEBUG_TRANSTAB) VG_(printf)("QQQ unlink-entire-sector: %d START\n",
1546 if (DEBUG_TRANSTAB) VG_(printf)("QQQ unlink-entire-sector: %d END\n",
1578 VG_(message)(Vg_DebugMsg, "TT/TC: recycle sector %d\n", sno);
1595 sector.
1635 /* Try putting the translation in this sector. */
1646 /* No. So move on to the next sector. Either it's never been
1649 empty, hence throwing out the oldest sector. */
1657 "declare sector %d full "
1752 VG_(printf)("... hx.start 0x%p hx.len %u sector %d ttslot %d\n",
1821 break; /* not found in this sector */
1829 sector. */
1832 /* Not found in any sector. */
1877 static void delete_tte ( /*MOD*/Sector* sec, SECno secNo, TTEno tteno,
1946 Bool delete_translations_in_sector_eclass ( /*MOD*/Sector* sec, SECno secNo,
1987 Bool delete_translations_in_sector ( /*MOD*/Sector* sec, SECno secNo,
2010 Sector* sec;