It's important to distinguish between M5 making sense, and the code it's executing making sense. We shouldn't (and I hope don't) have any asserts that check conditions controllable from the simulated code since those should generally just cause a fault and may, as you point out, be mispeculated. It's fine to check that M5 is internally consistent, though. This is supposed to work in all the CPU models and as far as I know generally does. M5's CPU models should, to the first order, correctly do whatever whacky, nonsensical things the instruction memory tells it to do without complaining. If you've found a case where it doesn't (which has happened before) please let us know so we can fix it.

Gabe

Quoting Min Kyu Jeong <[email protected]>:

Is it possible that the speculatively fetched instructions can cause
programming assertions to fail? Until a branch is resolved, whatever (even
non-instructions) in the predicted path could be fetched and decoded. Can't
assertions on instruction sanity fail for those?

I am trying to make O3 CPU model for ARM working. In many cases the first
instruction is a branch followed by a interrupt vector table. I was
wondering if such cases exist for other CPU models and if it is, handled
how.

Thanks,

Min



_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to