On 05.06.2015 00:47, Michael Niedermayer wrote:
> On Thu, Jun 04, 2015 at 11:17:45PM +0200, Andreas Cadhalpun wrote:
>> Without this check it causes SIGILL crashes on ARMv5.
>>
>> Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
>> ---
>>  libavutil/arm/cpu.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavutil/arm/cpu.c b/libavutil/arm/cpu.c
>> index f1683e8..ac42a05 100644
>> --- a/libavutil/arm/cpu.c
>> +++ b/libavutil/arm/cpu.c
>> @@ -128,7 +128,7 @@ int ff_get_cpu_flags_arm(void)
>>         trickle down. */
>>      if (flags & (AV_CPU_FLAG_VFPV3 | AV_CPU_FLAG_NEON))
>>          flags |= AV_CPU_FLAG_ARMV6T2;
>> -    else
>> +    else if (flags & AV_CPU_FLAG_ARMV6)
>>      /* Some functions use the 'setend' instruction which is deprecated on 
>> ARMv8
>>       * and serializing on some ARMv7 cores. This ensures such functions
>>       * are only enabled on ARMv6. */
> 
> shouldnt this be after
> "- if (flags & AV_CPU_FLAG_ARMV6T2)
>         flags |= AV_CPU_FLAG_ARMV6;
> "

That would require duplicating the !(flags & (AV_CPU_FLAG_VFPV3 | 
AV_CPU_FLAG_NEON)
check.

> or (AV_CPU_FLAG_ARMV6T2 | AV_CPU_FLAG_ARMV6)

That seems better, assuming setend is useful on ARMv6t2.
Updated patch attached.

Best regards,
Andreas

>From 09e0fd1fdea5dd19e1998659efc773c87c07575b Mon Sep 17 00:00:00 2001
From: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
Date: Thu, 4 Jun 2015 23:07:44 +0200
Subject: [PATCH] arm: only enable setend on ARMv6

Without this check it causes SIGILL crashes on ARMv5.

Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
---
 libavutil/arm/cpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavutil/arm/cpu.c b/libavutil/arm/cpu.c
index f1683e8..02def0b 100644
--- a/libavutil/arm/cpu.c
+++ b/libavutil/arm/cpu.c
@@ -128,7 +128,7 @@ int ff_get_cpu_flags_arm(void)
        trickle down. */
     if (flags & (AV_CPU_FLAG_VFPV3 | AV_CPU_FLAG_NEON))
         flags |= AV_CPU_FLAG_ARMV6T2;
-    else
+    else if (flags & (AV_CPU_FLAG_ARMV6T2 | AV_CPU_FLAG_ARMV6))
     /* Some functions use the 'setend' instruction which is deprecated on ARMv8
      * and serializing on some ARMv7 cores. This ensures such functions
      * are only enabled on ARMv6. */
-- 
2.1.4

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to