C++ 如何在LLVM的内联asm中引用标签?

C++ 如何在LLVM的内联asm中引用标签?,c++,c,assembly,inline-assembly,C++,C,Assembly,Inline Assembly,我有一个内联汇编指令,如下所示,它将标签地址加载到寄存器中。该标签在代码中的其他地方定义(可以在 ASM < /代码>或作为C++标签中定义)。我可以使用GCCasm goto扩展程序集访问标签,但是LLVM没有asm goto,我想知道如何从内联程序集指令中引用在其他地方定义的标签 以下是内联asm指令: asm ("leaq MYLABEL(%rip), %rax"); 如果前沿LLVM是一个选项,感谢您的宝贵意见。事实上,我希望它与以前的版本一起工作。所以这不是我的选择。但我不知道,我很

我有一个内联汇编指令,如下所示,它将标签地址加载到寄存器中。该标签在代码中的其他地方定义(可以在<代码> ASM < /代码>或作为C++标签中定义)。我可以使用GCC
asm goto
扩展程序集访问标签,但是LLVM没有
asm goto
,我想知道如何从内联程序集指令中引用在其他地方定义的标签

以下是内联asm指令:

asm ("leaq MYLABEL(%rip), %rax");

如果前沿LLVM是一个选项,感谢您的宝贵意见。事实上,我希望它与以前的版本一起工作。所以这不是我的选择。但我不知道,我很感谢你的评论。你可以尝试在asm块中发出标签。。。但这是一种黑客行为,不推荐使用。相反,请描述您试图解决的问题。让我知道您的问题。描述和我写的一样。这是一个基准代码,不是一个真正的程序,这正是我想要的。代码本身就是一个小黑客程序。如果不使用asm goto,就无法可靠地完成这项工作,至少在一般情况下是这样。您可能可以访问另一个asm语句中的标签,但您不能用它做很多事情。跳过去。例如,它不太可能可靠地工作。但即使只是将其地址加载到寄存器中,也会遇到一些问题,比如编译器出于任何原因决定生成第二个asm语句的多个实例。你真的需要描述一下你到底想做什么,因为几乎可以肯定有更好的方法。如果前沿LLVM是一种选择,谢谢你的宝贵意见。事实上,我希望它与以前的版本一起工作。所以这不是我的选择。但我不知道,我很感谢你的评论。你可以尝试在asm块中发出标签。。。但这是一种黑客行为,不推荐使用。相反,请描述您试图解决的问题。让我知道您的问题。描述和我写的一样。这是一个基准代码,不是一个真正的程序,这正是我想要的。代码本身就是一个小黑客程序。如果不使用asm goto,就无法可靠地完成这项工作,至少在一般情况下是这样。您可能可以访问另一个asm语句中的标签,但您不能用它做很多事情。跳过去。例如,它不太可能可靠地工作。但即使只是将其地址加载到寄存器中,也会遇到一些问题,比如编译器出于任何原因决定生成第二个asm语句的多个实例。你真的需要描述你真正想要做的事情,因为几乎肯定有更好的方法。