1. 14 Jun, 2017 1 commit
  2. 17 Oct, 2016 2 commits
  3. 23 Jan, 2016 1 commit
  4. 21 Jan, 2016 1 commit
    • Geza Lore's avatar
      x86inc: Add debug symbols indicating sizes of compiled functions · d39c229e
      Geza Lore authored
      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.
      d39c229e
  5. 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
  6. 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
  7. 28 Sep, 2015 1 commit
  8. 27 Sep, 2015 1 commit
    • Henrik Gramner's avatar
      checkasm/x86: Correctly handle variadic functions · 7ca1de5b
      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.
      7ca1de5b
  9. 28 Aug, 2015 1 commit
  10. 25 Aug, 2015 1 commit
  11. 20 Aug, 2015 2 commits
  12. 19 Aug, 2015 2 commits
    • Henrik Gramner's avatar
      checkasm: x86: properly save rdx/edx in checked_call() · e6b8797b
      Henrik Gramner authored
      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.
      e6b8797b
    • 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
  13. 13 Jul, 2015 1 commit
  14. 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