首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mac OS X上使用AVX/pclmulqdq

如何在Mac OS X上使用AVX/pclmulqdq
EN

Stack Overflow用户
提问于 2012-03-23 21:40:36
回答 5查看 8.9K关注 0票数 23
代码语言:javascript
复制
/var/folders/ps/sfjmtgx5771_qbqnh4c9xclr0000gn/T//ccEAWWhd.s:16:no such
instruction: `pclmulqdq $0, %xmm0,%xmm1'

我已经使用macports安装了binutils,但问题仍然存在。我怎么知道gcc用的是哪个汇编器?XCode汇编程序可能不支持它,但binutils汇编程序应该支持它。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-13 14:40:38

为我解决这个问题的一个更简单的解决方案是将-Wa,-q添加到编译器标志。从as (版本1.38)的手册页:

-q将使用clang(1)集成汇编程序,而不是基于GNU的系统汇编程序。

就像-Wl将参数传递给链接器一样,-Wa部件将它从编译器驱动程序传递给汇编器。

票数 24
EN

Stack Overflow用户

发布于 2012-04-14 04:31:06

Mac OS X不支持GNU汇编程序(GAS)。

为了使用AVX,我必须:

使用MacPorts;

  • Compile 程序来安装GCC (例如,GCC -mp-4.7)

奇怪的是,虽然clang汇编程序支持AVX,但clang编译器无法识别AVX instrinsics,这迫使上面丑陋的变通方法。

票数 13
EN

Stack Overflow用户

发布于 2013-05-14 02:53:36

as的内置版本已过时。(在OS X 10.8.3中)

/usr/libexec/as/x86_64/as -v

Apple Inc.版本cctools-839,GNU汇编程序版本1.38

似乎还没有针对OS的gas版本。(参见:Installing GNU Assembler in OSX)

通过脚本hack使用clang汇编程序(如Conrado PLG所指出的)是一种变通方法。但是,它确实需要管理员权限并覆盖OS X捆绑的可执行文件,这会导致它被与OS X的未来版本捆绑在一起的新版本(但可能已过时)覆盖。

那么有没有更好的变通办法呢?

正如在Why does cross gcc invoke native 'as'?上提到的,似乎可以指定使用哪个" As "-executable和标志(使用"-specs=...")。对于这个问题,一个更清晰的解决方法似乎是传递正确的"-specs“标志来调用clang汇编程序。这不需要管理员权限,也不会有被OS X更新破坏的风险。如何执行此操作的确切细节仍有待查明(有人吗?)。

如果这个变通方法变得足够容易和透明,那么可以保证使用这些设置作为may端口的默认设置(或者至少是变体),以使其支持"-march=native“等。有这样的前缀设置(“-- configure.args - as =${prefix}/bin/ as”,如https://trac.macports.org/browser/trunk/dports/lang/gcc48/Portfile中所示),可以替换。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9840207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档