ARM Cortex-m3的llsr和llsl(64位移位)

ARM Cortex-m3的llsr和llsl(64位移位),arm,64-bit,bit-manipulation,bit-shift,cortex-m3,Arm,64 Bit,Bit Manipulation,Bit Shift,Cortex M3,我正试图交叉编译一些代码(tweetnacl)到ARMNone eabi(裸机cortex-m3) 它具有执行64位旋转的功能: static u64 R(u64 x,int c) { return (x >> c) | (x << (64 - c)); } 我找不到关于这些例行程序的太多信息。auselen提供了对定义这些功能的正确文档的参考。我正在使用的工具链版本: arm-none-eabi-gcc (Sourcery G++ Lite 2010q1-188) 4

我正试图交叉编译一些代码(tweetnacl)到ARMNone eabi(裸机cortex-m3)

它具有执行64位旋转的功能:

static u64 R(u64 x,int c) { return (x >> c) | (x << (64 - c)); }
我找不到关于这些例行程序的太多信息。auselen提供了对定义这些功能的正确文档的参考。我正在使用的工具链版本:

arm-none-eabi-gcc (Sourcery G++ Lite 2010q1-188) 4.4.1
此工具链中是否存在实现?哪些可能的标志可能导致生成过程排除任何编译器提供的实现



解决方案:原来我需要在libgcc中链接。a

请参见的
4.2 long-long-helper函数
,了解它们是什么以及如何定义的


这些帮助函数是由编译器(不是标准库)提供的,在您的情况下,调用编译器时可能参数错误,或者安装未完成(路径错误、文件丢失等)。

谢谢auselen,我已经更新了我的问题。您知道哪些参数会导致这些不存在吗?原来我没有链接到libgcc.a,谢谢!
arm-none-eabi-gcc (Sourcery G++ Lite 2010q1-188) 4.4.1