27 if (AddressSize != 4 && AddressSize != 8)
32 uint32_t prev_offset = *offset_ptr;
36 if (*offset_ptr != prev_offset + 2 * AddressSize) {
42 Entries.push_back(entry);
48 for (
int i = 0, n = Entries.size(); i != n; ++i) {
49 const char *format_str = (AddressSize == 4
50 ?
"%08x %08" PRIx64
" %08" PRIx64
"\n"
51 :
"%08x %016" PRIx64
" %016" PRIx64
"\n");
52 OS <<
format(format_str, Offset, Entries[i].StartAddress,
53 Entries[i].EndAddress);
55 OS <<
format(
"%08x <End of list>\n", Offset);
59 uint64_t Address)
const {
60 for (
int i = 0, n = Entries.size(); i != n; ++i) {
61 if (Entries[i].isBaseAddressSelectionEntry(AddressSize))
62 BaseAddress = Entries[i].EndAddress;
bool isEndOfListEntry() const
format_object1< T > format(const char *Fmt, const T &Val)
bool extract(DataExtractor data, uint32_t *offset_ptr)
void dump(raw_ostream &OS) const
bool containsAddress(uint64_t BaseAddress, uint64_t Address) const