gem5  v22.0.0.1
Classes | Namespaces | Macros | Functions
sc_fxval.hh File Reference
#include <iostream>
#include "../int/sc_int_base.hh"
#include "../int/sc_signed.hh"
#include "../int/sc_uint_base.hh"
#include "../int/sc_unsigned.hh"
#include "sc_fxval_observer.hh"
#include "scfx_rep.hh"

Go to the source code of this file.

Classes

class  sc_dt::sc_fxval
 
class  sc_dt::sc_fxval_fast
 

Namespaces

 sc_dt
 

Macros

#define SCFX_EXPLICIT_   explicit
 
#define SCFX_EXPLICIT_OTHER_   explicit
 
#define DECL_BIN_OP_T(op, tp)
 
#define DECL_BIN_OP_OTHER(op)
 
#define DECL_BIN_OP(op, dummy)
 
#define DECL_BIN_FNC_T(fnc, tp)
 
#define DECL_BIN_FNC_OTHER(fnc)
 
#define DECL_BIN_FNC(fnc)
 
#define DECL_REL_OP_T(op, tp)
 
#define DECL_REL_OP_OTHER(op)
 
#define DECL_REL_OP(op)
 
#define DECL_ASN_OP_T(op, tp)   sc_fxval &operator op(tp);
 
#define DECL_ASN_OP_OTHER(op)
 
#define DECL_ASN_OP(op)
 
#define DECL_BIN_OP_T(op, tp)
 
#define DECL_BIN_OP_OTHER(op)
 
#define DECL_BIN_OP(op, dummy)
 
#define DECL_BIN_FNC_T(fnc, tp)
 
#define DECL_BIN_FNC_OTHER(fnc)
 
#define DECL_BIN_FNC(fnc)
 
#define DECL_REL_OP_T(op, tp)
 
#define DECL_REL_OP_OTHER(op)
 
#define DECL_REL_OP(op)
 
#define DECL_ASN_OP_T(op, tp)   sc_fxval_fast &operator op(tp);
 
#define DECL_ASN_OP_OTHER(op)
 
#define DECL_ASN_OP(op)
 
#define DEFN_CTOR_T(tp, arg)
 
#define DEFN_CTOR_T_A(tp)   DEFN_CTOR_T(tp, a)
 
#define DEFN_CTOR_T_B(tp)   DEFN_CTOR_T(tp, a.to_double())
 
#define DEFN_CTOR_T_C(tp)   DEFN_CTOR_T(tp, a.value())
 
#define DEFN_BIN_OP_T(op, fnc, tp)
 
#define DEFN_BIN_OP_OTHER(op, fnc)
 
#define DEFN_BIN_OP(op, fnc)
 
#define DEFN_BIN_FNC_T(fnc, tp)
 
#define DEFN_BIN_FNC_OTHER(fnc)
 
#define DEFN_BIN_FNC(fnc)
 
#define DEFN_REL_OP_T(op, ret, tp)
 
#define DEFN_REL_OP_OTHER(op, ret)
 
#define DEFN_REL_OP(op, ret)
 
#define DEFN_ASN_OP_T(tp)
 
#define DEFN_ASN_OP_T(op, fnc, tp)
 
#define DEFN_ASN_OP_OTHER(op, fnc)
 
#define DEFN_ASN_OP(op, fnc)
 
#define DEFN_CTOR_T(tp, arg)
 
#define DEFN_CTOR_T_A(tp)   DEFN_CTOR_T(tp, static_cast<double>(a))
 
#define DEFN_CTOR_T_B(tp)   DEFN_CTOR_T(tp, from_string(a))
 
#define DEFN_CTOR_T_C(tp)   DEFN_CTOR_T(tp, a.to_double())
 
#define DEFN_BIN_OP_T(op, tp)
 
#define DEFN_BIN_OP_OTHER(op)
 
#define DEFN_BIN_OP(op, dummy)
 
#define DEFN_BIN_FNC_T(fnc, op, tp)
 
#define DEFN_BIN_FNC_OTHER(fnc, op)
 
#define DEFN_BIN_FNC(fnc, op)
 
#define DEFN_REL_OP_T(op, tp)
 
#define DEFN_REL_OP_OTHER(op)
 
#define DEFN_REL_OP(op)
 
#define DEFN_ASN_OP_T(tp)
 
#define DEFN_ASN_OP_T(op, tp)
 
#define DEFN_ASN_OP_OTHER(op)
 
#define DEFN_ASN_OP(op)
 

Functions

void sc_dt::neg (sc_fxval &c, const sc_fxval &a)
 
const sc_fxval sc_dt::operator/ (const sc_fxval &a, const sc_fxval &b)
 
const sc_fxval sc_dt::operator<< (const sc_fxval &a, int b)
 
const sc_fxval sc_dt::operator>> (const sc_fxval &a, int b)
 
void sc_dt::lshift (sc_fxval &c, const sc_fxval &a, int b)
 
void sc_dt::rshift (sc_fxval &c, const sc_fxval &a, int b)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &os, const sc_fxval &a)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &is, sc_fxval &a)
 
void sc_dt::neg (sc_fxval_fast &c, const sc_fxval_fast &a)
 
