3

我想在Intel TSXDelphi 中使用同步扩展。但是 AFAIK Delphi 不支持过去的任何扩展程序集SSE 4.2,所以可以以其他方式完成吗?以及如何去检测这样的特征。

自 2012 年以来,Haswell 处理器支持此功能。

4

1 回答 1

0

对于 TSX 的 HLE 部分,可能使用 REPE/REPNE 前缀;如果 Delphi 不允许您在“错误”的上下文中使用它,DB F3 / DB F2 应该这样做。对于 RTM 部分,可能只是 DB 所有的东西。

TSX 和 RTM 都可以通过 CPUID 检测到。HLE 甚至不需要检测 - 由于 REPE/REPNE 前缀在 HLE 之前的上下文中是无操作的,它会自动回退。

无论如何,我不确定它现在是否有用,即使忽略了 4 年迟到的答案,因为 TSX 现在可能已经没用了 - 请参阅我的问题Has Hardware Lock Elision never leave ever due to Spectre Mitigation?

于 2020-04-20T07:06:30.523 回答