1. 18 Feb, 2016 1 commit
  2. 23 Jan, 2016 1 commit
  3. 07 Jan, 2016 2 commits
  4. 29 Dec, 2015 1 commit
    • Janne Grunau's avatar
      checkasm: x86: post commit review fixes · f0f54117
      Janne Grunau authored
      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.
      f0f54117
  5. 24 Dec, 2015 1 commit
  6. 21 Dec, 2015 5 commits
  7. 14 Dec, 2015 1 commit
    • Janne Grunau's avatar
      arm: add a cpu flag for the VFPv2 vector mode · e2710e79
      Janne Grunau authored
      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.
      e2710e79
  8. 05 Dec, 2015 1 commit
  9. 03 Oct, 2015 1 commit
  10. 28 Sep, 2015 2 commits
    • Henrik Gramner's avatar
      checkasm/x86: Correctly handle variadic functions · cc285521
      Henrik Gramner authored
      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: 's avatarAnton Khirnov <anton@khirnov.net>
      cc285521
    • Henrik Gramner's avatar
      checkasm: Use a self-balancing tree · 5405584b
      Henrik Gramner authored
      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: 's avatarAnton Khirnov <anton@khirnov.net>
      5405584b
  11. 17 Sep, 2015 1 commit
  12. 06 Sep, 2015 1 commit
  13. 28 Aug, 2015 1 commit
  14. 20 Aug, 2015 2 commits
  15. 11 Aug, 2015 1 commit
  16. 30 Jul, 2015 1 commit
  17. 27 Jul, 2015 1 commit
  18. 26 Jul, 2015 1 commit
  19. 22 Jul, 2015 1 commit
  20. 21 Jul, 2015 1 commit
  21. 17 Jul, 2015 5 commits
  22. 15 Jul, 2015 1 commit
  23. 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