const sc_fxval_fast sc_dt::operator/ (const sc_fxval_fast &a, const sc_fxval_fast &b)
 
const sc_fxval_fast sc_dt::operator<< (const sc_fxval_fast &a, int b)
 
const sc_fxval_fast sc_dt::operator>> (const sc_fxval_fast &a, int b)
 
void sc_dt::lshift (sc_fxval_fast &c, const sc_fxval_fast &a, int b)
 
void sc_dt::rshift (sc_fxval_fast &c, const sc_fxval_fast &a, int b)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &os, const sc_fxval_fast &a)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &is, sc_fxval_fast &a)
 

Macro Definition Documentation

◆ DECL_ASN_OP [1/2]

#define DECL_ASN_OP (   op)
Value:
DECL_ASN_OP_T(op, int) \
DECL_ASN_OP_T(op, unsigned int) \
DECL_ASN_OP_T(op, long) \
DECL_ASN_OP_T(op, unsigned long) \
DECL_ASN_OP_T(op, float) \
DECL_ASN_OP_T(op, double) \
DECL_ASN_OP_T(op, const char *) \
DECL_ASN_OP_T(op, const sc_fxval &) \
DECL_ASN_OP_T(op, const sc_fxval_fast &) \
DECL_ASN_OP_T(op, const sc_fxnum &) \
DECL_ASN_OP_T(op, const sc_fxnum_fast &) \
DECL_ASN_OP_OTHER(op)

Definition at line 557 of file sc_fxval.hh.

◆ DECL_ASN_OP [2/2]

#define DECL_ASN_OP (   op)
Value:
DECL_ASN_OP_T(op, int) \
DECL_ASN_OP_T(op, unsigned int) \
DECL_ASN_OP_T(op, long) \
DECL_ASN_OP_T(op, unsigned long) \
DECL_ASN_OP_T(op, float) \
DECL_ASN_OP_T(op, double) \
DECL_ASN_OP_T(op, const char *) \
DECL_ASN_OP_T(op, const sc_fxval &) \
DECL_ASN_OP_T(op, const sc_fxval_fast &) \
DECL_ASN_OP_T(op, const sc_fxnum &) \
DECL_ASN_OP_T(op, const sc_fxnum_fast &) \
DECL_ASN_OP_OTHER(op)

Definition at line 557 of file sc_fxval.hh.

◆ DECL_ASN_OP_OTHER [1/2]

#define DECL_ASN_OP_OTHER (   op)
Value:
DECL_ASN_OP_T(op, uint64) \
DECL_ASN_OP_T(op, const sc_int_base &) \
DECL_ASN_OP_T(op, const sc_uint_base &) \
DECL_ASN_OP_T(op, const sc_signed &) \
DECL_ASN_OP_T(op, const sc_unsigned &)

Definition at line 549 of file sc_fxval.hh.

◆ DECL_ASN_OP_OTHER [2/2]

#define DECL_ASN_OP_OTHER (   op)
Value:
DECL_ASN_OP_T(op, uint64) \
DECL_ASN_OP_T(op, const sc_int_base &) \
DECL_ASN_OP_T(op, const sc_uint_base &) \
DECL_ASN_OP_T(op, const sc_signed &) \
DECL_ASN_OP_T(op, const sc_unsigned &)

Definition at line 549 of file sc_fxval.hh.

◆ DECL_ASN_OP_T [1/2]

#define DECL_ASN_OP_T (   op,
  tp 
)    sc_fxval &operator op(tp);

Definition at line 547 of file sc_fxval.hh.

◆ DECL_ASN_OP_T [2/2]

#define DECL_ASN_OP_T (   op,
  tp 
)    sc_fxval_fast &operator op(tp);

Definition at line 547 of file sc_fxval.hh.

◆ DECL_BIN_FNC [1/2]

#define DECL_BIN_FNC (   fnc)
Value:
friend void fnc (sc_fxval &, const sc_fxval &, const sc_fxval &); \
DECL_BIN_FNC_T(fnc, int) \
DECL_BIN_FNC_T(fnc, unsigned int) \
DECL_BIN_FNC_T(fnc, long) \
DECL_BIN_FNC_T(fnc, unsigned long) \
DECL_BIN_FNC_T(fnc, float) \
DECL_BIN_FNC_T(fnc, double) \
DECL_BIN_FNC_T(fnc, const char *) \
DECL_BIN_FNC_T(fnc, const sc_fxval_fast &) \
DECL_BIN_FNC_T(fnc, const sc_fxnum_fast &) \
DECL_BIN_FNC_OTHER(fnc)

Definition at line 485 of file sc_fxval.hh.

◆ DECL_BIN_FNC [2/2]

#define DECL_BIN_FNC (   fnc)
Value:
friend void fnc (sc_fxval_fast &, const sc_fxval_fast &, \
const sc_fxval_fast &); \
DECL_BIN_FNC_T(fnc, int) \
DECL_BIN_FNC_T(fnc, unsigned int) \
DECL_BIN_FNC_T(fnc, long) \
DECL_BIN_FNC_T(fnc, unsigned long) \
DECL_BIN_FNC_T(fnc, float) \
DECL_BIN_FNC_T(fnc, double) \
DECL_BIN_FNC_T(fnc, const char *) \
DECL_BIN_FNC_T(fnc, const sc_fxval &) \
DECL_BIN_FNC_T(fnc, const sc_fxnum &) \
DECL_BIN_FNC_OTHER(fnc)

