gpt4 book ai didi

android - Android 没有 qsort_r(或如何禁用强制 Thumb 在 Android ARM 代码中使用 CLZ)

转载 作者:行者123 更新时间:2023-11-29 00:33:29 25 4
gpt4 key购买 nike

我想做的(高级):在 Android 上使用 qsort_r。

没有默认实现。所以我从 BSD 拿了一个。不幸的是,它需要 fls 功能,这在 Android 上也不可用。因此,我获取了 Apple Open Source Libc 库并将 ARM 实现复制到一个内联程序集中。现在我明白了:

Assembler messages:
Error: selected processor does not support Thumb mode `clz r3,r0'
Error: cannot honor width suffix -- `rsb r0,r3,#32'

AFAIR ARM-6 在 Thumb 模式下不支持它。那么如何为这个文件强制使用非 Thumb 模式,或者纯 C 实现是否可用于 fls?

(天哪,为什么我要玩这么低的游戏才能拥有 qsort_r ...)

最佳答案

在您的 Android.mk 文件中,这里介绍了如何设置以编译代码的 thumb、arm 和 neon 版本。汇编语言源文件在makefile中需要将“S”大写,但实际名称不需要大写。后缀“.arm”和“.arm.neon”仅出现在 makefile 中,而不是名称的一部分(例如,下面的文件名为 main.c、main_asm.s、test.c 和 test_asm.s)。

LOCAL_ARM_MODE := arm  # remove this if you want thumb mode
LOCAL_ARM_NEON := true # remove this if you want armv5 mode

# this flag will allow neon intrinsics in your C files
LOCAL_CFLAGS := -mfpu=neon -march=armv7

LOCAL_SRC_FILES := \
main.c.arm \
test.c.arm.neon \
main_asm.S.arm \
test_asm.S.arm.neon \

关于android - Android 没有 qsort_r(或如何禁用强制 Thumb 在 Android ARM 代码中使用 CLZ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033017/

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