Checkasm: assembly testing and benchmarking tool
authorHenrik Gramner <henrik@gramner.com>
Sat, 11 Jul 2015 18:32:11 +0000 (20:32 +0200)
committerJanne Grunau <janne-libav@jannau.net>
Sun, 12 Jul 2015 14:39:07 +0000 (16:39 +0200)
commit8bc67ec2c0d2b5444d51a1bed1d50f0e10d92717
tree1fdb18b27eb19ac28461c715cb1fb369243fa1e7
parent796268654c7807c9a1cfb322c838383e2b900d60
Checkasm: assembly testing and benchmarking tool

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>
.gitignore
tests/Makefile
tests/checkasm/Makefile [new file with mode: 0644]
tests/checkasm/checkasm.c [new file with mode: 0644]
tests/checkasm/checkasm.h [new file with mode: 0644]
tests/checkasm/h264pred.c [new file with mode: 0644]
tests/checkasm/x86/Makefile [new file with mode: 0644]
tests/checkasm/x86/checkasm.asm [new file with mode: 0644]