Lines Matching defs:encoding
88 // `{functionOffset, encoding}` sorted by ascending `functionOffset`.
89 // Adjacent entries with the same encoding can be folded to great
94 // compact_unwind_encoding.h for an overview of the format we are encoding
104 DO(compact_unwind_encoding_t, encoding) \
116 compact_unwind_encoding_t encoding;
180 // Note that if several adjacent functions have the same unwind encoding and
373 cu.encoding = target->modeDwarfEncoding | dwarfOffsetHint;
390 cu.encoding = support::endian::read32le(buf + cuLayout.encodingOffset);
416 cu.encoding |=
425 static bool canFoldEncoding(compact_unwind_encoding_t encoding) {
430 // large to encode in the compact unwind encoding. Instead it requires that
432 // encoding contains the offset to the nnnnnnnn value in the function in
436 // unwind info can't be folded if it's using this encoding since both
441 (encoding & UNWIND_MODE_MASK) == UNWIND_X86_64_MODE_STACK_IND) {
460 // we can fold adjacent CU entries with identical encoding+personality
482 // Fold adjacent entries with matching encoding+personality and without LSDA
507 cuEntries[*foldBegin].encoding == cuEntries[*foldEnd].encoding &&
518 canFoldEncoding(cuEntries[*foldEnd].encoding))
530 encodingFrequencies[cuEntries[idx].encoding]++;
539 // When frequencies match, secondarily sort on encoding
546 // Common encoding indexes are limited to 0..126, while encoding
551 // Create a map from encoding to common-encoding-table index
558 // (c) 8-bit compact-encoding-table index,
580 if (commonEncodingIndexes.count(cuPtr->encoding) ||
581 page.localEncodingIndexes.count(cuPtr->encoding)) {
585 page.localEncodings.emplace_back(cuPtr->encoding);
586 page.localEncodingIndexes[cuPtr->encoding] = n++;
597 // encodings, and we saturated the local encoding table early.
648 for (const auto &encoding : commonEncodings)
649 *i32p++ = encoding.first;
715 auto it = commonEncodingIndexes.find(cue.encoding);
717 it = page.localEncodingIndexes.find(cue.encoding);
736 *ep++ = cue.encoding;