Definition at line 485 of file sc_fxval.hh.

◆ DECL_BIN_FNC_OTHER [1/2]

#define DECL_BIN_FNC_OTHER (   fnc)
Value:
DECL_BIN_FNC_T(fnc, uint64) \
DECL_BIN_FNC_T(fnc, const sc_int_base &) \
DECL_BIN_FNC_T(fnc, const sc_uint_base &) \
DECL_BIN_FNC_T(fnc, const sc_signed &) \
DECL_BIN_FNC_T(fnc, const sc_unsigned &)

Definition at line 477 of file sc_fxval.hh.

◆ DECL_BIN_FNC_OTHER [2/2]

#define DECL_BIN_FNC_OTHER (   fnc)
Value:
DECL_BIN_FNC_T(fnc, uint64) \
DECL_BIN_FNC_T(fnc, const sc_int_base &) \
DECL_BIN_FNC_T(fnc, const sc_uint_base &) \
DECL_BIN_FNC_T(fnc, const sc_signed &) \
DECL_BIN_FNC_T(fnc, const sc_unsigned &)

Definition at line 477 of file sc_fxval.hh.

◆ DECL_BIN_FNC_T [1/2]

#define DECL_BIN_FNC_T (   fnc,
  tp 
)
Value:
friend void fnc (sc_fxval &, const sc_fxval &, tp); \
friend void fnc (sc_fxval &, tp, const sc_fxval &);

Definition at line 473 of file sc_fxval.hh.

◆ DECL_BIN_FNC_T [2/2]

#define DECL_BIN_FNC_T (   fnc,
  tp 
)
Value:
friend void fnc (sc_fxval_fast &, const sc_fxval_fast &, tp); \
friend void fnc (sc_fxval_fast &, tp, const sc_fxval_fast &);

Definition at line 473 of file sc_fxval.hh.

◆ DECL_BIN_OP [1/2]

#define DECL_BIN_OP (   op,
  dummy 
)
Value:
friend const sc_fxval operator op (const sc_fxval &, const sc_fxval &); \
DECL_BIN_OP_T(op, int) \
DECL_BIN_OP_T(op, unsigned int) \
DECL_BIN_OP_T(op, long) \
DECL_BIN_OP_T(op, unsigned long) \
DECL_BIN_OP_T(op, float) \
DECL_BIN_OP_T(op, double) \
DECL_BIN_OP_T(op, const char *) \
DECL_BIN_OP_T(op, const sc_fxval_fast &) \
DECL_BIN_OP_T(op, const sc_fxnum_fast &) \
DECL_BIN_OP_OTHER(op)

Definition at line 430 of file sc_fxval.hh.

◆ DECL_BIN_OP [2/2]

#define DECL_BIN_OP (   op,
  dummy 
)
Value:
friend const sc_fxval_fast operator op (const sc_fxval_fast &, \
const sc_fxval_fast &); \
DECL_BIN_OP_T(op, int) \
DECL_BIN_OP_T(op, unsigned int) \
DECL_BIN_OP_T(op, long) \
DECL_BIN_OP_T(op, unsigned long) \
DECL_BIN_OP_T(op, float) \
DECL_BIN_OP_T(op, double) \
DECL_BIN_OP_T(op, const char *) \
DECL_BIN_OP_OTHER(op)

Definition at line 430 of file sc_fxval.hh.

◆ DECL_BIN_OP_OTHER [1/2]

#define DECL_BIN_OP_OTHER (   op)
Value:
DECL_BIN_OP_T(op, uint64) \
DECL_BIN_OP_T(op, const sc_int_base &) \
DECL_BIN_OP_T(op, const sc_uint_base &) \
DECL_BIN_OP_T(op, const sc_signed &) \
DECL_BIN_OP_T(op, const sc_unsigned &)

Definition at line 422 of file sc_fxval.hh.

◆ DECL_BIN_OP_OTHER [2/2]

#define DECL_BIN_OP_OTHER (   op)
Value:
DECL_BIN_OP_T(op, uint64) \
DECL_BIN_OP_T(op, const sc_int_base &) \
DECL_BIN_OP_T(op, const sc_uint_base &) \
DECL_BIN_OP_T(op, const sc_signed &) \
DECL_BIN_OP_T(op, const sc_unsigned &)

Definition at line 422 of file sc_fxval.hh.

◆ DECL_BIN_OP_T [1/2]

#define DECL_BIN_OP_T (   op,
  tp 
)
Value:
friend const sc_fxval operator op (const sc_fxval &, tp); \
friend const sc_fxval operator op (tp, const sc_fxval &);

Definition at line 418 of file sc_fxval.hh.

◆ DECL_BIN_OP_T [2/2]

#define DECL_BIN_OP_T (   op,
  tp 
)
Value:
friend const sc_fxval_fast operator op (const sc_fxval_fast &, tp); \
friend const sc_fxval_fast operator op (tp, const sc_fxval_fast &);

Definition at line 418 of file sc_fxval.hh.

◆ DECL_REL_OP [1/2]

