arm64相关内容

使用交叉编译器时如何确定配置的主机值

一般问题:如果我使用交叉编译器,我如何知道在运行 configure 时应该给出的“--host"选项的值? 具体:我正在为 arm64 arch 使用交叉编译器.要使用的正确“--host"值是什么? 解决方案 如果我使用交叉编译器,我如何知道在运行 ./configure 时应该给出的 --host 选项的值? 讨论工具链创建时必须区分三台机器 构建机器,构建工具 ..
发布时间:2021-11-17 22:42:53 其他开发

NSInteger 和 NSUInteger 在混合 64 位/32 位环境中

我在 NSLog/NSAssert 等调用中有相当数量的字符串格式说明符,它们使用 %d 和 %u 和 NSInteger (= int on 32bit) 和 NSUInteger (= unsigned int on 32bit) 类型分别. 当将应用程序转换为 64 位时,这会发出警告(当然),因为 %ld %lu 预计现在变成了 long 和 unsigned长类型. 简单地转 ..
发布时间:2021-11-17 22:42:50 移动开发

为什么整数除以 -1(负一)会导致 FPE?

我的任务是解释 C 代码(在 x86 上运行)的一些看似奇怪的行为.我可以轻松完成其他所有事情,但这个让我很困惑. 代码片段 1 输出 -2147483648 int a = 0x80000000;int b = a/-1;printf("%d\n", b); 代码片段 2 不输出任何内容,并给出一个浮点异常 int a = 0x80000000;int b = -1;int c = ..
发布时间:2021-11-17 22:42:47 其他开发

iOS 应用程序提交:缺少 64 位支持

我昨天发送了一个应用程序进行审核,没有问题.然后我意识到我需要做的修复很少(将地图的最大缩放级别从 19 更改为 18,没有别的),所以我从 iTunes Connect 中删除了二进制文件,并尝试重新提交. 现在我收到了这个警告: 我不明白为什么,因为我的架构是: 架构:armv7 有效架构:armv6、armv7、armv7s、arm64 该应用程序在模拟器中运行良好 ..
发布时间:2021-11-17 22:42:44 移动开发

切换实现;手臂;汇编器;aarch64;arm64

我对在 aarch64 汇编器上实现“switch"运算符的方法很感兴趣.在 arm32 平台上,我使用了类似 ldr pc, [pc, ta, LSL#2]nop//对齐.int .L.case1.int .L.case2....int .L.caseN 但由于 64 位版本对 'pc' 寄存器的使用有很多限制,这样的实现不再起作用. 似乎最简单的方法是使用对比较和分支操作,如 c ..
发布时间:2021-11-17 22:41:41 其他开发

AArch64 上 sqrt 函数的性能

出于学术原因,我将在 AArch64 上测试 sqrt 函数的性能.单浮点sqrtf函数的代码: fsqrt s0, s0退 双浮点sqrt函数的代码: fsqrt d0, d0退 我指的是此处 FSQRT 的理论延迟:http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Software_Optimiza ..
发布时间:2021-11-17 22:40:22 其他开发

可以从 EL0 刷新 arm64 缓存吗?

我正在阅读一篇学术论文,其中指出“ARM 架构还包括驱逐缓存行的指令.但是,这些指令只能在处理器处于提升特权模式时使用." 这是真的吗?我一直在搜索 ARM 文档,但在“ARM Cortex-A 系列程序员指南 for ARMv8-A"第 11.5 章 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/B ..
发布时间:2021-11-17 22:29:32 其他开发

ARM STLR 内存排序语义

我正在为 ARM STLR 的确切语义而苦苦挣扎. 根据文档,它具有发布语义.所以如果你有 STLR 存储,你会得到: [StoreStore][LoadStore]X=r1 其中 X 是内存,r1 是一些寄存器. 问题在于发布存储和获取加载,无法提供顺序一致性: [StoreStore][LoadStore]X=r1r2=Y[加载加载][加载存储] 在上述情况下,允许重新排序 ..
发布时间:2021-11-17 22:27:35 其他开发

Aarch64 上同时存在不同大小的页面

