69#ifndef __SYSTEMC_EXT_DT_INT_SC_UINT_BASE_HH__
70#define __SYSTEMC_EXT_DT_INT_SC_UINT_BASE_HH__
167 *xz_present_p =
false;
176 dst_p[word_i] &= ~bit_mask;
187 dst_p[word_i] |= bit_mask;
190 dst_p[word_i] &= ~bit_mask;
202 bool operator ! ()
const;
203 bool operator ~ ()
const;
254 virtual void concat_set(
int64 src,
int low_i);
255 virtual void concat_set(
const sc_signed &src,
int low_i);
256 virtual void concat_set(
const sc_unsigned &src,
int low_i);
257 virtual void concat_set(
uint64 src,
int low_i);
260 void scan(::std::istream &is=::std::cin);
266inline ::std::istream &operator >> (::std::istream &,
sc_uint_bitref &);
311 *xz_present_p =
false;
314 virtual bool concat_get_ctrl(
sc_digit *dst_p,
int low_i)
const;
315 virtual bool concat_get_data(
sc_digit *dst_p,
int low_i)
const;
337 unsigned int to_uint()
const;
338 long to_long()
const;
339 unsigned long to_ulong()
const;
340 int64 to_int64()
const;
342 double to_double()
const;
350 print(::std::ostream &os=::std::cout)
const
405 return operator = (
a->to_uint64());
409 operator = (
unsigned long a)
419 operator = (
unsigned int a)
434 operator = (
double a)
444 virtual void concat_set(
int64 src,
int low_i);
445 virtual void concat_set(
const sc_signed &src,
int low_i);
446 virtual void concat_set(
const sc_unsigned &src,
int low_i);
447 virtual void concat_set(
uint64 src,
int low_i);
450 void scan(::std::istream &is=::std::cin);
456inline ::std::istream &operator >> (::std::istream &,
sc_uint_subref &);
488 if (i < 0 || i >=
m_len) {
496 if (r < 0 || l >=
m_len || l < r) {
501 void check_value()
const;
597 operator = (
unsigned long a)
611 operator = (
unsigned int a)
632 operator = (
double a)
750 return a.m_val ==
b.m_val;
755 return a.m_val !=
b.m_val;
760 return a.m_val <
b.m_val;
765 return a.m_val <=
b.m_val;
770 return a.m_val >
b.m_val;
775 return a.m_val >=
b.m_val;
810 *xz_present_p =
false;
813 virtual bool concat_get_ctrl(
sc_digit *dst_p,
int low_i)
const;
814 virtual bool concat_get_data(
sc_digit *dst_p,
int low_i)
const;
816 virtual void concat_set(
int64 src,
int low_i);
817 virtual void concat_set(
const sc_signed &src,
int low_i);
818 virtual void concat_set(
const sc_unsigned &src,
int low_i);
819 virtual void concat_set(
uint64 src,
int low_i);
852 print(::std::ostream &os=::std::cout)
const
857 void scan(::std::istream &is=::std::cin);
866inline ::std::istream &operator >> (::std::istream &,
sc_uint_base &);
877inline sc_uint_bitref_r::operator
uint64 ()
const
883sc_uint_bitref_r::operator ! ()
const
889sc_uint_bitref_r::operator ~ ()
const
894inline ::std::ostream &
910inline sc_uint_bitref &
925sc_uint_bitref::operator = (
bool b)
932sc_uint_bitref::operator &= (
bool b)
941sc_uint_bitref::operator |= (
bool b)
950sc_uint_bitref::operator ^= (
bool b)
958inline ::std::istream &
987 return a.and_reduce();
993 return a.or_reduce();
999 return a.xor_reduce();
1025 return a.to_ulong();
1031 return a.to_int64();
1037 return a.to_uint64();
1043 return a.to_double();
1047inline const std::string
1051 return a.to_string(numrep);
1054inline const std::string
1058 return a.to_string(numrep, w_prefix);
1065 return a.and_reduce();
1070 return a.nand_reduce();
1075 return a.or_reduce();
1080 return a.nor_reduce();
1085 return a.xor_reduce();
1090 return a.xnor_reduce();
1093inline ::std::ostream &
1109inline sc_uint_subref &
1116sc_uint_subref::operator = (
const char *
a)
1119 return (*
this = aa =
a);
1122inline ::std::istream &
1137inline sc_uint_bitref &
1214 return a.and_reduce();
1219 return a.nand_reduce();
1224 return a.or_reduce();
1229 return a.nor_reduce();
1234 return a.xor_reduce();
1239 return a.xnor_reduce();
1242inline ::std::ostream &
1249inline ::std::istream &
bool operator==(const arr_struct1 &, const arr_struct1 &)
void invalid_index(int i) const
sc_uint_base(const sc_uint_subref_r &a)
sc_uint_base(uint_type v, int w)
sc_uint_base(const sc_generic_base< T > &a)
unsigned long to_ulong() const
sc_uint_base(int w=sc_length_param().len())
void check_range(int l, int r) const
void check_length() const
void check_index(int i) const
friend class sc_uint_subref_r
void print(::std::ostream &os=::std::cout) const
virtual int concat_length(bool *xz_present_p) const
void invalid_range(int l, int r) const
void invalid_length() const
unsigned int to_uint() const
friend class sc_uint_bitref
friend class sc_uint_bitref_r
const std::string to_string(sc_numrep numrep=SC_DEC) const
virtual uint64 concat_get_uint64() const
friend class sc_uint_subref
sc_uint_base(const sc_uint_base &a)
void print(::std::ostream &os=::std::cout) const
friend class sc_uint_base
virtual uint64 concat_get_uint64() const
virtual int concat_length(bool *xz_present_p) const
void initialize(const sc_uint_base *obj_p, int index_)
virtual bool concat_get_ctrl(sc_digit *dst_p, int low_i) const
virtual bool concat_get_data(sc_digit *dst_p, int low_i) const
sc_uint_bitref_r(const sc_uint_bitref_r &init)
friend class sc_uint_signal
virtual ~sc_uint_bitref_r()
sc_uint_bitref(const sc_uint_bitref &init)
friend class sc_uint_base
static sc_core::sc_vpool< sc_uint_bitref > m_pool
virtual int concat_length(bool *xz_present_p) const
void initialize(const sc_uint_base *obj_p, int left_i, int right_i)
friend class sc_uint_base
sc_uint_subref_r(const sc_uint_subref_r &init)
const std::string to_string(sc_numrep numrep=SC_DEC) const
virtual uint64 concat_get_uint64() const
unsigned long to_ulong() const
unsigned int to_uint() const
void print(::std::ostream &os=::std::cout) const
virtual ~sc_uint_subref_r()
friend class sc_uint_subref
friend class sc_uint_base
sc_uint_subref(const sc_uint_subref &init)
static sc_core::sc_vpool< sc_uint_subref > m_pool
sc_uint_bitref & operator[](int i)
sc_uint_subref & range(int left, int right)
void check_range(int l, int r) const
void check_index(int i) const
sc_uint_subref & operator()(int left, int right)
sc_uint_bitref & bit(int i)
bool sc_io_show_base(::std::ostream &os)
double uint64_to_double(uint64 a)
sc_proxy< X >::value_type or_reduce(const sc_proxy< X > &a)
sc_proxy< X >::value_type xor_reduce(const sc_proxy< X > &a)
sc_numrep sc_io_base(::std::ostream &os, sc_numrep def_base)
static const uint64 UINT_ONE
const uint_type mask_int[SC_INTWIDTH][SC_INTWIDTH]
sc_proxy< X >::value_type nor_reduce(const sc_proxy< X > &a)
static const uint64 UINT_ZERO
static const uint64 UINT64_32ONES
const std::string to_string(sc_enc enc)
sc_proxy< X >::value_type and_reduce(const sc_proxy< X > &a)
sc_proxy< X >::value_type xnor_reduce(const sc_proxy< X > &a)
sc_proxy< X >::value_type nand_reduce(const sc_proxy< X > &a)
std::ostream & operator<<(std::ostream &os, gem5::RiscvISA::PrivilegeMode pm)