fdr/teddy: dump confirm lit load

This commit is contained in:
Justin Viiret 2017-06-26 11:15:29 +10:00 committed by Matthew Barr
parent f762fb9af6
commit cbcc46444b

View File

@ -45,7 +45,7 @@
#error No dump support!
#endif
using std::unique_ptr;
using namespace std;
namespace ue2 {
@ -60,6 +60,17 @@ bool fdrIsTeddy(const FDR *fdr) {
return !getFdrDescription(engine);
}
static
void dumpLitIndex(const FDRConfirm *fdrc, FILE *f) {
const u32 *lit_index = getConfirmLitIndex(fdrc);
u32 num_lits = 1U << fdrc->nBits;
u32 lits_used = count_if(lit_index, lit_index + num_lits,
[](u32 idx) { return idx != 0; });
fprintf(f, " load %u/%u (%0.2f%%)\n", lits_used, num_lits,
(double)lits_used / (double)(num_lits)*100);
}
static
void dumpConfirms(const void *fdr_base, u32 conf_offset, u32 num_confirms,
FILE *f) {
@ -71,6 +82,7 @@ void dumpConfirms(const void *fdr_base, u32 conf_offset, u32 num_confirms,
fprintf(f, " mult 0x%016llx\n", fdrc->mult);
fprintf(f, " nbits %u\n", fdrc->nBits);
fprintf(f, " groups 0x%016llx\n", fdrc->groups);
dumpLitIndex(fdrc, f);
}
}