arm64相关内容

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

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

QEMU托管启用MTE的内核不会引发故障

我正在尝试在QEMU环境(运行启用MTE的内核)上编译和测试ARMv8.5 MTE扩展. 我尝试在托管启用了MTE的内核的QEMU上引发错误.我运行的是简单的C代码,由于MTE会引起故障,但运行得很好(附加日志和信息).我将代码与相关的clang MTE相关标志交叉编译到x86机器上的arm64. 在 5.4.0-1040-gcp#43-Ubuntu SMP上编译Fri Mar 19 ..
发布时间:2021-05-28 19:18:56 服务器开发

使用Skaffold构建多架构docker映像

我已经能够获得两项出色的技术来独立工作. 脚手架 BuildX 不幸的是,我不知道如何同时使用它们. 我目前正在笔记本电脑(amd)上进行构建和测试,然后部署到运行Kubernetes的Raspberri Pi 4(arm64). 要使其正常工作,我可以使用类似的东西: docker buildx build --platform linux/amd64,linux/ ..
发布时间:2021-04-09 19:30:13 其他开发

使用aarch64/arm64上的环绕将float转换为int

我正在尝试完全匹配在x86_64和aarch64/arm64上运行的应用程序之间的行为.但是,它们在超出整数的可能范围时将浮点数转换为整数的方式有所不同. 请考虑以下示例: #include#include无效类型转换(浮点值){printf("uint32_t(%.2f)=%u \ n",值,uint32_t(值));}int main(){演员 ..
发布时间:2021-04-09 19:30:10 C/C++开发

使用cmake为armv7和arm64编译libical

我已经经历了为armv7编译libical v1.0的各种解决方案,但是github上可用的最新libical库似乎已经转向cmake: https://github.com/libical/libical 有人可以指导我如何将其编译为适用于iOS和Mac(一个胖静态库)的方法吗?我已经可以在Mac上编译它,但是不知道如何为armv7和arm64进行相同的编译.谢谢! 解决方案 ..
发布时间:2021-04-09 19:30:04 移动开发

无法保留512MB或更多的CMA

我试图在具有64GB内存的ARM64盒上保留512MB CMA内存,并且在Linux启动期间会收到"cma:无法保留512MiB"错误消息.保留384MB可以正常工作.如果您需要更多信息,请告诉我.我将不胜感激. [ESL_Start_OS]:[644L]开始跳转Linux内核在物理CPU 0x10000上引导Linux初始化cgroup子系统cpuset初始化cgroup子系统cpu初始化c ..
发布时间:2021-04-09 19:30:01 其他开发

gcc/汇编程序无法识别aarch64 gicv3寄存器

在安装了aarch64-linux-gnu-的Ubuntu 17.04上,编译以下汇编代码: #code.s_开始:mrs x0,icc_igrpen0_el1 与 aarch64-linux-gnu-as code.s 出现以下错误: as.s:汇编程序消息:as.s:3:错误:操作数2处的系统寄存器名称未知或缺失-`mrs x0,icc_igrpen0_el1' 但是 ..
发布时间:2021-04-09 19:29:58 其他开发

我们如何在Apple平台的AArch64程序集中的一行上编写多个语句?

我正在将一些Arm64汇编语言移植到M1. 其中一些是通过C预处理生成的,其中单个 #define 宏会生成多个用分号分隔的语句. 不幸的是,在M1上,汇编器将分号视为注释字符. 例如: #define DEFUN(NAME)\.globl _ ## NAME;\.palign 2;\_ ## 名称: 使 .globl 指令之后的所有内容均被视为注释. MacOS ..
发布时间:2021-04-09 19:29:55 其他开发

来宾系统内部的qemu-system-aarch64出口

