大佬教程收集整理的这篇文章主要介绍了xcode – 如何在Mac上使用AES-NI内在函数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Linux中,我只使用-msse4和-maes标志调用gcc并包含wmmintrin.h标头,我可以调用SSE内在函数,如_mm_add_epi64(a,b)或AES-NI内在函数,如_mm_aesenc_si128(a,b),一切正常精细.
在Mac上,它更难,因为Apple用llvm-gcc替换了GCC,而llvm-gcc还不支持AES-NI.所以SSE4内在函数工作正常,但不是AEs.
即使是对AES指令的内联汇编调用也无法识别.
英特尔在他们的网站上有lots of AES example code,但它仅适用于Linux和Windows.
我注意到llvm-gcc也不支持RDRAND指令,但英特尔通过使用扩展为原始机器字节代码的C宏为此提供了解决方法. (@L_673_13@)
遗憾的是,AES-NI指令没有类似的解决方法,可能是因为指令有参数,不能作为静态机器代码字节进行求值.
在Mac上使用AES-NI的程序确实存在,包括Apple自己的File Vault,因此必须有一些方法可行!
为了使我的问题具体化,我将如何使用最新的Mac gcc-llvm 4.2(Mountain Lion xcode 4.4.1中的最新公开发布)进行以下简单调用:
__m128i A,B,c; /* A,C initialized here... */ A = _mm_aesenc_si128(B,C);
谢谢你的帮助!
以上是大佬教程为你收集整理的xcode – 如何在Mac上使用AES-NI内在函数?全部内容,希望文章能够帮你解决xcode – 如何在Mac上使用AES-NI内在函数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。