cpu: Fixed a bug on where to fetch the next instruction from
Figure out if the next instruction to fetch comes from the micro-op ROM or not. Otherwise, wrong instructions may be fetched.
This commit is contained in:
parent
a2d9aae3c3
commit
8f71e667b3
1 changed files with 5 additions and 0 deletions
|
@ -1,5 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2010-2014 ARM Limited
|
* Copyright (c) 2010-2014 ARM Limited
|
||||||
|
* Copyright (c) 2012-2013 AMD
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* The license below extends only to copyright in the software and shall
|
* The license below extends only to copyright in the software and shall
|
||||||
|
@ -1371,6 +1372,10 @@ DefaultFetch<Impl>::fetch(bool &status_change)
|
||||||
} while ((curMacroop || decoder[tid]->instReady()) &&
|
} while ((curMacroop || decoder[tid]->instReady()) &&
|
||||||
numInst < fetchWidth &&
|
numInst < fetchWidth &&
|
||||||
fetchQueue[tid].size() < fetchQueueSize);
|
fetchQueue[tid].size() < fetchQueueSize);
|
||||||
|
|
||||||
|
// Re-evaluate whether the next instruction to fetch is in micro-op ROM
|
||||||
|
// or not.
|
||||||
|
inRom = isRomMicroPC(thisPC.microPC());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (predictedBranch) {
|
if (predictedBranch) {
|
||||||
|
|
Loading…
Reference in a new issue