#define DECL_REL_OP (   op)
Value:
friend bool operator op (const sc_fxval &, const sc_fxval &); \
DECL_REL_OP_T(op, int) \
DECL_REL_OP_T(op, unsigned int) \
DECL_REL_OP_T(op, long) \
DECL_REL_OP_T(op, unsigned long) \
DECL_REL_OP_T(op, float) \
DECL_REL_OP_T(op, double) \
DECL_REL_OP_T(op, const char *) \
DECL_REL_OP_T(op, const sc_fxval_fast &) \
DECL_REL_OP_T(op, const sc_fxnum_fast &) \
DECL_REL_OP_OTHER(op)

Definition at line 524 of file sc_fxval.hh.

◆ DECL_REL_OP [2/2]

#define DECL_REL_OP (   op)
Value:
friend bool operator op (const sc_fxval_fast &, const sc_fxval_fast &); \
DECL_REL_OP_T(op, int) \
DECL_REL_OP_T(op, unsigned int) \
DECL_REL_OP_T(op, long) \
DECL_REL_OP_T(op, unsigned long) \
DECL_REL_OP_T(op, float) \
DECL_REL_OP_T(op, double) \
DECL_REL_OP_T(op, const char *) \
DECL_REL_OP_OTHER(op)

Definition at line 524 of file sc_fxval.hh.

◆ DECL_REL_OP_OTHER [1/2]

#define DECL_REL_OP_OTHER (   op)
Value:
DECL_REL_OP_T(op, uint64) \
DECL_REL_OP_T(op, const sc_int_base &) \
DECL_REL_OP_T(op, const sc_uint_base &) \
DECL_REL_OP_T(op, const sc_signed &) \
DECL_REL_OP_T(op, const sc_unsigned &)

Definition at line 516 of file sc_fxval.hh.

◆ DECL_REL_OP_OTHER [2/2]

#define DECL_REL_OP_OTHER (   op)
Value:
DECL_REL_OP_T(op, uint64) \
DECL_REL_OP_T(op, const sc_int_base &) \
DECL_REL_OP_T(op, const sc_uint_base &) \
DECL_REL_OP_T(op, const sc_signed &) \
DECL_REL_OP_T(op, const sc_unsigned &)

Definition at line 516 of file sc_fxval.hh.

◆ DECL_REL_OP_T [1/2]

#define DECL_REL_OP_T (   op,
  tp 
)
Value:
friend bool operator op (const sc_fxval &, tp); \
friend bool operator op (tp, const sc_fxval &);

Definition at line 512 of file sc_fxval.hh.

◆ DECL_REL_OP_T [2/2]

#define DECL_REL_OP_T (   op,
  tp 
)
Value:
friend bool operator op (const sc_fxval_fast &, tp); \
friend bool operator op (tp, const sc_fxval_fast &);

Definition at line 512 of file sc_fxval.hh.

◆ DEFN_ASN_OP [1/2]

#define DEFN_ASN_OP (   op)
Value:
inline sc_fxval_fast & \
sc_fxval_fast::operator op (const sc_fxval_fast &b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(*this) \
SC_FXVAL_FAST_OBSERVER_READ_(b) \
m_val op b.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_(*this) \
return *this; \
} \
DEFN_ASN_OP_T(op, unsigned int) \
DEFN_ASN_OP_T(op, long) \
DEFN_ASN_OP_T(op, unsigned long) \
DEFN_ASN_OP_T(op, float) \
DEFN_ASN_OP_T(op, double) \
DEFN_ASN_OP_T(op, const char *) \
DEFN_ASN_OP_T(op, const sc_fxval &) \
DEFN_ASN_OP_OTHER(op)

Definition at line 1693 of file sc_fxval.hh.

◆ DEFN_ASN_OP [2/2]

#define DEFN_ASN_OP (   op,
  fnc 
)
Value:
inline sc_fxval & \
sc_fxval::operator op (const sc_fxval &b) \
{ \
SC_FXVAL_OBSERVER_READ_(*this) \
SC_FXVAL_OBSERVER_READ_(b) \
scfx_rep *new_rep = sc_dt::fnc ## _scfx_rep(*m_rep, *b.m_rep); \
delete m_rep; \
m_rep = new_rep; \
SC_FXVAL_OBSERVER_WRITE_(*this) \
return *this; \
} \
DEFN_ASN_OP_T(op, fnc, int) \
DEFN_ASN_OP_T(op, fnc, unsigned int) \
DEFN_ASN_OP_T(op, fnc, long) \
DEFN_ASN_OP_T(op, fnc, unsigned long) \
DEFN_ASN_OP_T(op, fnc, float) \
DEFN_ASN_OP_T(op, fnc, double) \
DEFN_ASN_OP_T(op, fnc, const char *) \
DEFN_ASN_OP_T(op, fnc, const sc_fxval_fast &) \
DEFN_ASN_OP_OTHER(op, fnc)

Definition at line 1693 of file sc_fxval.hh.

◆ DEFN_ASN_OP_OTHER [1/2]

#define DEFN_ASN_OP_OTHER (   op)
Value:
DEFN_ASN_OP_T(op, uint64) \
DEFN_ASN_OP_T(op, const sc_int_base &) \
DEFN_ASN_OP_T(op, const sc_uint_base &) \
DEFN_ASN_OP_T(op, const sc_signed &) \
DEFN_ASN_OP_T(op, const sc_unsigned &)

