summaryrefslogtreecommitdiff
path: root/tests/checkasm
Commit message (Collapse)AuthorAge
* 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
|
* checkasm: exit with status 0 instead of 1 if there are no tests to performHenrik Gramner2015-07-18
|
* cosmetics: Reformat checkasm testsLuca Barbato2015-07-17
|
* checkasm: Add unit tests for bswapdspHenrik Gramner2015-07-17
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* checkasm: Add unit tests for h264qpelHenrik Gramner2015-07-15
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Checkasm: assembly testing and benchmarking toolHenrik Gramner2015-07-12
It provides the following features: * verify correctness by comparing output to the C version. * detect failure to save and restore clobbered callee-saved registers. * detect 32-bit parameters being used as if they were 64-bit in x86-64 (the upper halves are not guaranteed to be zero - but in practice they very often are, which makes those bugs hard to spot otherwise). * easy benchmarking. Compile by running 'make checkasm'. Execute by running 'tests/checkasm/checkasm'. Optional arguments are '--bench' to run benchmarks for all functions, '--bench=<pattern>' to run benchmarks for all functions that starts with <pattern>, and '<integer>' to seed the PRNG for reproducible results. Contains unit tests for most h264pred functions to get started, more tests can be added afterwards using those as a reference. Loosely based on code from x264. Currently only supports x86 and x86-64, but additional architectures shouldn't be too much of an obstacle to add. Note that functions with floating point parameters or floating point return values are not supported. Some compiler-specific features or preprocessor hacks would likely be required to add support for that. Signed-off-by: Janne Grunau <janne-libav@jannau.net>