gem5  v22.1.0.0
Classes | Namespaces | Macros | Functions | Variables
sc_proxy.hh File Reference
#include <iostream>
#include "../../utils/functions.hh"
#include "../int/sc_int_base.hh"
#include "../int/sc_signed.hh"
#include "../int/sc_uint_base.hh"
#include "../int/sc_unsigned.hh"
#include "messages.hh"
#include "sc_bit.hh"
#include "sc_logic.hh"

Go to the source code of this file.

Classes

struct  sc_dt::sc_proxy_traits< sc_bv_base >
 
struct  sc_dt::sc_proxy_traits< sc_lv_base >
 
struct  sc_dt::sc_proxy_traits< sc_bitref_r< X > >
 
struct  sc_dt::sc_proxy_traits< sc_bitref< X > >
 
struct  sc_dt::sc_proxy_traits< sc_subref_r< X > >
 
struct  sc_dt::sc_proxy_traits< sc_subref< X > >
 
struct  sc_dt::sc_proxy_traits< sc_proxy< X > >
 
struct  sc_dt::sc_mixed_proxy_traits_helper< X, Y >
 
struct  sc_dt::sc_mixed_proxy_traits_helper< X, X >
 
struct  sc_dt::sc_proxy_traits< sc_concref_r< X, Y > >
 
struct  sc_dt::sc_proxy_traits< sc_concref< X, Y > >
 
class  sc_dt::sc_proxy< X >
 

Namespaces

 sc_dt
 

Macros

#define DECL_BITWISE_AND_OP_T(tp)
 
#define DECL_BITWISE_OR_OP_T(tp)
 
#define DECL_BITWISE_XOR_OP_T(tp)
 
#define DECL_REL_OP_T(tp)
 
#define DEFN_REL_OP_T(tp)
 

Functions

void sc_dt::sc_proxy_out_of_bounds (const char *msg, int64 val)
 
