On 2015-12-09 22:54:14 +0100, Janne Grunau wrote:
> The vector mode was deprecated in ARMv7-A/VFPv3 and various cpu
> implementations do not support it in hardware. Vector mode code will
> depending the OS either be emulated in software or result in an illegal
> instruction on cpus which does not support it. This was not really
> problem in practice since NEON implementations of the same functions are
> preferred. It will however become a problem for checkasm which tests
> every cpu flag separately.
> 
> Since this is a cpu feature newer cpu do not support anymore the
> behaviour of this flag differs from the other flags. It can be only
> activated by runtime cpu feature selection.
> ---
>  libavutil/arm/cpu.h                  | 4 ++++
>  libavutil/cpu.h                      | 1 +
>  libavcodec/arm/dcadsp_init_arm.c     | 4 ++--
>  libavcodec/arm/fft_init_arm.c        | 2 +-
>  libavcodec/arm/fmtconvert_init_arm.c | 2 +-
>  libavutil/arm/cpu.c                  | 4 ++++
>  libavutil/cpu.c                      | 2 ++
>  tests/checkasm/checkasm.c            | 1 +
>  8 files changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/libavutil/arm/cpu.h b/libavutil/arm/cpu.h
> index 224409a..ff474b5 100644
> --- a/libavutil/arm/cpu.h
> +++ b/libavutil/arm/cpu.h
> @@ -30,6 +30,10 @@
>  #define have_vfpv3(flags)   CPUEXT(flags, VFPV3)
>  #define have_neon(flags)    CPUEXT(flags, NEON)
>  
> +/* some functions use the VFPv2 vector mode which is deprecated in ARMv7-A
> + * and might trap on such CPU depending on the OS configuration */
> +#define have_vfp_vm(flags)   ((flags) & AV_CPU_FLAG_VFP_VM)

this needs a test for HAVE_VFP or have_vfp(flags)

changed locally

Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to