On Thu, 20 Mar 2014, Janne Grunau wrote:

On 2014-03-20 09:33:10 +0200, Martin Storsjö wrote:
On Thu, 20 Mar 2014, Ben Avison wrote:

diff --git a/libavcodec/arm/mlpdsp_arm.S b/libavcodec/arm/mlpdsp_arm.S
new file mode 100644
index 0000000..9e0bf57
--- /dev/null
+++ b/libavcodec/arm/mlpdsp_arm.S
@@ -0,0 +1,435 @@
+/*
+
+#include "libavutil/arm/asm.S"
+
+// This code uses too many ARM-only tricks to easily assemble as Thumb
+.arm

Just to be clear, the tricks that don't work in thumb mode are
non-constant shifts, and jump tables with "ldr pc, [pc, ...]",
right?

Forcing arm mode like this isn't ok in all configurations - e.g.
when building for WinRT/Windows Phone 8, you really have to build
all of it in thumb mode; the linker doesn't handle everything needed
for mixing the modes there.

Would it be acceptable to build and run this code only if
CONFIG_THUMB is disabled? That's the case for most raspberry pi
builds at least, although I guess it would lead to not using this
code at all on other e.g. armv7 builds on linux where it still could
have been beneficial?

We could add CONFIG_THUMB_INTERWORKING and disable that for
WinRT/Windows Phone 8.

Sure, that could also work.

// Martin
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to