根据架构概览文档 Aarch64 支持 4k 和 64k 页面.一些 CPU 还支持 16k 页.查看地址转换方案的详细信息,我得出的结论是,此类 CPU 不支持同时存在不同大小的页面(与 x86_64 不同,它允许这样做).我说得对吗? 解决方案 您将两种不同但相关的事物混为一谈 - 页面大小与粒度. 在 AArch64 中,您有 3 种可能的翻译粒度可供选择,每一种都会产生一组不 ..
发布时间:2021-11-17 22:27:18 其他开发

ARMv8 - 在 64 位操作系统上运行传统的 32 位应用程序

通过阅读 ARMv8 手册,我有以下问题可以帮助理解大局. 可以使用旧版 32 位应用程序.(ARMv7 或更早版本)在 ARMv8 操作系统上按原样运行? 如果遗留应用程序需要为 ARMv8 重建并假设我将应用程序重建为 32 位 (Aarch32),这是否需要 32 位操作系统底层支持?(了解这里的寻址机制如何工作很有趣.) 请尽可能提供参考. PS:我的目标是支持 A ..
发布时间:2021-11-17 22:27:06 服务器开发

在 aarch64 上运行 32 位精灵

我已经在 qemu 64 位 ARM 上安装了 Debian (遵循本教程) uname -a Linux 测试 4.9.0-7-arm64 #1 SMP Debian 4.9.110-1 (2018-07-05) aarch64 GNU/Linux 我正在尝试在其上运行 32 位 elf 文件,但有些工作不能: bash: ./file_2: 无法执行二进制文件:Exec 格式错 ..
发布时间:2021-11-17 22:19:20 其他开发

使用单个 aarch64 指令获取余数?

我正在为 ARM8 (aarch64) 编写一些汇编代码.我想做一个除法并使用获得的余数进行进一步计算.在 x86 中,当我使用'div',我知道我的剩余部分保存在 RDX 中.我的问题是 - 是否有与 aarch64 指令集中相同的指令?我知道 'udiv' 和 'sdiv' 做无符号和有符号的除法,并得到商数.是否有一条指令可以给我余数?(我想要 c 中的 % 模运算符).我知道我可以使用代数 ..
发布时间:2021-11-17 22:18:07 其他开发

aarch64;Load-Acquire Exclusive vs Load Exclusive

LDAXR 和有什么区别?LDXR 指令超出 AArch64 指令集? 从参考手册来看,它们看起来完全一样(除了“获取"这个词): LDAXR - Load-Acquire Exclusive Register:从由基址寻址的存储器加载字到 Wt.记录物理地址为独占访问. LDXR - 加载独占寄存器:从内存中加载一个字,由基址寻址到 Wt.记录物理地址为独占访问. 谢谢 ..
发布时间:2021-11-17 22:16:01 其他开发

Arm64 Linux 页表遍历

目前我正在开发一些与研究相关的程序,我需要找到一些特定地址的pte.我的开发环境是 Juno r1 板(CPU 是 A53 和 A57),它运行 arm64 Linux 内核. 我使用了一些典型的页表遍历代码,如下所示: int find_physical_pte(void *addr){pgd_t *pgd;pud_t *pud;pmd_t *pmd;pte_t *ptep;无符号长长地 ..
发布时间:2021-11-17 22:11:17 服务器开发

arm64 和 armhf 有什么区别?

Raspberry Pi Type 3 有 64 位 CPU,但它的架构不是 arm64 而是 armhf.arm64 和 armhf 有什么区别? 解决方案 armhf 代表“arm hard float",是给 一个 debian 端口,用于具有硬件浮点支持的 arm 处理器 (armv7+). 以beaglebone black为例: :~$ dpkg --print-arc ..
发布时间:2021-11-17 22:04:07 服务器开发

ARMv8 浮点输出内联汇编

对于两个整数相加,我写: int sum;asm volatile("add %0, x3, x4" : "=r"(sum) : :); 我怎样才能用两个浮点数来做到这一点?我试过了: 浮点数;asm volatile("fadd %0, s3, s4" : "=r"(sum) : :); 但它给了我一个错误: 错误:操作数 1 应该是 SIMD 向量寄存器 -- `fadd x0, ..
发布时间:2021-11-17 22:01:22 其他开发