- 25 Sep, 2012 1 commit
-
-
Mike Frysinger authored
Add configure detection of the new x32 ABI as well as support in asm. Change-Id: Ic66a069599adeb81062090e3f11b71ee1fb97cb8
-
- 20 Aug, 2012 1 commit
-
-
Yaowu Xu authored
Change-Id: Iaa947e640f27e6f6eaf7d845f243536bca2df513
-
- 20 Jun, 2012 2 commits
-
-
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
-
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
-
- 11 Jun, 2012 1 commit
-
-
John Koleszar authored
Allows building the library with the gcc -pedantic option, for improved portabilty. In particular, this commit removes usage of C99/C++ style single-line comments and dynamic struct initializers. This is a continuation of the work done in commit 97b766a4, which removed most of these warnings for decode only builds. Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966
-
- 05 Jun, 2012 1 commit
-
-
Alpha Lam authored
This change is to allow obj_int_extract to extract all integers in the data segment. With the const keyword these variables are forced into the .rodata segment even for zero variable value. We had a problem before that zero valueed variables would get assigned to BSS segment that fooled obj_int_extract to give incorrect values. Change-Id: Icd94f80a8ab356879894ca508bf132d20b865299
-
- 30 May, 2012 1 commit
-
-
Alpha Lam authored
Add PRIVATE macro for adding private_extern directive for yasm to hide global symbols. This is only enabled if -DCHROMIUM is used with YASM. Also fixed a small problem with rtcd_defs.sh to guard TEMPORAL_DENOISING. Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857
-
- 24 May, 2012 2 commits
-
-
Alpha Lam authored
This change is to allow obj_int_extract to extract all integers in the data segment. With the const keyword these variables are forced into the .rodata segment even for zero variable value. We had a problem before that zero valueed variables would get assigned to BSS segment that fooled obj_int_extract to give incorrect values. Change-Id: Icd94f80a8ab356879894ca508bf132d20b865299
-
Alpha Lam authored
Add PRIVATE macro for adding private_extern directive for yasm to hide global symbols. This is only enabled if -DCHROMIUM is used with YASM. Also fixed a small problem with rtcd_defs.sh to guard TEMPORAL_DENOISING. Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857
-
- 02 May, 2012 1 commit
-
-
Timothy B. Terriberry authored
Original patch by Ginn Chen <ginn.chen@oracle.com> against libvpx v0.9.0. I've forward-ported it to the current version (which mostly involved removing hunks that were no longer relevant), since I've given up on getting Ginn to submit this upstream himself. Change-Id: I403c757c831c78d820ebcfe417e717b470a1d022
-
- 01 Mar, 2012 1 commit
-
-
John Koleszar authored
There's no useful reason to limit this timer to 1 second. Change-Id: Idd1960268624e8bdfe958d99833ae6482fdb423e
-
- 08 Feb, 2012 1 commit
-
-
KO Myung-Hun authored
Change-Id: I792d5236451905eb20a8ebe444ef5b2274e4f7a4
-
- 20 Jan, 2012 1 commit
-
-
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
-
- 18 Jan, 2012 1 commit
-
-
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
-
- 06 Jan, 2012 1 commit
-
-
Fritz Koenig authored
These targets are no longer maintained. Change-Id: I923103006c439849fc015c1ac45ee7a5443ebc6d
-
- 22 Sep, 2011 1 commit
-
-
Attila Nagy authored
Just a clean-up. Change-Id: Iea5b6dc925dcfa7db548bc1ab1a13d26ed5a2c9a
-
- 30 Jun, 2011 1 commit
-
-
Ronald S. Bultje authored
This should fix binaries using PIC on x86-32. Also should fix issue 343. Change-Id: I591de3ad68c8a8bb16054bd8f987a75b4e2bad02
-
- 08 Jun, 2011 1 commit
-
-
Johann authored
Better fix for #326. ICC happens to support the inline magic Change-Id: Ic367eea608c88d89475cb7b05d73500d2a1bc42b
-
- 19 Apr, 2011 1 commit
-
-
Johann authored
the win64 abi requires saving and restoring xmm6:xmm15. currently SAVE_XMM and RESTORE XMM only allow for saving xmm6:xmm7. allow specifying the highest register used and if the stack is unaligned. Change-Id: Ica5699622ffe3346d3a486f48eef0206c51cf867
-
- 18 Apr, 2011 1 commit
-
-
Johann authored
Went through the code and fixed it. Verified on Windows. Where possible, remove dependencies on xmm[67] Current code relies on pushing rbp to the stack to get 16 byte alignment. This broke when rbp wasn't pushed (vp8/encoder/x86/sad_sse3.asm). Work around this by using unaligned memory accesses. Revisit this and the offsets in vp8/encoder/x86/sad_sse3.asm in another change to SAVE_XMM. Change-Id: I5f940994d3ebfd977c3d68446cef20fd78b07877
-
- 12 Mar, 2011 1 commit
-
-
Rafael Ávila de Espíndola authored
Without this change I get link errors in firefox's libxul. It looks like the linker expect a particular pattern for getting the GOT. This patch changes webm to use the same pattern used by the compiler. Change-Id: Iea8c2e134ad45c1dc7d221ff885a8429bfa4e057
-
- 04 Mar, 2011 1 commit
-
-
Aron Rosenberg authored
Change-Id: I7504370c67a3c551627c6bb7e67c65f83d88b78e
-
- 17 Feb, 2011 1 commit
-
-
James Zern authored
- correct spelling - remove explicit file name w/\file (unnecessary when contained in the same file and prone to desync) Change-Id: I68a3960ac5ab84d0f2e5c9b2e29799f26dfccf23
-
- 28 Jan, 2011 1 commit
-
-
Tero Rintaluoma authored
Adds following targets to configure script to support RVCT compilation without operating system support (for Profiler or bare metal images). - armv5te-none-rvct - armv6-none-rvct - armv7-none-rvct To strip OS specific parts from the code "os_support"-config was added to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS specific parts such as OS specific includes and function calls for timers and threads etc. This was done to enable RVCT compilation for profiling purposes or running the image on bare metal target with Lauterbach. Removed separate AREA directives for READONLY data in armv6 and neon assembly files to fix the RVCT compilation. Otherwise "ldr <reg>, =label" syntax would have been needed to prevent linker errors. This syntax is not supported by older gnu assemblers. Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
-
- 27 Oct, 2010 1 commit
-
-
Yunqing Wang authored
Use mpsadbw, and calculate 8 sad at once. Function list: vp8_sad16x16x8_sse4 vp8_sad16x8x8_sse4 vp8_sad8x16x8_sse4 vp8_sad8x8x8_sse4 vp8_sad4x4x8_sse4 (test clip: tulip) For best quality mode, this gave encoder a 5% performance boost. For good quality mode with speed=1, this gave encoder a 3% performance boost. Change-Id: I083b5a39d39144f88dcbccbef95da6498e490134
-
- 25 Oct, 2010 1 commit
-
-
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
-
- 13 Oct, 2010 1 commit
-
-
Fritz Koenig authored
Use cpuid to check the vendor string against known architectures. Change-Id: I3fbd7f73638d71857a0c4a44a6275eb295fb4cef
-
- 12 Oct, 2010 1 commit
-
-
Fritz Koenig authored
=r was not restrictive enough and the compiler was not returning ebx correctly. Change-Id: I7606e384067bd5fb69189802f1ff64ccc5aa02d6
-
- 04 Oct, 2010 3 commits
-
-
Jan Kratochvil authored
nasm does not automatically assume the source's directory also for its include files. Provide nasm compatibility. No binary change by this patch with yasm on {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on {x86_64,i686}-fedora13-linux-gnu have been checked as safe. Change-Id: I386efa0cca5d401193416c11bd7363a283541645
-
Jan Kratochvil authored
nasm does not support `label wrt rip', it requires `rel label'. It is still fully compatible with yasm. Provide nasm compatibility. No binary change by this patch with yasm on {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on {x86_64,i686}-fedora13-linux-gnu have been checked as safe. Change-Id: I488773a4e930a56e43b0cc72d867ee5291215f50
-
Jan Kratochvil authored
nasm requires the instruction length (movd/movq) to match to its parameters. I find it more clear to really use 64bit instructions when we use 64bit registers in the assembly. Provide nasm compatibility. No binary change by this patch with yasm on {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on {x86_64,i686}-fedora13-linux-gnu have been checked as safe. Change-Id: Id9b1a5cdfb1bc05697e523c317a296df43d42a91
-
- 15 Sep, 2010 1 commit
-
-
Fritz Koenig authored
GET_GOT was producing a zero length call. This resulted in pipeline flushes occuring when returing from the assembly functions. Masked on out of order cores, but evident on Atom cores. Change-Id: I8c375af313e8a169c77adbaf956693c0cfeb5ccd
-
- 09 Sep, 2010 1 commit
-
-
John Koleszar authored
Changes 'The VP8 project' to 'The WebM project', for consistency with other webmproject.org repositories. Fixes issue #97. Change-Id: I37c13ed5fbdb9d334ceef71c6350e9febed9bbba
-
- 02 Sep, 2010 1 commit
-
-
John Koleszar authored
Changed to use QueryPerformanceCounter on Windows rather than only when building with MSVC, so that MSVC can link libs built with MinGW. Fixes issue #149. Change-Id: Ie2dc7edc8f4d096cf95ec5ffb1ab00f2d67b3e7d
-
- 02 Aug, 2010 1 commit
-
-
Jan Kratochvil authored
global label:data ^^ Provide nasm compatibility. No binary change by this patch with yasm on {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on {x86_64,i686}-fedora13-linux-gnu have been checked as safe. Change-Id: I10f17eb1e4d4a718d4ebd1d0ccddc807c365e021
-
- 24 Jun, 2010 1 commit
-
-
John Koleszar authored
These are mostly vestigial, it's up to the compiler to decide what should be inlined, and this collided with certain Windows platform SDKs. Change-Id: I80dd35de25eda7773156e355b5aef8f7e44e179b
-
- 21 Jun, 2010 1 commit
-
-
Timothy B. Terriberry authored
If the version script produced by the libvpx build system is not used when linking a shared library on x86-64 Linux, the constant data in the subpel filters produces R_X86_64_32 relocation errors due to the use of wrt rip addressing instead of wrt rip wrt ..gotpcrel. Instead of adding a new macro for this addressing mode, this patch sets the ELF visibility of these symbols to "hidden", which allows wrt rip addressing to work without a text relocation. This allows building a shared library without using the provided build system or a separate version script. Fixes http://code.google.com/p/webm/issues/detail?id=46 Change-Id: Ie108f9d9a4352e5af46938bf4750d2302c1b2dc2
-
- 18 Jun, 2010 1 commit
-
-
John Koleszar authored
When the license headers were updated, they accidentally contained trailing whitespace, so unfortunately we have to touch all the files again. Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
-
- 14 Jun, 2010 1 commit
-
-
Scott LaVarnway authored
Added sse2 version of vp8_regular_quantize_b which improved encode performance(for the clip used) by ~10% for 32 bit builds and ~3% for 64 bit builds. Also updated SHADOW_ARGS_TO_STACK to allow for more than 9 arguments. Change-Id: I62f78eabc8040b39f3ffdf21be175811e96b39af
-
- 11 Jun, 2010 1 commit
-
-
Makoto Kato authored
XMM6 to XMM15 are non-volatile on Windows x64 ABI. We have to save these registers. Change-Id: I4676309f1350af25c8a35f0c81b1f0499ab99076
-