csdr icon indicating copy to clipboard operation
csdr copied to clipboard

Support for ARMv8

Open ghost opened this issue 8 years ago • 6 comments

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 mnemonic vmov.f32' --vmov.f32 q5,#0.0' /tmp/ccyqVRJR.s:1392: Error: unknown mnemonic vld2.32' --vld2.32 {q0-q1},[x6]!' /tmp/ccyqVRJR.s:1393: Error: unknown mnemonic vld1.32' --vld1.32 {q2},[x7]!' /tmp/ccyqVRJR.s:1394: Error: unknown mnemonic vmla.f32' --vmla.f32 q4,q0,q2' /tmp/ccyqVRJR.s:1395: Error: unknown mnemonic vmla.f32' --vmla.f32 q5,q1,q2' /tmp/ccyqVRJR.s:1398: Error: unknown mnemonic vst1.32' --vst1.32 {q4},[x10]' /tmp/ccyqVRJR.s:1399: Error: unknown mnemonic vst1.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.

ghost avatar Jun 27 '16 09:06 ghost

Having same issue, looks like the issue is the custom ASM assumes vfp support in the ARM CPU, which pine64 does not have.

morcant avatar Dec 21 '16 05:12 morcant

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

morcant avatar Dec 21 '16 05:12 morcant

Confirming this works, running through openwebrx has CPU sitting at 6%

morcant avatar Dec 21 '16 05:12 morcant

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.

itdaniher avatar May 16 '17 15:05 itdaniher

Can anyone tell me how to make on Raspberry Pi 4? Thank you.

FeatherGrass2019 avatar Aug 15 '19 14:08 FeatherGrass2019

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

MichalLeonBorsuk avatar May 21 '20 16:05 MichalLeonBorsuk