diff options
Diffstat (limited to 'src/kern/freebsd')
-rw-r--r-- | src/kern/freebsd/events.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/kern/freebsd/events.cc b/src/kern/freebsd/events.cc index 2f4ceb056..15954d672 100644 --- a/src/kern/freebsd/events.cc +++ b/src/kern/freebsd/events.cc @@ -65,7 +65,13 @@ UDelayEvent::process(ThreadContext *tc) SkipFuncEvent::process(tc); - PseudoInst::quiesceNs(tc, time); + // Currently, only ARM full-system simulation uses UDelayEvents to skip + // __delay and __loop_delay functions. One form involves setting quiesce + // time to 0 with the assumption that quiesce will not happen. To avoid + // the quiesce handling in this case, only execute the quiesce if time > 0. + if (time > 0) { + PseudoInst::quiesceNs(tc, time); + } } } // namespace FreeBSD |