iphone - 为 iPhone 构建 ARM 汇编器 vorbis 解码器库 'Tremolo'

标签 iphone arm assembly vorbis

我正在尝试编译Tremolo对于iPhone。我已提取文件 bitwise.c bitwiseARM.s codebook.c dpen.s dsp.c Floor0.c Floor1.c Floor1ARM.s Floor_lookup.c framing.c info.capping0.c mdct.c mdctARM.s 杂项.c res012.c 进入新目标,添加以下自定义设置:

GCC_PREPROCESSOR_DEFINITIONS = _ARM_ASSEM_
GCC_C_LANGUAGE_STANDARD = gnu99
GCC_THUMB_SUPPORT = YES

...但是当 xcode 到达第一个汇编程序文件 bitwiseARM.s 时,我就会收到如下错误:

/tremolo/bitwiseARM.s:3:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:3:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:4:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:4:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:5:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:5:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:6:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:6:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:11:bad instruction `STMFD r13!,{r10,r11,r14}'
/tremolo/bitwiseARM.s:12:bad instruction `LDMIA r0,{r2,r3,r12}'
/tremolo/bitwiseARM.s:16:bad instruction `SUBS r2,r2,r1'
/tremolo/bitwiseARM.s:17:bad instruction `BLT look_slow'
/tremolo/bitwiseARM.s:19:bad instruction `LDR r10,[r3]'

我可以用谷歌搜索第一个错误,并将 .global 更改为 .globl 修复了第一个错误,但我仍然得到错误的指令,而且我不明白为什么。谷歌搜索 ARM 指令集,上述指令对我来说看起来有效。我尝试过切换拇指支持,并仅针对armv7而不是armv6进行构建,但都没有帮助。

最佳答案

正如 Igor 所说,苹果的汽油叉是古老的并且想要:

  • .global 替换为 .globl
  • 所有说明均小写
  • 替换“;”注释分隔符为“@”
  • 地址导入的 stub 标签

我为 Tremolo .s 文件编写了一个预处理器 awk 脚本,以使它们能够被 Xcode 接受,我将通过 Robin 贡献该脚本。

或者,您可以尝试this .

关于iphone - 为 iPhone 构建 ARM 汇编器 vorbis 解码器库 'Tremolo',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2904597/

相关文章:

iphone - 错误,在 bundle ""中找不到权利

ios - 在 UITableView 中创建子部分(Swift 2.3)

iphone - UITextView 不是自动换行

c - 为什么链接后我的可执行文件更大

assembly - 如何在 x86 ASM 中将整数转换为浮点值?

assembly - iretq 抛出 GP 错误

visual-studio - Visual Studio内联汇编直接跳转

iphone - 如何在 UIAlertView 中制作文本字段 "become first responder"

c++ - 一种简单编译的脚本语言

c++ - 高效地拆开并重新整理 ARM NEON 中的 8 条短裤