template<class X , class Y >
void sc_dt::assign_p_ (sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class T >
void sc_dt::assign_v_ (sc_proxy< X > &px, const T &a)
 
const std::string sc_dt::convert_to_bin (const char *s)
 
const std::string sc_dt::convert_to_fmt (const std::string &s, sc_numrep numrep, bool w_prefix)
 
template<class X , class Y >
X & sc_dt::operator&= (sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
const sc_lv_base sc_dt::operator& (const sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
X & sc_dt::operator|= (sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
const sc_lv_base sc_dt::operator| (const sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
X & sc_dt::operator^= (sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
const sc_lv_base sc_dt::operator^ (const sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
bool sc_dt::operator== (const sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
bool sc_dt::operator!= (const sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X >
void sc_dt::get_words_ (const X &x, int wi, sc_digit &x_dw, sc_digit &x_cw)
 
template<class X >
void sc_dt::set_words_ (X &x, int wi, sc_digit x_dw, sc_digit x_cw)
 
template<class X >
void sc_dt::extend_sign_w_ (X &x, int wi, bool sign)
 
template<class X >
void sc_dt::assign_v_ (sc_proxy< X > &px, const sc_int_base &a)
 
template<class X >
void sc_dt::assign_v_ (sc_proxy< X > &px, const sc_signed &a)
 
template<class X >
void sc_dt::assign_v_ (sc_proxy< X > &px, const sc_uint_base &a)
 
template<class X >
void sc_dt::assign_v_ (sc_proxy< X > &px, const sc_unsigned &a)
 
template<class X , class Y >
X & sc_dt::b_and_assign_ (sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
X & sc_dt::b_or_assign_ (sc_proxy< X > &px, const sc_proxy< Y > &py)
 
template<class X , class Y >
X & sc_dt::b_xor_assign_ (sc_proxy< X > &a, const sc_proxy< Y > &b)
 
template<class X >
const sc_lv_base sc_dt::lrotate (const sc_proxy< X > &x, int n)
 
template<class X >
const sc_lv_base sc_dt::rrotate (const sc_proxy< X > &x, int n)
 
template<class X >
const sc_lv_base sc_dt::reverse (const sc_proxy< X > &x)
 
template<class X >
sc_proxy< X >::value_type sc_dt::and_reduce (const sc_proxy< X > &a)
 
template<class X >
sc_proxy< X >::value_type sc_dt::nand_reduce (const sc_proxy< X > &a)
 
template<class X >
sc_proxy< X >::value_type sc_dt::or_reduce (const sc_proxy< X > &a)
 
template<class X >
sc_proxy< X >::value_type sc_dt::nor_reduce (const sc_proxy< X > &a)
 
template<class X >
sc_proxy< X >::value_type sc_dt::xor_reduce (const sc_proxy< X > &a)
 
template<class X >
sc_proxy< X >::value_type sc_dt::xnor_reduce (const sc_proxy< X > &a)
 
template<class X >
inline ::std::ostream & sc_dt::operator<< (::std::ostream &os, const sc_proxy< X > &a)
 
template<class X >
inline ::std::istream & sc_dt::operator>> (::std::istream &is, sc_proxy< X > &a)
 

Variables

const int sc_dt::SC_DIGIT_SIZE = BITS_PER_BYTE * sizeof(sc_digit)
 
const sc_digit sc_dt::SC_DIGIT_ZERO = (sc_digit)0
 
const sc_digit sc_dt::SC_DIGIT_ONE = (sc_digit)1
 
const sc_digit sc_dt::SC_DIGIT_TWO = (sc_digit)2
 

Macro Definition Documentation

◆ DECL_BITWISE_AND_OP_T

#define DECL_BITWISE_AND_OP_T (   tp)
Value:
template <class X> \
inline const sc_lv_base operator & (tp b, const sc_proxy<X> &px);
Bitfield< 7 > b
Definition: misc_types.hh:388
Bitfield< 23 > px
auto operator&(TypeTLB lhs, TypeTLB rhs)
Implementing the "&" bitwise operator for TypeTLB allows us to handle TypeTLB::unified efficiently.
Definition: tlb.hh:139

Definition at line 483 of file sc_proxy.hh.

◆ DECL_BITWISE_OR_OP_T

#define DECL_BITWISE_OR_OP_T (   tp)
Value:
template <class X> \
inline const sc_lv_base operator | (tp a, const sc_proxy<X> &px);
Bitfield< 8 > a
Definition: misc_types.hh:66
sc_event_or_expr operator|(sc_event_or_expr expr, sc_event const &e)
Definition: sc_event.cc:294

Definition at line 512 of file sc_proxy.hh.

◆ DECL_BITWISE_XOR_OP_T

#define DECL_BITWISE_XOR_OP_T (   tp)
Value:
template <class X> \
inline const sc_lv_base operator ^ (tp a, const sc_proxy<X> &px);
sc_signed operator^(const sc_unsigned &u, const sc_int_base &v)
Definition: sc_signed.cc:822

Definition at line 540 of file sc_proxy.hh.

◆ DECL_REL_OP_T

#define DECL_REL_OP_T (   tp)
Value:
template <class X> \
inline bool operator == (tp b, const sc_proxy<X> &px); \
\
template <class X> \
inline bool operator != (const sc_proxy<X> &px, tp b); \
\
template <class X> \
inline bool operator != (tp b, const sc_proxy<X> &px);
static bool operator==(const PCStateBase &a, const PCStateBase &b)
Definition: pcstate.hh:155
bool operator!=(const sc_proxy< X > &px, const sc_proxy< Y > &py)
Definition: sc_proxy.hh:1166

Definition at line 567 of file sc_proxy.hh.

◆ DEFN_REL_OP_T

#define DEFN_REL_OP_T (   tp)
Value:
template <class X> \
inline bool operator == (tp b, const sc_proxy<X> &px) { return (px == b); } \
\
template <class X> \
inline bool operator != (const sc_proxy<X> &px, tp b) { return !(px == b); } \
\
template <class X> \
inline bool operator != (tp b, const sc_proxy<X> &px) { return !(px == b); }

Definition at line 1172 of file sc_proxy.hh.


Generated on Wed Dec 21 2022 10:23:00 for gem5 by doxygen 1.9.1