21264/EV68A Hardware Reference Manual
PALcode Restrictions and Guidelines D–21
Restriction 41: MTPR ITB_TAG, MTPR ITB_PTE Must be in the Same Fetch Block
D.37 Restriction 41: MTPR ITB_TAG, MTPR ITB_PTE Must be in the
Same Fetch Block
Write the ITB_TAG and ITB_PTE registers in the same fetch block. This avoids a
mispredict path write of invalid data to the ITB_TAG register.
D.38 Restriction 42: Updating VA_CTL, CC_CTL, or CC IPRs
When writing to the VA_CTL, CC_CTL, or CC IPRs, write the same value twice in dis-
tinct fetch blocks. This ensures that the instruction is retired before any mispredict from
a younger branch, DTB miss trap, or hw_ret_stall.
D.39 Restriction 43: No Trappable Instructions Along with
HW_MTPR
There cannot be any mispredictable/trappable instructions together with an HW_MTPR
in the current fetch block.
D.40 Restriction 44: Not Applicable to the 21264/EV68A
D.41 Restriction 45: No HW_JMP or JMP Intructions in PALcode
Do not include HW_JMP or JMP instructions in PALcode; use HW_RET instead.
HW_JMP always predicts in PALmode, and may mispredict to random cache blocks.
This may cause speculative code to begin executing in PALmode and may have unex-
pected side effects such as I/O stream references.
HW_RET always predicts in native mode, and when it mispredicts, it avoids specula-
tive execution in PALmode.