log reason for running in interpreted mode when state flags don't match

This commit is contained in:
Fabian 2022-11-05 19:07:51 -06:00
parent 43271295c0
commit af32a64a3e
3 changed files with 21 additions and 0 deletions

View file

@ -32,6 +32,10 @@ const print_stats = {
"RUN_INTERPRETED_PAGE_HAS_ENTRY_AFTER_PAGE_WALK",
"RUN_INTERPRETED_NEAR_END_OF_PAGE",
"RUN_INTERPRETED_DIFFERENT_STATE",
"RUN_INTERPRETED_DIFFERENT_STATE_CPL3",
"RUN_INTERPRETED_DIFFERENT_STATE_FLAT",
"RUN_INTERPRETED_DIFFERENT_STATE_IS32",
"RUN_INTERPRETED_DIFFERENT_STATE_SS32",
"RUN_INTERPRETED_MISSED_COMPILED_ENTRY_RUN_INTERPRETED",
"RUN_INTERPRETED_STEPS",
"RUN_FROM_CACHE",

View file

@ -2867,6 +2867,19 @@ pub unsafe fn cycle_internal() {
}
else {
profiler::stat_increment(RUN_INTERPRETED_DIFFERENT_STATE);
let s = *state_flags;
if c.state_flags.cpl3() != s.cpl3() {
profiler::stat_increment(RUN_INTERPRETED_DIFFERENT_STATE_CPL3);
}
if c.state_flags.has_flat_segmentation() != s.has_flat_segmentation() {
profiler::stat_increment(RUN_INTERPRETED_DIFFERENT_STATE_FLAT);
}
if c.state_flags.is_32() != s.is_32() {
profiler::stat_increment(RUN_INTERPRETED_DIFFERENT_STATE_IS32);
}
if c.state_flags.ssize_32() != s.ssize_32() {
profiler::stat_increment(RUN_INTERPRETED_DIFFERENT_STATE_SS32);
}
}
},
}

View file

@ -19,6 +19,10 @@ pub enum stat {
RUN_INTERPRETED_PAGE_HAS_ENTRY_AFTER_PAGE_WALK,
RUN_INTERPRETED_NEAR_END_OF_PAGE,
RUN_INTERPRETED_DIFFERENT_STATE,
RUN_INTERPRETED_DIFFERENT_STATE_CPL3,
RUN_INTERPRETED_DIFFERENT_STATE_FLAT,
RUN_INTERPRETED_DIFFERENT_STATE_IS32,
RUN_INTERPRETED_DIFFERENT_STATE_SS32,
RUN_INTERPRETED_MISSED_COMPILED_ENTRY_RUN_INTERPRETED,
RUN_INTERPRETED_STEPS,