gpt4 book ai didi

iPhone 开发者 : problem with inline asm

转载 作者:行者123 更新时间:2023-12-03 21:00:20 27 4
gpt4 key购买 nike

我阅读了处理此类问题的不同主题,但我仍然没有答案。这是我的问题:

在我的头文件中,我有这个:

  int cl, ch, _a = a, _b = b;\
__asm__ ("smull %0, %1, %2, %3\n"
"mov %0, %0, lsr %4\n"
"orr %0, %0, %1, lsl %5\n"
: "=&r" (cl), "=&r" (ch)
: "r" (_a), "r" (_b), "i" (r), "i" (32-(r)));
cl; })

在我的项目设置中,我验证了以下选项已被选中 link text

但是我有一个控制台错误:

{标准输入}:242:所选处理器不支持 -- smull r0,r1,r2,r3'
{标准输入}:244:需要未移位的寄存器 --
orr r0,r0,r1,lsl#20'

你能帮我吗?

最佳答案

你正在编译arm的文件吗?默认情况下,iPhone 代码是针对拇指编译的(除非您正在进行 float 学运算,否则通常更可取)。你列出的ASM是arm。您将需要设置使用该 header 的任何文件来编译为arm,因为GCC不允许您在单个编译单元内切换后端。您可以通过取消选择“GCC 4.x 代码生成”下的“Compile for Thumb”来更改它。

将整个项目编译为arm很可能会对内存使用和代理性能产生重大(负面)影响。通过宏在 header 中包含 ASM 在 iPhone 上会变得非常困惑。一般来说,您最好将所有 ASM 放在一个文件中,并将该文件编译为arm,但对于只有 3 个指令序列的情况来说,这可能也不值得。

关于iPhone 开发者 : problem with inline asm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1062671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com