Assembly 汇编程序消息:没有这样的指令xbegin

Assembly 汇编程序消息:没有这样的指令xbegin,assembly,clang,llvm,Assembly,Clang,Llvm,我正在使用llvm-3.4、gcc-4.8基于统一的别名分析构建一组工具。 我收到一系列错误,表明: 汇编程序消息:没有这样的指令:xbegin、xend、xabort等 操作系统是ubuntu服务器12.04 知道发生了什么事吗?谢谢。这些指令是伪指令,不是所有汇编程序的标准指令 我知道它们在MacOS下使用,但通常不在Linux下使用 可能您无法在Linux下编译代码。您需要使用GCC选项-mrtm编译代码 这些是TSX指令,但我不确定发生了什么。我切换到ubuntu服务器13.10,没有出

我正在使用llvm-3.4、gcc-4.8基于统一的别名分析构建一组工具。 我收到一系列错误,表明: 汇编程序消息:没有这样的指令:xbegin、xend、xabort等 操作系统是ubuntu服务器12.04


知道发生了什么事吗?谢谢。

这些指令是伪指令,不是所有汇编程序的标准指令

我知道它们在MacOS下使用,但通常不在Linux下使用


可能您无法在Linux下编译代码。

您需要使用GCC选项
-mrtm
编译代码

这些是TSX指令,但我不确定发生了什么。我切换到ubuntu服务器13.10,没有出现类似的问题。仍然不知道为什么…这会影响C/C++中是否允许使用内部函数。这个问题是关于汇编程序甚至不能识别asm指令,这不依赖于编译器选项。(使用
gcc-v
查看编译器/汇编器/链接器命令行,注意
-march=skylake
-mrtm
不向汇编器命令行添加额外选项)。我遇到了同样的问题,我的gcc版本在Redhat7.1上是5.3.0。错误是“错误:没有这样的指令,'xbegin.L52'”。TSX只在Skylake和一些后期Broadwell CPU上工作。英特尔在发现一个bug后,不得不通过Haswell的微码更新来禁用它: