在哪里可以找到针对ARM的clang / llvm支持的完整内在函数列表?我可以挖掘的所有东西都与NEON有关,但如果我想做一些像扫描或旋转的事情呢?
附带问题:clang或llvm支持内在函数吗?
答案 0 :(得分:1)
我从来没有能够找到这方面的文件。但是,您可以在此处的clang代码中找到声明(通过搜索" clang __builtin_arm"找到)
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsARM.def?view=markup
答案 1 :(得分:1)
如果你打算进入ARM asm,我真的建议你不要使用任何内在函数。这似乎是一个好主意,只需混合你的C和asm。但是,在实际操作中,只需在ASM中编写一个完整的函数并将其称为普通的C函数,就可以省去时间和麻烦。您可以创建一个虚拟C函数,然后让clang为它生成ASM,作为参数传入和返回的示例。我写了更多细节和一个工作示例iOS xcode项目here以及可用于执行不同ASM实现的时序的代码。另请注意,虽然ARM代码适用于不同版本的ARM CPU,但较新的64位ARM内容却完全不同。