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.