Porting neon assembly to AdvSIMD Aarch64

Ilya Palachev i.palachev at samsung.com
Mon Aug 11 07:06:40 PDT 2014


Hi, all.

Video and audio decoding for different formats in Gstreamer and its 
plugins is highly optimized for arm architecture using NEON intrinsics 
and direct ARMv7 NEON assembly .
For different user applications such optimizations help to improve 
performance.

I wonder whether anybody has tried to port such assembly to Aarch64 
architecture.

At the beginning of 2014 the neon check has been disabled by William 
Grant for aarch64 build to make possible the build of gstreamer for aarch64.
https://bugzilla.gnome.org/show_bug.cgi?id=712367

And here - https://bugzilla.gnome.org/show_bug.cgi?id=722091 - Peter 
Robinson has said that

In theory the aarch64 NEON implementation is backwards compatible with 
ARMv7 NEON

It's not completely true. Armv8-a architecture is backwards compatible 
with armv7l only at application level (Aarch32 execution mode).
That means that if we have Aarch64 OS with firmware that provides the 
set of libraries that the application "X" depends on: compiled both for 
armv7l and aarch64, and we have to versions of application "X": for 
arvm7l and aarch64, then you can launch both these applications (in 
different processes). But it's impossible to run arvm7l code during the 
execution of the aarch64 code. It requires the change of the exception 
level (see official documentation).

So the question is:
Does the development plan of gstreamer include such porting to aarch64, 
since it's needed for better performance?


Best regards,
Ilya Palachev


More information about the gstreamer-devel mailing list