[FFmpeg-devel] ARM-NEON patches

Måns Rullgård mans
Wed Jul 7 12:32:35 CEST 2010


Pavel Pavlov <pavel at summit-tech.ca> writes:

> ELF-attrs.patch : elf specific attributes in arm asm.
> ff_dsputil_init_neon_DEPENDS.patch : proper dependencies in arm Makefile. ff_dsputil_init_neon references ff_vp3_idct_XXX functions for vp3, vp5 and vp6.
> neon-wince.patch : asm-offsets.h for windows and movrel cannot use movt/movw for relocatable symbols
>
>
> Index: libavcodec/arm/fft_neon.S
> ===================================================================
> --- libavcodec/arm/fft_neon.S	(revision 24078)
> +++ libavcodec/arm/fft_neon.S	(working copy)
> @@ -364,7 +364,7 @@
>          .word fft16384_neon
>          .word fft32768_neon
>          .word fft65536_neon
> -        .size fft_tab_neon, . - fft_tab_neon
> +ELF     .size fft_tab_neon, . - fft_tab_neon
>  
>          .align 4

The size of things is not an ELF-specific.

>  pmmp:   .float  +1.0, -1.0, -1.0, +1.0
> Index: libavcodec/arm/simple_idct_neon.S
> ===================================================================
> --- libavcodec/arm/simple_idct_neon.S	(revision 24078)
> +++ libavcodec/arm/simple_idct_neon.S	(working copy)
> @@ -243,7 +243,7 @@
>          .align 4
>  idct_coeff_neon:
>          .short W1, W2, W3, W4, W5, W6, W7, W4c
> -        .previous
> +ELF     .previous
>  
>          .macro idct_start data
>          push            {r4-r7, lr}

WTF?  This will put code in the data section.

> Index: libavcodec/arm/asm-offsets.h
> ===================================================================
> --- libavcodec/arm/asm-offsets.h	(revision 24078)
> +++ libavcodec/arm/asm-offsets.h	(working copy)
> @@ -29,7 +29,7 @@
>  #endif
>  
>  /* MpegEncContext */
> -#if defined(__ARM_EABI__) || defined(__eabi__)
> +#if defined(__ARM_EABI__) || defined(__eabi__) || defined(_WIN32)
>  #define Y_DC_SCALE               0xa54
>  #define C_DC_SCALE               0xa58
>  #define AC_PRED                  0xa80

What ABI does wince/arm use?  Besides, these offsets are only used by
NEON code, and wince doesn't support NEON, so this shouldn't be needed
regardless.

> Index: libavcodec/arm/asm.S
> ===================================================================
> --- libavcodec/arm/asm.S	(revision 24078)
> +++ libavcodec/arm/asm.S	(working copy)
> @@ -61,7 +61,7 @@
>  .endm
>  
>  .macro  movrel rd, val
> -#if HAVE_ARMV6T2 && !CONFIG_PIC
> +#if HAVE_ARMV6T2 && !CONFIG_PIC && !defined(_WIN32)
>          movw            \rd, #:lower16:\val
>          movt            \rd, #:upper16:\val
>  #else

Wince doesn't support relocations?

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list