emp-toolkit
block.h File Reference
#include <wmmintrin.h>
#include <emmintrin.h>
#include <xmmintrin.h>
#include <stdio.h>

Go to the source code of this file.

Macros

#define garble_xor(x, y)   _mm_xor_si128(x,y)
 
#define garble_zero_block()   _mm_setzero_si128()
 
#define garble_equal(x, y)   (_mm_movemask_epi8(_mm_cmpeq_epi8(x,y)) == 0xffff)
 
#define garble_unequal(x, y)   (_mm_movemask_epi8(_mm_cmpeq_epi8(x,y)) != 0xffff)
 
#define garble_lsb(x)   (*((char *) &x) & 1)
 
#define garble_make_block(X, Y)   _mm_set_epi64((__m64)(X), (__m64)(Y))
 
#define garble_double(B)   _mm_slli_epi64(B,1)
 

Typedefs

typedef __m128i block
 

Functions

block garble_seed (block *seed)
 
block garble_random_block (void)
 
blockgarble_allocate_blocks (size_t nblocks)
 
int block_vfprintf (FILE *stream, const char *format, va_list ap)
 
int block_fprintf (FILE *stream, const char *format,...)
 
int block_printf (const char *format,...)
 

Macro Definition Documentation

§ garble_double

#define garble_double (   B)    _mm_slli_epi64(B,1)

§ garble_equal

#define garble_equal (   x,
 
)    (_mm_movemask_epi8(_mm_cmpeq_epi8(x,y)) == 0xffff)

§ garble_lsb

#define garble_lsb (   x)    (*((char *) &x) & 1)

§ garble_make_block

#define garble_make_block (   X,
 
)    _mm_set_epi64((__m64)(X), (__m64)(Y))

§ garble_unequal

#define garble_unequal (   x,
 
)    (_mm_movemask_epi8(_mm_cmpeq_epi8(x,y)) != 0xffff)

§ garble_xor

#define garble_xor (   x,
 
)    _mm_xor_si128(x,y)

§ garble_zero_block

#define garble_zero_block ( )    _mm_setzero_si128()

Typedef Documentation

§ block

typedef __m128i block

Function Documentation

§ block_fprintf()

int block_fprintf ( FILE *  stream,
const char *  format,
  ... 
)

§ block_printf()

int block_printf ( const char *  format,
  ... 
)

§ block_vfprintf()

int block_vfprintf ( FILE *  stream,
const char *  format,
va_list  ap 
)

§ garble_allocate_blocks()

block* garble_allocate_blocks ( size_t  nblocks)

§ garble_random_block()

block garble_random_block ( void  )

§ garble_seed()

block garble_seed ( block seed)