Definition at line 1685 of file sc_fxval.hh.

◆ DEFN_ASN_OP_OTHER [2/2]

#define DEFN_ASN_OP_OTHER (   op,
  fnc 
)
Value:
DEFN_ASN_OP_T(op, fnc, uint64) \
DEFN_ASN_OP_T(op, fnc, const sc_int_base &) \
DEFN_ASN_OP_T(op, fnc, const sc_uint_base &) \
DEFN_ASN_OP_T(op, fnc, const sc_signed &) \
DEFN_ASN_OP_T(op, fnc, const sc_unsigned &)

Definition at line 1685 of file sc_fxval.hh.

◆ DEFN_ASN_OP_T [1/4]

#define DEFN_ASN_OP_T (   op,
  fnc,
  tp 
)
Value:
inline sc_fxval & \
sc_fxval::operator op (tp b) \
{ \
SC_FXVAL_OBSERVER_READ_(*this) \
sc_fxval tmp(b); \
scfx_rep *new_rep = sc_dt::fnc ## _scfx_rep(*m_rep, *tmp.m_rep); \
delete m_rep; \
m_rep = new_rep; \
SC_FXVAL_OBSERVER_WRITE_(*this) \
return *this; \
}

Definition at line 1674 of file sc_fxval.hh.

◆ DEFN_ASN_OP_T [2/4]

#define DEFN_ASN_OP_T (   op,
  tp 
)
Value:
inline sc_fxval_fast & \
sc_fxval_fast::operator op (tp b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(*this) \
sc_fxval_fast tmp(b); \
m_val op tmp.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_(*this) \
return *this; \
}

Definition at line 1674 of file sc_fxval.hh.

◆ DEFN_ASN_OP_T [3/4]

#define DEFN_ASN_OP_T (   tp)
Value:
inline sc_fxval & \
sc_fxval::operator = (tp b) \
{ \
sc_fxval tmp(b); \
*m_rep = *tmp.m_rep; \
SC_FXVAL_OBSERVER_WRITE_(*this) \
return *this; \
}

Definition at line 1674 of file sc_fxval.hh.

◆ DEFN_ASN_OP_T [4/4]

#define DEFN_ASN_OP_T (   tp)
Value:
inline sc_fxval_fast & \
sc_fxval_fast::operator = (tp a) \
{ \
sc_fxval_fast tmp(a); \
m_val = tmp.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_(*this) \
return *this; \
}

Definition at line 1674 of file sc_fxval.hh.

◆ DEFN_BIN_FNC [1/2]

#define DEFN_BIN_FNC (   fnc)
Value:
inline void \
fnc(sc_fxval &c, const sc_fxval &a, const sc_fxval &b) \
{ \
SC_FXVAL_OBSERVER_READ_(a) \
SC_FXVAL_OBSERVER_READ_(b) \
delete c.m_rep; \
c.m_rep = sc_dt::fnc ## _scfx_rep(*a.m_rep, *b.m_rep); \
SC_FXVAL_OBSERVER_WRITE_(c) \
} \
DEFN_BIN_FNC_T(fnc, int) \
DEFN_BIN_FNC_T(fnc, unsigned int) \
DEFN_BIN_FNC_T(fnc, long) \
DEFN_BIN_FNC_T(fnc, unsigned long) \
DEFN_BIN_FNC_T(fnc, float) \
DEFN_BIN_FNC_T(fnc, double) \
DEFN_BIN_FNC_T(fnc, const char *) \
DEFN_BIN_FNC_T(fnc, const sc_fxval_fast &) \
DEFN_BIN_FNC_OTHER(fnc)

Definition at line 1535 of file sc_fxval.hh.

◆ DEFN_BIN_FNC [2/2]

#define DEFN_BIN_FNC (   fnc,
  op 
)
Value:
inline void \
fnc (sc_fxval_fast &c, const sc_fxval_fast &a, const sc_fxval_fast &b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(a) \
SC_FXVAL_FAST_OBSERVER_READ_(b) \
c.m_val = a.m_val op b.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_(c) \
} \
DEFN_BIN_FNC_T(fnc, op, int) \
DEFN_BIN_FNC_T(fnc, op, unsigned int) \
DEFN_BIN_FNC_T(fnc, op, long) \
DEFN_BIN_FNC_T(fnc, op, unsigned long) \
DEFN_BIN_FNC_T(fnc, op, float) \
DEFN_BIN_FNC_T(fnc, op, double) \
DEFN_BIN_FNC_T(fnc, op, const char *) \
DEFN_BIN_FNC_OTHER(fnc, op)

Definition at line 1535 of file sc_fxval.hh.

◆ DEFN_BIN_FNC_OTHER [1/2]

#define DEFN_BIN_FNC_OTHER (   fnc)
Value:
DEFN_BIN_FNC_T(fnc, uint64) \
DEFN_BIN_FNC_T(fnc, const sc_int_base &) \
DEFN_BIN_FNC_T(fnc, const sc_uint_base &) \
DEFN_BIN_FNC_T(fnc, const sc_signed &) \
DEFN_BIN_FNC_T(fnc, const sc_unsigned &)

