69#ifndef __SYSTEMC_EXT_DT_INT_SC_INT_BASE_HH__
70#define __SYSTEMC_EXT_DT_INT_SC_INT_BASE_HH__
165#ifdef SC_DT_DEPRECATED
166 int bitwidth()
const {
return length(); }
174 *xz_present_p =
false;
183 dst_p[word_i] &= ~bit_mask;
194 dst_p[word_i] |= bit_mask;
197 dst_p[word_i] &= ~bit_mask;
211 bool operator ! ()
const;
212 bool operator ~ ()
const;
265 virtual void concat_set(
int64 src,
int low_i);
266 virtual void concat_set(
const sc_signed &src,
int low_i);
267 virtual void concat_set(
const sc_unsigned &src,
int low_i);
268 virtual void concat_set(
uint64 src,
int low_i);
271 void scan(::std::istream &is=::std::cin);
279inline ::std::istream &operator >> (::std::istream &,
sc_int_bitref &);
324 *xz_present_p =
false;
327 virtual bool concat_get_ctrl(
sc_digit* dst_p,
int low_i )
const;
328 virtual bool concat_get_data(
sc_digit* dst_p,
int low_i )
const;
356 unsigned int to_uint()
const;
357 long to_long()
const;
358 unsigned long to_ulong()
const;
359 int64 to_int64()
const;
361 double to_double()
const;
369 print(::std::ostream &os=::std::cout)
const
425 return operator = (
a->to_int64());
431 operator = (
unsigned long a)
443 operator = (
unsigned int a)
461 operator = (
double a)
472 virtual void concat_set(
int64 src,
int low_i);
473 virtual void concat_set(
const sc_signed &src,
int low_i);
474 virtual void concat_set(
const sc_unsigned &src,
int low_i);
475 virtual void concat_set(
uint64 src,
int low_i);
478 void scan(::std::istream &is=::std::cin);
485inline ::std::istream &operator >> (::std::istream &,
sc_int_subref &);
518 if (i < 0 || i >=
m_len) {
526 if (r < 0 || l >=
m_len || l < r) {
531 void check_value()
const;
636 operator = (
unsigned long a)
652 operator = (
unsigned int a)
676 operator = (
double a)
808 return a.m_val ==
b.m_val;
814 return a.m_val !=
b.m_val;
820 return a.m_val <
b.m_val;
826 return a.m_val <=
b.m_val;
832 return a.m_val >
b.m_val;
838 return a.m_val >=
b.m_val;
877 *xz_present_p =
false;
880 virtual bool concat_get_ctrl(
sc_digit* dst_p,
int low_i )
const;
881 virtual bool concat_get_data(
sc_digit* dst_p,
int low_i )
const;
890 virtual void concat_set(
int64 src,
int low_i);
891 virtual void concat_set(
const sc_signed &src,
int low_i);
892 virtual void concat_set(
const sc_unsigned &src,
int low_i);
893 virtual void concat_set(
uint64 src,
int low_i);
929 print(::std::ostream &os=::std::cout)
const
934 void scan(::std::istream &is=::std::cin);
943inline ::std::istream &operator >> (::std::istream &,
sc_int_base &);
954inline sc_int_bitref_r::operator
uint64 ()
const
960sc_int_bitref_r::operator ! ()
const
966sc_int_bitref_r::operator ~ ()
const
972inline ::std::ostream &
988inline sc_int_bitref &
1005sc_int_bitref::operator = (
bool b)
1014sc_int_bitref::operator &= (
bool b)
1024sc_int_bitref::operator |= (
bool b)
1034sc_int_bitref::operator ^= (
bool b)
1045inline ::std::istream &
1066 return (val << uleft >> uright);
1076 return a.and_reduce();
1083 return a.or_reduce();
1090 return a.xor_reduce();
1099 int result =
static_cast<int>(
operator uint_type());
1106 unsigned int result =
static_cast<unsigned int>(
operator uint_type());
1113 long result =
static_cast<long>(
operator uint_type());
1120 unsigned long result =
static_cast<unsigned long>(
operator uint_type());
1141 double result =
static_cast<double>(
operator uint_type());
1148inline const std::string
1153 return a.to_string(numrep);
1156inline const std::string
1161 return a.to_string(numrep, w_prefix);
1170 return a.and_reduce();
1176 return a.nand_reduce();
1182 return a.or_reduce();
1188 return a.nor_reduce();
1194 return a.xor_reduce();
1200 return a.xnor_reduce();
1205inline ::std::ostream &
1221inline sc_int_subref &
1224 return operator = (
a.operator
int_type());
1228sc_int_subref::operator = (
const char *
a)
1231 return (*
this = aa =
a);
1236inline ::std::istream &
1252inline sc_int_bitref &
1335 return a.and_reduce();
1341 return a.nand_reduce();
1347 return a.or_reduce();
1353 return a.nor_reduce();
1359 return a.xor_reduce();
1365 return a.xnor_reduce();
1370inline ::std::ostream &
1377inline ::std::istream &
bool operator==(const arr_struct1 &, const arr_struct1 &)
sc_int_base(const sc_int_subref_r &a)
friend class sc_int_subref_r
virtual uint64 concat_get_uint64() const
void invalid_length() const
void check_length() const
sc_int_base(int_type v, int w)
void check_index(int i) const
sc_int_base(const sc_int_base &a)
friend class sc_int_bitref
unsigned long to_ulong() const
virtual int concat_length(bool *xz_present_p) const
friend class sc_int_bitref_r
void invalid_index(int i) const
void check_range(int l, int r) const
unsigned int to_uint() const
void print(::std::ostream &os=::std::cout) const
sc_int_base(int w=sc_length_param().len())
void invalid_range(int l, int r) const
friend class sc_int_subref
sc_int_base(const sc_generic_base< T > &a)
const std::string to_string(sc_numrep numrep=SC_DEC) const
sc_int_bitref_r(const sc_int_bitref_r &a)
virtual bool concat_get_data(sc_digit *dst_p, int low_i) const
void initialize(const sc_int_base *obj_p, int index_)
virtual uint64 concat_get_uint64() const
void print(::std::ostream &os=::std::cout) const
virtual ~sc_int_bitref_r()
virtual bool concat_get_ctrl(sc_digit *dst_p, int low_i) const
virtual int concat_length(bool *xz_present_p) const
static sc_core::sc_vpool< sc_int_bitref > m_pool
sc_int_bitref(const sc_int_bitref &a)
virtual ~sc_int_subref_r()
friend class sc_int_signal
const std::string to_string(sc_numrep numrep=SC_DEC) const
unsigned long to_ulong() const
virtual uint64 concat_get_uint64() const
void initialize(const sc_int_base *obj_p, int left_i, int right_i)
unsigned int to_uint() const
sc_int_subref_r(const sc_int_subref_r &a)
friend class sc_int_subref
void print(::std::ostream &os=::std::cout) const
virtual int concat_length(bool *xz_present_p) const
sc_int_subref(const sc_int_subref &a)
static sc_core::sc_vpool< sc_int_subref > m_pool
void check_index(int i) const
sc_int_subref & operator()(int left, int right)
sc_int_bitref & operator[](int i)
sc_int_bitref & bit(int i)
void check_range(int l, int r) const
sc_int_subref & range(int left, int right)
bool sc_io_show_base(::std::ostream &os)
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 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)