我有一个反复运行的循环。该循环内的逻辑取决于程序所处的模式。为了提高性能,我认为可以初始化一个函数指针数组functionPtr [],这样就可以调用运行正确逻辑的functionPtrmode。循环将在许多周期内保持相同的模式(这个数字是未知的,但有数千个)。该程序仅在 intel x64 机器上运行,不需要可移植性。
我希望 CPU 会利用分支预测,但由于我的分支不是有条件的(在程序集级别上),但分支的位置确实取决于变量(functionPtr+mode)。CPU 是否会尝试计算 functionPtr+mode 并在流水线中开始拉入这些指令?