288c288,298
< tc->setContextId(system->registerThreadContext(tc));
---
> /** This is so that contextId and cpuId match where there is a
> * 1cpu:1context relationship. Otherwise, the order of registration
> * could affect the assignment and cpu 1 could have context id 3, for
> * example. We may even want to do something like this for SMT so that
> * cpu 0 has the lowest thread contexts and cpu N has the highest, but
> * I'll just do this for now
> */
> if (number_of_threads == 1)
> tc->setContextId(system->registerThreadContext(tc, _cpuId));
> else
> tc->setContextId(system->registerThreadContext(tc));