我想在Delphi中使用Intel TSX
同步扩展。但是AFAIK Delphi不支持SSE 4.2
之后的任何扩展程序集,那么可以这样做吗?以及如何去检测这种功能。
自2012年以来,Haswell处理器支持此功能。
对于TSX的HLE部分,可能使用REPE / REPNE前缀;如果Delphi不允许您在“错误的”上下文中使用它,则DB F3 / DB F2应该这样做。对于RTM部分,可能只是DB的所有内容。
TSX和RTM均可通过CPUID进行检测。 HLE甚至不需要检测-由于REPE / REPNE前缀在这种情况下在HLE之前是空操作,因此它会自动回退。
无论如何,我不确定现在是否有用,甚至忽略了迟到4年的答案,因为如今TSX可能已经无用了-请参阅我的问题Has Hardware Lock Elision gone forever due to Spectre Mitigation?