Merge commit 'b7b17ed66e199afc7246e642bf3b35c3f8eca217'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 15 Jan 2014 13:41:41 +0000 (14:41 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 15 Jan 2014 13:42:49 +0000 (14:42 +0100)
* commit 'b7b17ed66e199afc7246e642bf3b35c3f8eca217':
  aarch64: add cpuflags support for NEON and VFP

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
configure
libavutil/aarch64/asm.S
libavutil/aarch64/cpu.c
libavutil/aarch64/cpu.h
libavutil/cpu.c
libavutil/cpu_internal.h

diff --cc configure
Simple merge
index 0000000,94e5a84..3b6abba
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,63 +1,63 @@@
 - * This file is part of Libav.
+ /*
+  * Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
+  *
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #include "config.h"
+ #ifdef __ELF__
+ #   define ELF
+ #else
+ #   define ELF //
+ #endif
+ .macro  function name, export=0, align=2
+     .macro endfunc
+ ELF     .size   \name, . - \name
+         .endfunc
+         .purgem endfunc
+     .endm
+         .text
+         .align          \align
+     .if \export
+         .global EXTERN_ASM\name
+ EXTERN_ASM\name:
+     .endif
+ ELF     .type   \name, %function
+         .func   \name
+ \name:
+ .endm
+ .macro  const   name, align=2
+     .macro endconst
+ ELF     .size   \name, . - \name
+         .purgem endconst
+     .endm
+         .section        .rodata
+         .align          \align
+ \name:
+ .endm
+ .macro  movrel rd, val
+ #if CONFIG_PIC
+         adrp            \rd, #:pg_hi21:\val
+         add             \rd, \rd, #:lo12:\val
+ #else
+         ldr             \rd, =\val
+ #endif
+ .endm
index 0000000,2cc2ccd..87e9d50
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,27 +1,27 @@@
 - * This file is part of Libav.
+ /*
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #include "libavutil/cpu.h"
+ #include "libavutil/cpu_internal.h"
+ #include "config.h"
+ int ff_get_cpu_flags_aarch64(void)
+ {
+     return AV_CPU_FLAG_NEON * HAVE_NEON |
+            AV_CPU_FLAG_VFP  * HAVE_VFP;
+ }
index 0000000,704df48..d6af281
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,29 +1,29 @@@
 - * This file is part of Libav.
+ /*
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #ifndef AVUTIL_AARCH64_CPU_H
+ #define AVUTIL_AARCH64_CPU_H
+ #include "config.h"
+ #include "libavutil/cpu.h"
+ #include "libavutil/cpu_internal.h"
+ #define have_neon(flags) CPUEXT(flags, NEON)
+ #define have_vfp(flags)  CPUEXT(flags, VFP)
+ #endif /* AVUTIL_AARCH64_CPU_H */
diff --cc libavutil/cpu.c
@@@ -56,11 -49,20 +56,16 @@@ int av_get_cpu_flags(void
      if (checked)
          return flags;
  
-     if (ARCH_ARM) flags = ff_get_cpu_flags_arm();
-     if (ARCH_PPC) flags = ff_get_cpu_flags_ppc();
-     if (ARCH_X86) flags = ff_get_cpu_flags_x86();
+     if (ARCH_AARCH64)
+         flags = ff_get_cpu_flags_aarch64();
+     if (ARCH_ARM)
+         flags = ff_get_cpu_flags_arm();
+     if (ARCH_PPC)
+         flags = ff_get_cpu_flags_ppc();
+     if (ARCH_X86)
+         flags = ff_get_cpu_flags_x86();
  
 -    flags  &= cpuflags_mask;
      checked = 1;
 -
      return flags;
  }
  
Simple merge