First post, by ih8registrations
Browsing the output, noticed in the while below, enabled doesn't appear to be changed unless it's possible by handler(todo)?, so the check could be pulled out of the loop with "if (enabled) while (needed>done) {.."
function _ZN12MixerChannel3MixEj called 782296 returned 100% blocks executed 100%^M
782296: 146:void MixerChannel::Mix(Bitu _needed) {^M
782296: 147: needed=_needed;^M
1126140: 148: while (enabled && needed>done) {^M
343844: 149: Bitu todo=needed-done;^M
343844: 150: todo*=freq_add;^M
343844: 151: if (todo & MIXER_REMAIN) {^M
141971: 152: todo=(todo >> MIXER_SHIFT) + 1;^M
-: 153: } else {^M
201873: 154: todo=(todo >> MIXER_SHIFT);^M
-: 155: }^M
343844: 156: handler(todo);^M
-: 157: }^M
To use gcov, export CFLAGS and CXXFLAGS with "-fprofile-arcs -ftest-coverage" with no optimization, then configure. Try to compile, it will bork on INLINEs, remove them(about 5-6 of them,) until it successfully compiles. Run dosbox and whatever game, then run "gcov mixer.cpp." The output will be in mixer.cpp.gcov, etc.