[Bug 742843] ORC compiler is disabled on the iOS devices

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Apr 4 13:48:18 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=742843

Cecill Etheredge (ijsf) <c at ijsf.nl> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |c at ijsf.nl

--- Comment #19 from Cecill Etheredge (ijsf) <c at ijsf.nl> ---
Created attachment 300959
  --> https://bugzilla.gnome.org/attachment.cgi?id=300959&action=edit
Support for static code compilation for iOS compatibility and various orc
assembly fixes.

I'm hereby submitting an initial patch that encapsulates the work I've been
doing on my own orc fork at https://github.com/ijsf/OpenWebRTC-orc. This fork
was used to add support for static code compilation, as described in this
issue, which is necessary for proper performance on iOS.

The patch contains a couple of things:

* Run-time NEON detection for ARM CPUs on iOS. Not really relevant for static
code compilation, but may prove to be useful for future reference.
* Assembly fixes for ARM NEON including addition of alignment directives, label
refactoring and minor documentation changes.
* Fix for invalid offset pointers in NEON assembly code due to orc's erroneous
use of "sizeof" at compile-time (see
https://github.com/ijsf/OpenWebRTC-orc/issues/4).
* Support for --static-implementation and --outputasm arguments. This will
effectively assemble the orc code at compile-time into a separate .S file,
accompanied by the usual .c file wrapping the functions. These can both be
linked into the project.

The separate .S file construction was absolutely necessary due to bugs in
Apple's LLVM compiler (these have been filed with Apple) making inline assembly
impossible. Also, intrinsics would have been good instead but this would
require a rewrite of the entire NEON compiler. In the end, this was the easiest
and least invasive solution.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list