Comment by ridiculous_fish
5 years ago
If the PREFETCH_EX flag was never passed, why did the branch predictor speculatively execute xdcbt? That branch would never be taken, so it ought not to be predicted.
Was it a static branch prediction hint? I know PowerPC has that. If so, could it have fixed by just flipping the hint bit?
From the article:
Instead simple branch predictors typically squish together a bunch of address bits, maybe some branch history bits as well, and index into an array of two-bit entries. Thus, the branch predict result is affected by other, unrelated branches, leading to sometimes spurious predictions.
Ahh thanks, shame on me for not reading to the end.
Should’ve let the full thing execute before speculating on the results ;)