csdr
csdr copied to clipboard
Support for ARMv8
Looks like some of the ASM changed, I tried fixing but have never done any ASM, let alone ARM.
/tmp/ccyqVRJR.s: Assembler messages: /tmp/ccyqVRJR.s:1390: Error: unknown mnemonic
vmov.f32' --
vmov.f32 q4,#0.0' /tmp/ccyqVRJR.s:1391: Error: unknown mnemonicvmov.f32' --
vmov.f32 q5,#0.0' /tmp/ccyqVRJR.s:1392: Error: unknown mnemonicvld2.32' --
vld2.32 {q0-q1},[x6]!' /tmp/ccyqVRJR.s:1393: Error: unknown mnemonicvld1.32' --
vld1.32 {q2},[x7]!' /tmp/ccyqVRJR.s:1394: Error: unknown mnemonicvmla.f32' --
vmla.f32 q4,q0,q2' /tmp/ccyqVRJR.s:1395: Error: unknown mnemonicvmla.f32' --
vmla.f32 q5,q1,q2' /tmp/ccyqVRJR.s:1398: Error: unknown mnemonicvst1.32' --
vst1.32 {q4},[x10]' /tmp/ccyqVRJR.s:1399: Error: unknown mnemonicvst1.32' --
vst1.32 {q5},[x11]' Makefile:47: recipe for target 'all' failed
Build is on a pine64 with A64 (cortex-a53) on ubuntu 16.04.
Having same issue, looks like the issue is the custom ASM assumes vfp support in the ARM CPU, which pine64 does not have.
Less than ideal probably, but you can change remove the -DNEON_OPT in the Makefile which will cause it to fall back to C optimizations instead of ASM. This allows it to complile at least.
PARAMS_NEON = -O3 -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fomit-frame-pointer -funroll-loops -Wformat=0
Confirming this works, running through openwebrx has CPU sitting at 6%
Bumping this, would be very interested to see neon / simd optimisations for aarch64 hardware. I can provide testing / ssh access to anyone interested in working on this.
Can anyone tell me how to make on Raspberry Pi 4? Thank you.
As morcant
wrote, in Makefile replace PARAMS_NEON
with this line:
PARAMS_NEON = -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fomit-frame-pointer -funroll-loops -Wformat=0