This doesn't actually change any behavior since RAX was being zeroed
anyway, but since we don't and almost certainly never will have a BIST
and the BIST is optional even in real hardware, we can drop it and
simplify initCPU a little further.
This reduces x86's initCPU function to just an invocation of
InitInterrupt's invoke.
Change-Id: I56b1aae2c1a738ef7ffabcf648dd7d0fb819d4e0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24187
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
void
initCPU(ThreadContext *tc, int cpuId)
{
- // This function is essentially performing a reset. The actual INIT
- // interrupt does a subset of this, so we'll piggyback on some of its
- // functionality.
- InitInterrupt init(0);
- init.invoke(tc);
-
- // Set integer register EAX to 0 to indicate that the optional BIST
- // passed. No BIST actually runs, but software may still check this
- // register for errors.
- tc->setIntReg(INTREG_RAX, 0);
+ InitInterrupt(0).invoke(tc);
}
void startupCPU(ThreadContext *tc, int cpuId)