Questions tagged [arm64]

64-bit ARM architecture, also known as AArch64.

The AArch64 ISA was introduced in ARMv8 processors. It features a whole new instruction set, register set, and requires different development tools to the 32-bit ARM ISA.

ARMv8 processors are also capable of running AArch32 instructions (as the old 32-bit ISA is retroactively called), in both ARM and Thumb modes.

Related tags:

Usefull links:

  • ARM a64 instruction set architecture contains very detailed descriptions of each instruction available on this architecture, including encoding, pseudocode and behavior to the architectural state. This includes basic, SIMD and Floating-point instructions. Also contains common aliases.
1858 questions
0
votes
0 answers

ARMv8 AARCH64 - Error: immediate out of range

I'm start programming assembly for ARMv8 and I'm facing an error to compare a value to create a conditional code: First approach: #include var1 .8byte 0xdedededef1f1f1f1 ASM_FUNC(CompareValues) ldr x1,=var1 cmp…
Davy Souza
  • 31
  • 4
0
votes
2 answers

Valgrind version 3.16.1 - unrecognized command line option '-m64'

I'm trying to compile Valgring3.16.1 with aarch64-linux-gnu-gcc (for xilinx zynq-mp board) the ./configure stage passed ok. when I run: make CC= ..... /bin/aarch64-linux-gnu-gcc I got this error: aarch64-linux-gnu-gcc: error: unrecognized command…
0
votes
0 answers

why output of rndr instruction is mixed with bootloader's entropy to form linux kaslr on arm64

It is code snippet from Linux kernel (arch/arm64/kernel/kaslr.c) how kaslr seeed is obtained: u64 __init kaslr_early_init(u64 dt_phys) { ... /* * Retrieve (and wipe) the seed from the FDT */ seed = get_kaslr_seed(fdt); /* …
scopichmu
  • 135
  • 11
0
votes
1 answer

aarch64 MMU translation table

I've been experimenting with MMU on RPi3B+ with no success at all. I tried following official ARM examples, and I generate tables like this: Level 2 table is at 1016000 PA: 0000000001016000: 0000000000000405 0000000000200405 0000000000400405…
0
votes
1 answer

Compiling android kernel from official unmodified source gives corrupted result

I have downloaded the kernel source of my Samsung Galaxy Tab A 2018 (SM-T590) from Samsung Open Source website. I'm trying to compile the unmodified source code using the instructions given with the kernel inside the archive, however the resulting…
UDPSend
  • 11
  • 1
0
votes
1 answer

mmu in arm: how to map kernel code (bare metal)

In the link script, the starting address is 0xffffffff00000000. I can then load my own bare metal kernel (for aarch64) in an arbitrary (physical) address and use relative addressing. So when I turn on MMU, how do I know memory won't be written at…
0
votes
0 answers

How do I allocate a vector in armv8 assembly?

So, I am trying to allocate a vector in armv8, here is the code ASM_FUNC(test) .data array: .word 10,20,30,40 .text mov x0,#5 ret It compiles, but when i try to run, it just gets stuck. How can I properly declare and allocate a vector in…
Noob
  • 61
  • 4
0
votes
0 answers

Is there any register to check if neon is supported on a armv8 machine?

I was researching and I found this register ID_AA64ZFR0_EL1 it checks if SVE is supported. "SVE Feature ID register 0". I was wondering if there is any register which I can use to check if Neon is supported. If not, is there any other way I can…
Noob
  • 61
  • 4
0
votes
0 answers

Get bus error after replacing stp with str in glibc's aarch64 memcpy.S

For some reasons, I need to replace memcpy's stp instruction with str, here is what I did: modified sysdeps/aarch64/memcpy.S @@ -102,11 +102,19 @@ ENTRY (MEMCPY) tbz tmp1, 5, 1f ldp B_l, B_h, [src, 16] ldp C_l, C_h, [srcend, -32] - …
Chen Li
  • 4,824
  • 3
  • 28
  • 55
0
votes
0 answers

Why does general-purpose register w0 change value in arm64?

I am having a kernel crash issue in ARM64 (or aarch64). My system has 4 cores. I investigated the issue and find out some points. Here is the code C (linux/drivers/cpuidle/governors/menu.c) static int menu_select(struct cpuidle_driver *drv, struct…
kid1412hv
  • 1
  • 1
0
votes
2 answers

how does str/ldr knows the register size?

aarch64 use str/ldr to store/load register into memory: str q0, [dst] str x0, x1, [dst] In the example above, q0/q1 is 128bit, as well as x1/x0 is 64bit, but how does str/ldp knows the the size of current register? is it related with word size?
Chen Li
  • 4,824
  • 3
  • 28
  • 55
0
votes
0 answers

How do I store value on stack by using Armv8 assembly language?

I'm trying to store values 6 and 7 on stack, This is my code: randomNum: .string "%d " add sp, sp, -8 mov x27, #6 str x27, [x29, -4] mov x27, #7 str x27, [x29, -8] ldr x0, =randomNum ldr x1, [x29,…
Z Han
  • 11
  • 1
  • 3
0
votes
1 answer

arm64/x86_64 universal binary created with lipo is missing deployment target

Context I'm converting several libraries/frameworks that my Mac app uses to be Universal Binaries for the new Apple Silicon Macs. Problem I have two versions of a binary framework: one compiled for x86_64 and one compiled for arm64. I always check…
Bryan
  • 4,628
  • 3
  • 36
  • 62
0
votes
1 answer

aarch64-linux-gnu-g++ cross compiling to arm64 error

I am trying to cross compile cpp codes from Centos 7 to arm64 using aarch64-linux-gnu-g++. I have installed gcc-aarch64-linux-gnu and gcc-c++-aarch64-linux-gnu. When I compiled, it gave error of not able to find the c++ header files. [root@server…
Patrick
  • 63
  • 1
  • 8
0
votes
1 answer

What's the right way to replace stp by str?

For some reasons, I need to replace stp instruction with str: old: stp q0, q0, [dst, -32] new: str q0, [dst, -32] str q0, [dst, -24] or str q0, [dst, -24] str q0, [dst, -32] I have tried both orders, but both will end with segmentfault somewhere.…
Chen Li
  • 4,824
  • 3
  • 28
  • 55
1 2 3
99
100