1. 15 May, 2017 1 commit
    • Ralph Giles's avatar
      Remove armv6 media-extension assembly. · be111b38
      Ralph Giles authored
      Libvpx dropped armv6 support sometime after the aom fork.
      
      We don't intend to support this platform, which is likely
      too slow in any case. Remove the assembly and intrinsics
      optimized routines, their tests, cpu feature detection,
      and rtcd specialization for this instruction set extension.
      
      Change-Id: If44ec28e5ddafc6af179c5d1982ac7e81fe54d5e
      be111b38
  2. 02 Sep, 2016 1 commit
  3. 01 Sep, 2016 2 commits
  4. 11 Aug, 2016 2 commits
  5. 22 Mar, 2016 1 commit
  6. 28 Jan, 2016 1 commit
  7. 07 Nov, 2014 1 commit
    • Johann's avatar
      Remove asm offset dependencies · 6eec73a7
      Johann authored
      The obj_int_extract code is no longer worth maintaining. It creates
      significant issues when adapting for different build systems and no
      longer offers as significant of a performance benefit due to
      improvements in intrinsics.
      
      Source files will remain until the various third-party builds are updated.
      
      The neon fast quantizer has been moved to intrinsics. The armv6 version
      has been removed because so few remaining targets require it.
      
      Compilers and processors have improved significantly since the
      pack_tokens code was written. The assembly is no longer faster than the
      C code.
      
      pack_tokens were the only optimizations for the armv5te targets so the targets
      will be removed after the test infrastructure has been updated.
      
      BUG=710
      
      Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
      6eec73a7
  8. 09 Sep, 2014 1 commit
    • Johann's avatar
      Restructure ARM assumptions in cpudetect · 8dcdacc5
      Johann authored
      Allow building for targets which have NEON but not EDSP or MEDIA.
      
      Set HAS_NEON flag for builds which have neon assembly but not
      intrinsics.
      
      Change-Id: Ibfa81a8444a8c55d1d3209c533d1d70d2f809669
      8dcdacc5
  9. 04 May, 2014 1 commit
    • Martin Storsjo's avatar
      Don't try to use getenv on windows phone/rt · 20babf6d
      Martin Storsjo authored
      The getenv function doesn't exist there. In Visual Studio 2012,
      the function still existed in the link libraries even though
      it was hidden in the headers, but in the 2013 version it has been
      removed from the link libraries as well.
      
      Change-Id: Iea6289a698fa1788e906f5aabb6fddda3675815b
      20babf6d
  10. 26 Apr, 2013 1 commit
  11. 26 Dec, 2012 1 commit
  12. 11 Dec, 2012 1 commit
  13. 19 Nov, 2012 1 commit
  14. 05 Nov, 2012 1 commit
  15. 17 Jul, 2012 1 commit
  16. 20 Jun, 2012 2 commits
    • Johann's avatar
      Clean Android build defaults · d6e80deb
      Johann authored
      Disable unit-tests. The logging in GTest would need to be adjusted.
      
      Restructure ARM cpu detection. Flatten if-else logic.
      
      Change #if defined(HAVE_*) to #if HAVE_* because we only need to check
      for features that the library was actually built with. This should have
      been harmless, as disabled feature sets wouldn't have any features to
      call.
      
      Change-Id: Iea21aa42ce5f049c53ca0376d25bcd0f36f38284
      d6e80deb
    • Attila Nagy's avatar
      Enables building examples with Android NDK · 5daaa838
      Attila Nagy authored
      Soft enable runtime cpu detect for armv7-android target, so that it
      can be disabled and remove dependency on 'cpufeatures' lib.
      Change the arm_cpu_caps implementation selection such that 'no rtcd' takes
      precedence over system type.
      
      Switch to use -mtune instead of -mcpu. NDK was complaining about
      -mcpu=cortex-a8 conflicting with -march=armv7-a, not sure why.
      
      Add a linker flag to fix some cortex-a8 bug, as suggested by NDK Dev
      Guide.
      
      Examples:
      Configure for armv7+neon:
      
      ./configure --target=armv7-android-gcc \
                  --sdk-path=/path/to/android/ndk \
                  --disable-runtime-cpu-detect \
                  --enable-realtime-only \
                  --disable-unit-tests
      
      ...armv7 w/o neon:
      
      ./configure --target=armv7-android-gcc \
                  --sdk-path=/path/to/android/ndk \
                  --disable-runtime-cpu-detect \
                  --enable-realtime-only \
                  --disable-neon \
                  --cpu=cortex-a9 \
                  --disable-unit-tests
      
      Change-Id: I37e2c0592745208979deec38f7658378d4bd6cfa
      5daaa838
  17. 20 Jan, 2012 1 commit
    • Fritz Koenig's avatar
      Disconnect ARM tgt_isa from dsp extensions · 89210284
      Fritz Koenig authored
      A processor with ARMv7 instructions does not
      necessarily have NEON dsp extensions.  This CL
      has the added side effect of allowing the ability
      to enable/disable the dsp extensions cleanly.
      
      Change-Id: Ie1e879b8fe131885bc3d4138a0acc9ffe73a36df
      89210284
  18. 18 Jan, 2012 1 commit
    • Fritz Koenig's avatar
      Add makefile for building libvpx for Android. · d8305731
      Fritz Koenig authored
      Android.mk file for using the Android NDK build
      system to compile. Adds option for SDK path to
      use the compiler that comes with android for testing
      compiler compliance.
      
      Change-Id: I5fd17cb76e3ed631758d3f392e62ae1a050d0d10
      d8305731
  19. 25 Oct, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Add runtime CPU detection support for ARM. · b71962fd
      Timothy B. Terriberry authored
      The primary goal is to allow a binary to be built which supports
       NEON, but can fall back to non-NEON routines, since some Android
       devices do not have NEON, even if they are otherwise ARMv7 (e.g.,
       Tegra).
      The configure-generated flags HAVE_ARMV7, etc., are used to decide
       which versions of each function to build, and when
       CONFIG_RUNTIME_CPU_DETECT is enabled, the correct version is chosen
       at run time.
      In order for this to work, the CFLAGS must be set to something
       appropriate (e.g., without -mfpu=neon for ARMv7, and with
       appropriate -march and -mcpu for even earlier configurations), or
       the native C code will not be able to run.
      The ASFLAGS must remain set for the most advanced instruction set
       required at build time, since the ARM assembler will refuse to emit
       them otherwise.
      I have not attempted to make any changes to configure to do this
       automatically.
      Doing so will probably require the addition of new configure options.
      
      Many of the hooks for RTCD on ARM were already there, but a lot of
       the code had bit-rotted, and a good deal of the ARM-specific code
       is not integrated into the RTCD structs at all.
      I did not try to resolve the latter, merely to add the minimal amount
       of protection around them to allow RTCD to work.
      Those functions that were called based on an ifdef at the calling
       site were expanded to check the RTCD flags at that site, but they
       should be added to an RTCD struct somewhere in the future.
      The functions invoked with global function pointers still are, but
       these should be moved into an RTCD struct for thread safety (I
       believe every platform currently supported has atomic pointer
       stores, but this is not guaranteed).
      
      The encoder's boolhuff functions did not even have _c and armv7
       suffixes, and the correct version was resolved at link time.
      The token packing functions did have appropriate suffixes, but the
       version was selected with a define, with no associated RTCD struct.
      However, for both of these, the only armv7 instruction they actually
       used was rbit, and this was completely superfluous, so I reworked
       them to avoid it.
      The only non-ARMv4 instruction remaining in them is clz, which is
       ARMv5 (not even ARMv5TE is required).
      Considering that there are no ARM-specific configs which are not at
       least ARMv5TE, I did not try to detect these at runtime, and simply
       enable them for ARMv5 and above.
      
      Finally, the NEON register saving code was completely non-reentrant,
       since it saved the registers to a global, static variable.
      I moved the storage for this onto the stack.
      A single binary built with this code was tested on an ARM11 (ARMv6)
       and a Cortex A8 (ARMv7 w/NEON), for both the encoder and decoder,
       and produced identical output, while using the correct accelerated
       functions on each.
      I did not test on any earlier processors.
      
      Change-Id: I45cbd63a614f4554c3b325c45d46c0806f009eaa
      b71962fd