我正在尝试了解机器代码对齐的原理。我有一个可以在运行时生成机器代码的汇编器实现。我在每个分支目标上使用 16 字节对齐,但看起来这不是最佳选择,因为我注意到如果我删除对齐,有时相同的代码会运行得更快。我认为这与缓存线宽度有关,因此某些命令被缓存线切断,因此 CPU 会遇到停顿。因此,如果在一个地方插入了一些对齐字节,它会将指令移动到某个地方,进一步通过缓存边界线......
我希望实现一个自动对齐程序,它可以将代码作为一个整体处理并根据CPU的规范(缓存线宽,32/64位等)插入对齐...
有人可以提供有关此程序的一些提示吗?例如,目标 CPU 可以是 Intel Core i7 CPU 64 位平台。
谢谢你。