Definition at line 1527 of file sc_fxval.hh.

◆ DEFN_BIN_FNC_OTHER [2/2]

#define DEFN_BIN_FNC_OTHER (   fnc,
  op 
)
Value:
DEFN_BIN_FNC_T(fnc, op, uint64) \
DEFN_BIN_FNC_T(fnc, op, const sc_int_base &) \
DEFN_BIN_FNC_T(fnc, op, const sc_uint_base &) \
DEFN_BIN_FNC_T(fnc, op, const sc_signed &) \
DEFN_BIN_FNC_T(fnc, op, const sc_unsigned &)

Definition at line 1527 of file sc_fxval.hh.

◆ DEFN_BIN_FNC_T [1/2]

#define DEFN_BIN_FNC_T (   fnc,
  op,
  tp 
)
Value:
inline void \
fnc (sc_fxval_fast &c, const sc_fxval_fast &a, tp b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(a) \
sc_fxval_fast tmp(b); \
c.m_val = a.m_val op tmp.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_(c) \
} \
\
inline void \
fnc (sc_fxval_fast &c, tp a, const sc_fxval_fast &b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(b) \
sc_fxval_fast tmp(a); \
c.m_val = tmp.m_val op b.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_(c) \
}

Definition at line 1508 of file sc_fxval.hh.

◆ DEFN_BIN_FNC_T [2/2]

#define DEFN_BIN_FNC_T (   fnc,
  tp 
)
Value:
inline void \
fnc (sc_fxval &c, const sc_fxval &a, tp b) \
{ \
SC_FXVAL_OBSERVER_READ_(a) \
sc_fxval tmp(b); \
delete c.m_rep; \
c.m_rep = sc_dt::fnc ## _scfx_rep(*a.m_rep, *tmp.m_rep); \
SC_FXVAL_OBSERVER_WRITE_(c) \
} \
\
inline void \
fnc (sc_fxval &c, tp a, const sc_fxval &b) \
{ \
SC_FXVAL_OBSERVER_READ_(b) \
sc_fxval tmp(a); \
delete c.m_rep; \
c.m_rep = sc_dt::fnc ## _scfx_rep(*tmp.m_rep, *b.m_rep); \
SC_FXVAL_OBSERVER_WRITE_(c) \
}

Definition at line 1508 of file sc_fxval.hh.

◆ DEFN_BIN_OP [1/2]

#define DEFN_BIN_OP (   op,
  dummy 
)
Value:
inline const sc_fxval_fast \
operator op (const sc_fxval_fast &a, const sc_fxval_fast &b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(a) \
SC_FXVAL_FAST_OBSERVER_READ_(b) \
return sc_fxval_fast(a.m_val op b.m_val); \
} \
DEFN_BIN_OP_T(op, unsigned int) \
DEFN_BIN_OP_T(op, long) \
DEFN_BIN_OP_T(op, unsigned long) \
DEFN_BIN_OP_T(op, float) \
DEFN_BIN_OP_T(op, double) \
DEFN_BIN_OP_T(op, const char *) \
DEFN_BIN_OP_OTHER(op)

Definition at line 1441 of file sc_fxval.hh.

◆ DEFN_BIN_OP [2/2]

#define DEFN_BIN_OP (   op,
  fnc 
)
Value:
inline const sc_fxval \
operator op (const sc_fxval &a, const sc_fxval &b) \
{ \
SC_FXVAL_OBSERVER_READ_(a) \
SC_FXVAL_OBSERVER_READ_(b) \
return sc_fxval(sc_dt::fnc ## _scfx_rep( *a.m_rep, *b.m_rep)); \
} \
DEFN_BIN_OP_T(op, fnc, int) \
DEFN_BIN_OP_T(op, fnc, unsigned int) \
DEFN_BIN_OP_T(op, fnc, long) \
DEFN_BIN_OP_T(op, fnc, unsigned long) \
DEFN_BIN_OP_T(op, fnc, float) \
DEFN_BIN_OP_T(op, fnc, double) \
DEFN_BIN_OP_T(op, fnc, const char *) \
DEFN_BIN_OP_T(op, fnc, const sc_fxval_fast &) \
DEFN_BIN_OP_OTHER(op, fnc)

Definition at line 1441 of file sc_fxval.hh.

◆ DEFN_BIN_OP_OTHER [1/2]

#define DEFN_BIN_OP_OTHER (   op)
Value:
DEFN_BIN_OP_T(op, uint64) \
DEFN_BIN_OP_T(op, const sc_int_base &) \
DEFN_BIN_OP_T(op, const sc_uint_base &) \
DEFN_BIN_OP_T(op, const sc_signed &) \
DEFN_BIN_OP_T(op, const sc_unsigned &)

Definition at line 1433 of file sc_fxval.hh.

◆ DEFN_BIN_OP_OTHER [2/2]

#define DEFN_BIN_OP_OTHER (   op,
  fnc 
)
Value:
DEFN_BIN_OP_T(op, fnc, uint64) \
DEFN_BIN_OP_T(op, fnc, const sc_int_base &) \
DEFN_BIN_OP_T(op, fnc, const sc_uint_base &) \
DEFN_BIN_OP_T(op, fnc, const sc_signed &) \
DEFN_BIN_OP_T(op, fnc, const sc_unsigned &)