我想知道是否有一种方法可以从aarch64版本的来宾系统中退出qemu.例如,x86具有用于此目的的isa-debug-exit设备. 有什么想法吗? 欢呼 解决方案 此问题的一般答案是“做任何在真实硬件上引起断电的事情".具体细节取决于QEMU在模拟哪台计算机.对于aarch64"virt"板,可以使用仿真的PSCI固件接口通过SYSTEM_OFF功能请求关闭电源. P ..
发布时间:2021-04-09 19:29:51 其他开发

iOS App需要arm64吗?

我将我的应用程序上载到Xcode,其中说该版本需要arm64.这不包括使用该应用程序的iPhone 5/5c及更低版本的iPhone.但是,我希望iPhone 5/5c能够使用该应用程序,并且必须错误地具有必需的arm64.我认为这一定是info.plist中的内容,但不知道. 我检查过的东西: (1)info.plist没有RequiredDeviceCapabilities行. ..
发布时间:2021-04-09 19:29:48 移动开发

Aarch64什么是后继转发?

“后期转发"在"Arm Neoverse E1核心软件优化指南" 中(以及有关其他一些CPU型号的优化指南): 说明组说明 Exec Latency Exec吞吐量说明 乘法累加(32位) MADD,MSUB 3(2) 1 2 乘法累加(64位) MADD,MSUB 5(4) 1/3 2 (2)乘累加流水线支持类似μOP的累加操作数的后向转发,从而允许典型的乘累加μOP序列每N个周 ..
发布时间:2021-04-09 19:29:45 其他开发

Xcode arm64与arm64e

Xcode 10.1提及对arm64e的支持(预览).任何人都对arm64e有任何想法.arm64和arm64e之间的任何区别. https://developer.apple.com/documentation/xcode_release_notes/xcode_10_1_beta_2_release_notes?language = objc 我搜索了arm64e.但是找不到适当的 ..
发布时间:2021-04-09 19:29:42 移动开发

Apple Clang12 LLVM-未知的AArch64修复程序类型

我正在尝试将一些Linux C代码移植到Apple M1 Mac,并且遇到一些内联汇编问题.而且让我感到难过. 我有以下内联汇编块: #define TEST asm volatile(\"adr x0,label9 \ n" \:::"x0&";); 并遇到以下错误: test.c:73:5:错误:未知的AArch64修复程序类型!测试^./ARM_branch_macros. ..
发布时间:2021-04-09 19:29:39 其他开发

ARMv8 A64汇编中的立即值范围

我的理解是ARMv8 A64程序集中的立即参数可以是12位长.如果是这种情况,为什么这行汇编代码: AND X12,X10、0xFEF 产生此错误(使用gcc编译时) 错误:操作数3立即超出范围-"AND X12,X10、0xFEF" 有趣的是,这一行汇编代码可以很好地编译: ADD X12,X10、0xFEF 我正在使用aarch64-linux-gnu-gcc(Linar ..
发布时间:2021-04-09 19:29:34 其他开发

切换执行;手臂;汇编器aarch64;臂64

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

ARM STLR内存排序语义

我正在为ARM STLR的确切语义而苦苦挣扎. 根据文档,该文档具有发布语义.因此,如果您有STLR商店,您将得到: [StoreStore] [LoadStore]X = r1 其中, X 是内存,而 r1 是某些寄存器. 问题在于发布存储和获取负载无法提供顺序一致性: [StoreStore] [LoadStore]X = r1r2 = Y[LoadLoad] [Loa ..
发布时间:2021-04-09 19:26:51 其他开发

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

根据体系结构概述文档,Aarch64支持4k和64k页面.一些CPU还支持16k页面.查看地址转换方案的详细信息,我得出的结论是,此类CPU 不支持同时存在不同大小的页面(与x86_64不同,它允许这样做).我说的对吗? 解决方案 在这里,您将两种尽管相关的不同东西混为一谈-页面大小与粒度. 在AArch64中,您有3种可能的翻译颗粒可供选择,每一种都会导致不同的页面大小集: ..
发布时间:2021-04-09 19:26:45 其他开发