log reason for running in interpreted mode when state flags don't match
This commit is contained in:
parent
43271295c0
commit
af32a64a3e
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
||||
|
|
Loading…
Reference in a new issue