[FFmpeg-devel] [PATCH] arm: only enable setend on ARMv6

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Fri Jun 5 13:40:31 CEST 2015


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.Cadhalpun at 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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-arm-only-enable-setend-on-ARMv6.patch
Type: text/x-diff
Size: 1009 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150605/5bce9d5c/attachment.bin>


More information about the ffmpeg-devel mailing list