Monero
Loading...
Searching...
No Matches
instructions_portable.cpp File Reference
#include <cfenv>
#include <cmath>
#include "common.hpp"
#include "intrin_portable.h"
#include "blake2/endian.h"
Include dependency graph for instructions_portable.cpp:

Classes

union  double_ser_t

Macros

#define HAVE_ROTR
#define HAVE_ROTL
#define LO(x)
#define HI(x)
#define HAVE_MULH
#define HAVE_SMULH

Functions

static void setRoundMode_ (uint32_t mode)
uint64_t rotr (uint64_t a, unsigned int b)
uint64_t rotl (uint64_t a, unsigned int b)
uint64_t mulh (uint64_t a, uint64_t b)
int64_t smulh (int64_t a, int64_t b)
void rx_reset_float_state ()
void rx_set_rounding_mode (uint32_t mode)
uint32_t rx_get_rounding_mode ()
double loadDoublePortable (const void *addr)

Macro Definition Documentation

◆ HAVE_MULH

#define HAVE_MULH

◆ HAVE_ROTL

#define HAVE_ROTL

◆ HAVE_ROTR

#define HAVE_ROTR

◆ HAVE_SMULH

#define HAVE_SMULH

◆ HI

#define HI ( x)
Value:
((x)>>32)

◆ LO

#define LO ( x)
Value:
((x)&0xffffffff)

Function Documentation

◆ loadDoublePortable()

double loadDoublePortable ( const void * addr)

◆ mulh()

uint64_t mulh ( uint64_t a,
uint64_t b )

◆ rotl()

uint64_t rotl ( uint64_t a,
unsigned int b )

◆ rotr()

uint64_t rotr ( uint64_t a,
unsigned int b )

◆ rx_get_rounding_mode()

uint32_t rx_get_rounding_mode ( )

◆ rx_reset_float_state()

void rx_reset_float_state ( )

◆ rx_set_rounding_mode()

void rx_set_rounding_mode ( uint32_t mode)

◆ setRoundMode_()

void setRoundMode_ ( uint32_t mode)
static

◆ smulh()

int64_t smulh ( int64_t a,
int64_t b )