diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2011-07-30 23:22:53 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2011-07-30 23:22:53 -0700 |
commit | a42c6ae48d6b3a896a5a0dfc77c8594d2f2936e2 (patch) | |
tree | f429ede40a51d896b8ecfe9b076bc75134c9c785 /ext/libelf | |
parent | b4152e250da1999d7e495d5501f029f5370e01ed (diff) | |
download | gem5-a42c6ae48d6b3a896a5a0dfc77c8594d2f2936e2.tar.xz |
O3: Fix corner case squashing into the microcode ROM.
When fetching from the microcode ROM, if the PC is set so that it isn't in the
cache block that's been fetched the CPU will get stuck. The fetch stage
notices that it's in the ROM so it doesn't try to fetch from the current PC.
It then later notices that it's outside of the current cache block so it skips
generating instructions expecting to continue once the right bytes have been
fetched. This change lets the fetch stage attempt to generate instructions,
and only checks if the bytes it's going to use are valid if it's really going
to use them.
Diffstat (limited to 'ext/libelf')
0 files changed, 0 insertions, 0 deletions