We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
for C code scratch_in[0] = Fin_r[0 * in_step];
the type of scratch_in and Fin_r are both float*,
and the read action showed in disassembly code is ldr q0, [x1, #0]
since the value of X1 is 0x1000000c(not aligned with 128bits), it will cause sync exception (ESR_EL3 == 0x96000021)
I guess it is an alignment fault,
so what I want to know is: how to avoid q register being used for single ldr?
anyway if it is ldr x8, [x1,#0], eveything is fine
any advice would be admired, thanks.
cmd for compiling: armclang.exe --target=aarch64-arm-none-eabi -mcpu=cortex-a53 -mfpu=neon -mfloat-abi=hard -marm -mcmse filename.c