Age | Commit message (Collapse) | Author |
|
Allow some loads that update the base register to use just two micro-ops. three
micro-ops are only used if the destination register matches the offset register
or the PC is the destination regsiter. If the PC is updated it needs to be
the last micro-op otherwise O3 will mispredict.
|
|
access is disabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is to avoid condition code based dependences from effectively serializing
instructions when the instruction doesn't actually use them.
|
|
|
|
|
|
|
|
|
|
|
|
When decrementing, the higher addressed half of a double word is at a 4 byte
smaller displacement.
|
|
|
|
after.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Do this by setting the delayed commit flag for all but the last microop.
|
|
There were four bugs in these instructions. First, the loaded value was being
stored into a floating point register as floating point, changing the value as
it was transfered. Second, the meaning of the "up" bit had been reversed.
Third, the statically sized microop array wasn't bit enough for all possible
inputs. It's now dynamically sized and should always be big enough. Fourth,
the offset was stored as an unsigned 8 bit value. Negative offsets would look
like moderately large positive offsets.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|