Definition at line 1433 of file sc_fxval.hh.

◆ DEFN_BIN_OP_T [1/2]

#define DEFN_BIN_OP_T (   op,
  fnc,
  tp 
)
Value:
inline const sc_fxval \
operator op (const sc_fxval &a, tp b) \
{ \
SC_FXVAL_OBSERVER_READ_(a) \
sc_fxval tmp(b); \
return sc_fxval(sc_dt::fnc ## _scfx_rep(*a.m_rep, *tmp.m_rep)); \
} \
\
inline \
const sc_fxval \
operator op (tp a, const sc_fxval &b) \
{ \
SC_FXVAL_OBSERVER_READ_(b) \
sc_fxval tmp(a); \
return sc_fxval(sc_dt::fnc ## _scfx_rep(*tmp.m_rep, *b.m_rep)); \
}

Definition at line 1416 of file sc_fxval.hh.

◆ DEFN_BIN_OP_T [2/2]

#define DEFN_BIN_OP_T (   op,
  tp 
)
Value:
inline const sc_fxval_fast \
operator op (const sc_fxval_fast &a, tp b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(a) \
sc_fxval_fast tmp(b); \
return sc_fxval_fast(a.m_val op tmp.m_val); \
} \
\
inline const sc_fxval_fast \
operator op (tp a, const sc_fxval_fast &b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(b) \
sc_fxval_fast tmp(a); \
return sc_fxval_fast(tmp.m_val op b.m_val); \
}

Definition at line 1416 of file sc_fxval.hh.

◆ DEFN_CTOR_T [1/2]

#define DEFN_CTOR_T (   tp,
  arg 
)
Value:
inline sc_fxval::sc_fxval(tp a, sc_fxval_observer *observer_) : \
m_rep(new scfx_rep(arg)), m_observer(observer_) \
{ \
SC_FXVAL_OBSERVER_WRITE_(*this) \
}

Definition at line 1333 of file sc_fxval.hh.

◆ DEFN_CTOR_T [2/2]

#define DEFN_CTOR_T (   tp,
  arg 
)
Value:
inline sc_fxval_fast::sc_fxval_fast( \
tp a, sc_fxval_fast_observer * observer_) : \
m_val(arg), m_observer(observer_) \
{ \
SC_FXVAL_FAST_OBSERVER_WRITE_(*this) \
}

Definition at line 1333 of file sc_fxval.hh.

◆ DEFN_CTOR_T_A [1/2]

#define DEFN_CTOR_T_A (   tp)    DEFN_CTOR_T(tp, a)

Definition at line 1343 of file sc_fxval.hh.

◆ DEFN_CTOR_T_A [2/2]

#define DEFN_CTOR_T_A (   tp)    DEFN_CTOR_T(tp, static_cast<double>(a))

Definition at line 1343 of file sc_fxval.hh.

◆ DEFN_CTOR_T_B [1/2]

#define DEFN_CTOR_T_B (   tp)    DEFN_CTOR_T(tp, a.to_double())

Definition at line 1344 of file sc_fxval.hh.

◆ DEFN_CTOR_T_B [2/2]

#define DEFN_CTOR_T_B (   tp)    DEFN_CTOR_T(tp, from_string(a))

Definition at line 1344 of file sc_fxval.hh.

◆ DEFN_CTOR_T_C [1/2]

#define DEFN_CTOR_T_C (   tp)    DEFN_CTOR_T(tp, a.value())

Definition at line 1345 of file sc_fxval.hh.

◆ DEFN_CTOR_T_C [2/2]

#define DEFN_CTOR_T_C (   tp)    DEFN_CTOR_T(tp, a.to_double())

Definition at line 1345 of file sc_fxval.hh.

◆ DEFN_REL_OP [1/2]

#define DEFN_REL_OP (   op)
Value:
inline bool \
operator op (const sc_fxval_fast &a, const sc_fxval_fast &b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(a) \
SC_FXVAL_FAST_OBSERVER_READ_(b) \
return (a.m_val op b.m_val); \
} \
DEFN_REL_OP_T(op, unsigned int) \
DEFN_REL_OP_T(op, long) \
DEFN_REL_OP_T(op, unsigned long) \
DEFN_REL_OP_T(op, float) \
DEFN_REL_OP_T(op, double) \
DEFN_REL_OP_T(op, const char *) \
DEFN_REL_OP_OTHER(op)

Definition at line 1605 of file sc_fxval.hh.

◆ DEFN_REL_OP [2/2]

#define DEFN_REL_OP (   op,
  ret 
)
Value:
inline bool \
operator op (const sc_fxval &a, const sc_fxval &b) \
{ \
SC_FXVAL_OBSERVER_READ_(a) \
SC_FXVAL_OBSERVER_READ_(b) \
int result = sc_dt::cmp_scfx_rep(*a.m_rep, *b.m_rep); \
return (ret); \
} \
DEFN_REL_OP_T(op, ret, int) \
DEFN_REL_OP_T(op, ret, unsigned int) \
DEFN_REL_OP_T(op, ret, long) \
DEFN_REL_OP_T(op, ret, unsigned long) \
DEFN_REL_OP_T(op, ret, float) \
DEFN_REL_OP_T(op, ret, double) \
DEFN_REL_OP_T(op, ret, const char *) \
DEFN_REL_OP_T(op, ret, const sc_fxval_fast &) \
DEFN_REL_OP_OTHER(op, ret)

