summaryrefslogtreecommitdiff
path: root/tests/checkasm
Commit message (Collapse)AuthorAge
* checkasm: add vp9 MC tests.Ronald S. Bultje2016-08-03
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: Cast unsigned to signedLuca Barbato2016-07-23
| | | | | Avoid a warning for passing an unsigned value to abs(), some compilers might optimize away abs().
* checkasm: add HEVC test for testing IDCT DCAlexandra Hájková2016-07-22
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* arm: Check for support for the .fpu directiveMartin Storsjö2016-07-21
| | | | | | | When targeting COFF (windows), clang doesn't support this directive (while binutils supports it for all targets). Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: arm: Ignore changes to bits 0-4 and 7 of FPSCRMartin Storsjö2016-07-17
| | | | | | | | | These bits are set by exceptions in NEON instructions. Also print the differing bits when FPSCR is clobbered, and use bic instead of lsl, for clearing the topmost bits. Signed-off-by: Martin Storsjö <martin@martin.st>
* cheackasm/arm: remove NEON instructions from checkasm_checked_call_vfpJanne Grunau2016-07-17
| | | | | | Fixes AS error on non NEON builds introduced in 71a04721145. Also set the fpu directly to vfp in checkasm.S to cause build errors on NEON builds.
* checkasm: arm: Don't start new const blocks for each stringMartin Storsjö2016-07-17
| | | | | | | | | | | | Each const block needs to be terminated by one endconst invocation so either call endconst after each, or just declare plain labels to the later strings. This fixes errors such as this, on some binutils versions: checkasm.S:38: Error: Macro `endconst' was already defined Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: arm: report the first clobbered register in checkasm_checked_callJanne Grunau2016-07-16
|
* checkasm/arm: preserve the stack alignment checkasm_checked_callJanne Grunau2016-07-13
| | | | | | | | | The stack used by checkasm_checked_call_vfp was a multiple of 4 when the checked function is called. AAPCS requires a double word (8 byte) aligned stack public interfaces. Since both calls are public interfaces the stack is misaligned when the checked is called. Might fix the SIGBUS error in the armv7-linux-clang-3.7 fate config.
* checkasm: vp8.mc: initialize the full src buffer after ec32574209fJanne Grunau2016-07-13
| | | | Fixes "Use of uninitialised value" valgrind warnings in checkasm.
* checkasm/arm: align the clobber check data properly for ldrdJanne Grunau2016-07-10
| | | | Should fix the SIGBUS in the armv7-linux-clang-3.7 fate target.
* checkasm: vp8: mc: test unequal width/height for partitionsJanne Grunau2016-07-10
|
* checkasm: Add tests for vp8dspMartin Storsjö2016-07-08
| | | | | | | The tests are inspired by similar tests for vp9 by Ronald Bultje. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: hevc: Iterate over features first, then over bitdepthsMartin Storsjö2016-06-29
| | | | | | | | | | | | | | | This avoids listing the same feature multiple times in the test output. Previously the output contained something like this: SSE2: - hevc_mc.qpel [OK] - hevc_mc.epel [OK] - hevc_mc.unweighted_pred [OK] - hevc_mc.qpel [OK] - hevc_mc.epel [OK] - hevc_mc.unweighted_pred [OK] Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: h264dsp: Move the x and y variables into the randomize_buffer macroMartin Storsjö2016-06-28
| | | | | | | This avoids the risk of accidentally clobbering such variables outside of the macro if the same variables are used there. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: h264dsp: Initialize the padding areaMartin Storsjö2016-06-28
| | | | | | | | This fixes valgrind warnings about conditional jumps based on uninitialized data (even though the uninitialized data only ever was compared with a direct copy of the same uninitialized data). Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: Issue emms after benchmarking functionsMartin Storsjö2016-06-21
| | | | | | | | | | | | | | The functions may not clean up properly after using MMX registers. For the normal testing calls, the checkasm_checked_call functions will do the cleanup (and check that functions that should clean up do it as well), but when benchmarking functions that don't clean up, we don't currently properly clean up at all. This causes issues if a benchmarked function is followed by testing of a function that is supposed to not clobber the MMX/FPU state but doesn't touch it at all. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: Add tests for h264 idctMartin Storsjö2016-06-17
| | | | | | | The tests are inspired by similar tests for vp9 by Ronald Bultje. Signed-off-by: Martin Storsjö <martin@martin.st>
* Split global .gitignore file into per-directory filesDiego Biurrun2016-05-13
|
* cosmetics: Fix spelling mistakesVittorio Giovara2016-05-04
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* build: miscellaneous cosmeticsDiego Biurrun2016-04-07
| | | | | | Restore alphabetical order in lists, break overly long lines, do some prettyprinting, add some explanatory section comments, group parts together that belong together logically.
* checkasm: Use standard multiple inclusion guardsDiego Biurrun2016-02-18
|
* x86inc: Add debug symbols indicating sizes of compiled functionsGeza Lore2016-01-23
| | | | | | | | | | | Some debuggers/profilers use this metadata to determine which function a given instruction is in; without it they get can confused by local labels (if you haven't stripped those). On the other hand, some tools are still confused even with this metadata. e.g. this fixes `gdb`, but not `perf`. Currently only implemented for ELF. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: Check register clobbering on aarch64Martin Storsjö2016-01-07
| | | | | | | This is disabled on iOS, since iOS uses a slightly different ABI for vararg parameters. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: Check register clobbering on armMartin Storsjö2016-01-07
| | | | | | | | | | | Use two separate functions, depending on whether VFP/NEON is available. This is set to require armv5te - it uses blx, which is only available since armv5t, but we don't have a separate configure item for that. (It also uses ldrd, which requires armv5te, but this could be avoided if necessary.) Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: x86: post commit review fixesJanne Grunau2015-12-29
| | | | | | | Check the full FPU tag word instead of only the lower half and simplify the comparison. Use upper-case function base name as macro name to instantiate both checked_call variants.
* dca: remove unused decode_hf function and quant_d tablesAlexandra Hájková2015-12-24
| | | | | They were superseded with their integer equivalents. Rename integer decode_hf to decode_hf.
* checkasm: add fmtconvert testsJanne Grunau2015-12-21
|
* checkasm: add synth_filter testJanne Grunau2015-12-21
|
* checkasm: add tests for dcadspJanne Grunau2015-12-21
|
* checkasm: add float comparison util functionsJanne Grunau2015-12-21
|
* x86: checkasm: check for or handle missing cleanup after MMX instructionsJanne Grunau2015-12-21
| | | | | | | | Not every asm routine is expected clear the MMX state after returning. It is however a requisite for testing floating point code in checkasm. Annotate functions requiring cleanup with declare_func_emms() and issue emms after the call. The remaining functions are checked for having a cleared MMX state after return.
* arm: add a cpu flag for the VFPv2 vector modeJanne Grunau2015-12-14
| | | | | | | | | | | | | | The vector mode was deprecated in ARMv7-A/VFPv3 and various cpu implementations do not support it in hardware. Vector mode code will depending the OS either be emulated in software or result in an illegal instruction on cpus which does not support it. This was not really problem in practice since NEON implementations of the same functions are preferred. It will however become a problem for checkasm which tests every cpu flag separately. Since this is a cpu feature newer cpu do not support anymore the behaviour of this flag differs from the other flags. It can be only activated by runtime cpu feature selection.
* checkasm: add HEVC MC testsAnton Khirnov2015-12-05
|
* checkasm: Fix the function name sorting algorithmHenrik Gramner2015-10-03
| | | | | | The previous implementation was behaving incorrectly in some corner cases. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm/x86: Correctly handle variadic functionsHenrik Gramner2015-09-28
| | | | | | | | | | The System V ABI on x86-64 specifies that the al register contains an upper bound of the number of arguments passed in vector registers when calling variadic functions, so we aren't allowed to clobber it. checkasm_fail_func() is a variadic function so also zero al before calling it. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: Use a self-balancing treeHenrik Gramner2015-09-28
| | | | | | | | | | | | | | Tested functions are internally kept in a binary search tree for efficient lookups. The downside of the current implementation is that the tree quickly becomes unbalanced which causes an unneccessary amount of comparisons between nodes. Improve this by changing the tree into a self-balancing left-leaning red-black tree with a worst case lookup/insertion time complexity of O(log n). Significantly reduces the recursion depth and makes the tests run around 10% faster overall. The relative performance improvement compared to the existing non-balanced tree will also most likely increase as more tests are added. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: v210: Fix array overwriteHenrik Gramner2015-09-17
|
* checkasm: add unit tests for v210encHenrik Gramner2015-09-06
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* checkasm: Fix floating point arguments on 64-bit WindowsHenrik Gramner2015-08-28
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: Explicitly declare function prototypesHenrik Gramner2015-08-20
| | | | | | | | | | | | Now we no longer have to rely on function pointers intentionally declared without specified argument types. This makes it easier to support functions with floating point parameters or return values as well as functions returning 64-bit values on 32-bit architectures. It also avoids having to explicitly cast strides to ptrdiff_t for example. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: x86: properly save rdx/edx in checked_call()Henrik Gramner2015-08-20
| | | | | | | | | | | If the return value doesn't fit in a single register rdx/edx can in some cases be used in addition to rax/eax. Doesn't affect any of the existing checkasm tests but might be useful later. Also comment the relevant code a bit better. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: Remove unnecessary includeHenrik Gramner2015-08-11
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: Include io.h for isatty, if availableMartin Storsjö2015-07-30
| | | | | | | | configure does check for isatty, and checkasm properly checks HAVE_ISATTY, but on some platforms (e.g. WinRT), io.h needs to be included for isatty to be available. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: Modify report formatHenrik Gramner2015-07-27
| | | | | | | | Makes it a bit more clear where each test belongs. Suggested by Anton Khirnov. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: Use LOCAL_ALIGNEDMichael Niedermayer2015-07-26
| | | | | | Fixes alignment issues and bus errors. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: remove empty array initializer list in h264pred testJanne Grunau2015-07-22
| | | | Fixes MSVC compilation.
* checkasm: Always link staticallyLuca Barbato2015-07-21
| | | | Checkasm needs to use internal symbols that should not be made public.
* checkasm: test all architectures with optimisationsJanne Grunau2015-07-18
|
* checkasm: Give macro a body to avoid potential unexpected syntax issuesMichael Niedermayer2015-07-18
|