FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
neontest.h File Reference
#include <inttypes.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "libavutil/bswap.h"

Go to the source code of this file.

Macros

#define storeneonregs(mem)
 
#define testneonclobbers(func, ctx,...)
 
#define wrap(func)
 

Macro Definition Documentation

#define storeneonregs (   mem)
Value:
__asm__ volatile( \
"stp d8, d9, [%0]\n\t" \
"stp d10, d11, [%0, #16]\n\t" \
"stp d12, d13, [%0, #32]\n\t" \
"stp d14, d15, [%0, #48]\n\t" \
:: "r"(mem) : "memory")
int mem
Definition: avisynth_c.h:684

Definition at line 31 of file neontest.h.

#define testneonclobbers (   func,
  ctx,
  ... 
)
Value:
uint64_t neon[2][8]; \
int ret; \
storeneonregs(neon[0]); \
ret = __real_ ## func(ctx, __VA_ARGS__); \
storeneonregs(neon[1]); \
if (memcmp(neon[0], neon[1], sizeof(neon[0]))) { \
int i; \
"NEON REGS CLOBBERED IN %s!\n", #func); \
for (i = 0; i < 8; i ++) \
if (neon[0][i] != neon[1][i]) { \
"d%-2d = %016"PRIx64"\n", \
8 + i, av_bswap64(neon[0][i])); \
" -> %016"PRIx64"\n", \
av_bswap64(neon[1][i])); \
} \
abort(); \
} \
#define av_log(a,...)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:176
return
#define storeneonregs(mem)
Definition: neontest.h:31
static uint64_t av_const av_bswap64(uint64_t x)
Definition: bswap.h:73
int(* func)(AVBPrint *dst, const char *in, const char *arg)
Definition: jacosubdec.c:67
if(ret< 0)
Definition: vf_mcdeint.c:280
for(j=16;j >0;--j)

Definition at line 39 of file neontest.h.

Referenced by wrap().

#define wrap (   func)