Definition at line 1605 of file sc_fxval.hh.

◆ DEFN_REL_OP_OTHER [1/2]

#define DEFN_REL_OP_OTHER (   op)
Value:
DEFN_REL_OP_T(op, uint64) \
DEFN_REL_OP_T(op, const sc_int_base &) \
DEFN_REL_OP_T(op, const sc_uint_base &) \
DEFN_REL_OP_T(op, const sc_signed &) \
DEFN_REL_OP_T(op, const sc_unsigned &)

Definition at line 1597 of file sc_fxval.hh.

◆ DEFN_REL_OP_OTHER [2/2]

#define DEFN_REL_OP_OTHER (   op,
  ret 
)
Value:
DEFN_REL_OP_T(op, ret, uint64) \
DEFN_REL_OP_T(op, ret, const sc_int_base &) \
DEFN_REL_OP_T(op, ret, const sc_uint_base &) \
DEFN_REL_OP_T(op, ret, const sc_signed &) \
DEFN_REL_OP_T(op, ret, const sc_unsigned &)

Definition at line 1597 of file sc_fxval.hh.

◆ DEFN_REL_OP_T [1/2]

#define DEFN_REL_OP_T (   op,
  ret,
  tp 
)
Value:
inline bool \
operator op (const sc_fxval &a, tp b) \
{ \
SC_FXVAL_OBSERVER_READ_(a) \
sc_fxval tmp(b); \
int result = sc_dt::cmp_scfx_rep(*a.m_rep, *tmp.m_rep); \
return (ret); \
} \
\
inline bool \
operator op (tp a, const sc_fxval &b) \
{ \
SC_FXVAL_OBSERVER_READ_(b) \
sc_fxval tmp(a); \
int result = sc_dt::cmp_scfx_rep(*tmp.m_rep, *b.m_rep); \
return (ret); \
}

Definition at line 1580 of file sc_fxval.hh.

◆ DEFN_REL_OP_T [2/2]

#define DEFN_REL_OP_T (   op,
  tp 
)
Value:
inline bool \
operator op (const sc_fxval_fast &a, tp b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(a) \
sc_fxval_fast tmp(b); \
return (a.m_val op tmp.m_val); \
} \
\
inline bool \
operator op (tp a, const sc_fxval_fast &b) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_(b) \
sc_fxval_fast tmp(a); \
return (tmp.m_val op b.m_val); \
}

Definition at line 1580 of file sc_fxval.hh.

◆ SCFX_EXPLICIT_

#define SCFX_EXPLICIT_   explicit

Definition at line 65 of file sc_fxval.hh.

◆ SCFX_EXPLICIT_OTHER_

#define SCFX_EXPLICIT_OTHER_   explicit

Definition at line 66 of file sc_fxval.hh.

DECL_BIN_FNC_T
#define DECL_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.hh:473
sc_dt::cmp_scfx_rep
int cmp_scfx_rep(const scfx_rep &a, const scfx_rep &b)
Definition: scfx_rep.cc:1758
SC_FXVAL_FAST_OBSERVER_CONSTRUCT_
#define SC_FXVAL_FAST_OBSERVER_CONSTRUCT_(object)
Definition: sc_fxval_observer.hh:126
DEFN_BIN_FNC_T
#define DEFN_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.hh:1508
gem5::ArmISA::a
Bitfield< 8 > a
Definition: misc_types.hh:66
DEFN_REL_OP_T
#define DEFN_REL_OP_T(op, ret, tp)
Definition: sc_fxval.hh:1580
gem5::VegaISA::c
Bitfield< 2 > c
Definition: pagetable.hh:63
DEFN_BIN_OP_T
#define DEFN_BIN_OP_T(op, fnc, tp)
Definition: sc_fxval.hh:1416
gem5::ArmISA::b
Bitfield< 7 > b
Definition: misc_types.hh:382
sc_dt::uint64
uint64_t uint64
Definition: sc_nbdefs.hh:206
DEFN_ASN_OP_T
#define DEFN_ASN_OP_T(tp)
Definition: sc_fxval.hh:1674
DECL_REL_OP_T
#define DECL_REL_OP_T(op, tp)
Definition: sc_fxval.hh:512
sc_dt::int64
int64_t int64
Definition: sc_nbdefs.hh:205
sc_fxval
#define sc_fxval
Definition: fx_precision_double.h:65
DECL_ASN_OP_T
#define DECL_ASN_OP_T(op, tp)
Definition: sc_fxval.hh:547
SC_FXVAL_OBSERVER_CONSTRUCT_
#define SC_FXVAL_OBSERVER_CONSTRUCT_(object)
Definition: sc_fxval_observer.hh:120
DECL_BIN_OP_T
#define DECL_BIN_OP_T(op, tp)
Definition: sc_fxval.hh:418
gem5::X86ISA::op
Bitfield< 4 > op
Definition: types.hh:83

Generated on Sat Jun 18 2022 08:12:54 for gem5 by doxygen 1.8.17