1. 21 Dec, 2015 1 commit
    • Janne Grunau's avatar
      x86: checkasm: check for or handle missing cleanup after MMX instructions · 711781d7
      Janne Grunau authored
      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.
      711781d7
  2. 20 Aug, 2015 1 commit
    • Henrik Gramner's avatar
      checkasm: Explicitly declare function prototypes · 515b69f8
      Henrik Gramner authored
      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: 's avatarAnton Khirnov <anton@khirnov.net>
      515b69f8
  3. 19 Aug, 2015 1 commit
    • Henrik Gramner's avatar
      checkasm: Explicitly declare function prototypes · 18b101ff
      Henrik Gramner authored
      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.
      18b101ff
  4. 26 Jul, 2015 1 commit
  5. 22 Jul, 2015 2 commits
  6. 17 Jul, 2015 1 commit
  7. 12 Jul, 2015 1 commit
    • 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