• Henrik Gramner's avatar
    Checkasm: assembly testing and benchmarking tool · 8bc67ec2
    Henrik Gramner authored
    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: 's avatarJanne Grunau <janne-libav@jannau.net>
    8bc67ec2
checkasm.h 4.3 KB