354#undef DEFN_BITWISE_AND_ASN_OP_T
356template <
class X,
class Y>
364#define DEFN_BITWISE_AND_OP_T_A(tp) \
366inline const sc_lv_base \
367sc_proxy<X>::operator & (tp b) const \
369 sc_lv_base a(back_cast()); \
387#undef DEFN_BITWISE_AND_OP_T_A
389#define DEFN_BITWISE_AND_OP_T_B(tp) \
391inline const sc_lv_base \
392operator & (tp b, const sc_proxy<X> &px) \
411#undef DEFN_BITWISE_AND_OP_T_B
414template <
class X,
class Y>
418 X &x = px.back_cast();
424#define DEFN_BITWISE_OR_ASN_OP_T(tp) \
427sc_proxy<X>::operator |= (tp b) \
429 X &x = back_cast(); \
430 sc_lv_base a(x.length()); \
432 return b_or_assign_(x, a); \
445#undef DEFN_BITWISE_OR_ASN_OP_T
447template <
class X,
class Y>
448inline const sc_lv_base
455#define DEFN_BITWISE_OR_OP_T_A(tp) \
457inline const sc_lv_base \
458sc_proxy<X>::operator | (tp b) const \
460 sc_lv_base a(back_cast()); \
478#undef DEFN_BITWISE_OR_OP_T_A
480#define DEFN_BITWISE_OR_OP_T_B(tp) \
482inline const sc_lv_base \
483operator | (tp b, const sc_proxy<X> &px) \
502#undef DEFN_BITWISE_OR_OP_T_B
505template <
class X,
class Y>
509 X &x = px.back_cast();
515#define DEFN_BITWISE_XOR_ASN_OP_T(tp) \
518sc_proxy<X>::operator ^= (tp b) \
520 X &x = back_cast(); \
521 sc_lv_base a(x.length()); \
523 return b_xor_assign_(x, a); \
536#undef DEFN_BITWISE_XOR_ASN_OP_T
538template <
class X,
class Y>
539inline const sc_lv_base
546#define DEFN_BITWISE_XOR_OP_T_A(tp) \
548inline const sc_lv_base \
549sc_proxy<X>::operator ^ (tp b) const \
551 sc_lv_base a(back_cast()); \
569#undef DEFN_BITWISE_XOR_OP_T_A
571#define DEFN_BITWISE_XOR_OP_T_B(tp) \
573inline const sc_lv_base \
574operator ^ (tp b, const sc_proxy<X> &px) \
593#undef DEFN_BITWISE_XOR_OP_T_B
622 "positive rotate values, rotate value = ", n);
625 int len = x.length();
631 for (
int i = 0; i < sz; ++i) {
632 x.set_word(i,
a.get_word(i) |
b.get_word(i));
633 x.set_cword(i,
a.get_cword(i) |
b.get_cword(i));
655 "positive rotate values, rotate value = ", n);
658 int len = x.length();
664 for (
int i = 0; i < sz; ++i) {
665 x.set_word(i,
a.get_word(i) |
b.get_word(i));
666 x.set_cword(i,
a.get_cword(i) |
b.get_cword(i));
682inline const sc_lv_base
690template <
class X,
class Y>
694 const X &x = px.back_cast();
696 int x_len = x.length();
697 int y_len = y.length();
698 if (x_len != y_len) {
702 for (
int i = 0; i < sz; ++i) {
703 if (x.get_word(i) != y.get_word(i) ||
704 x.get_cword(i) != y.get_cword(i)) {
711#define DEFN_REL_OP_T(tp) \
714sc_proxy<X>::operator == (tp b) const \
716 const X &x = back_cast(); \
717 sc_lv_base y(x.length()); \
748inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
756inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
764inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
772inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
780inline sc_concref_r<sc_bitref_r<T>, sc_bv_base>
788inline sc_concref_r<sc_bv_base, sc_bitref_r<T> >
796inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
804inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
812inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
820inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
828inline sc_concref_r<sc_bitref_r<T>, sc_bv_base>
836inline sc_concref_r<sc_bv_base, sc_bitref_r<T> >
845inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
853inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
861inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
869inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
877inline sc_concref_r<sc_bitref_r<T>, sc_bv_base>
885inline sc_concref_r<sc_bv_base, sc_bitref_r<T> >
893inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
901inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
909inline sc_concref_r<sc_bitref_r<T>, sc_lv_base>
917inline sc_concref_r<sc_lv_base, sc_bitref_r<T> >
925inline sc_concref_r<sc_bitref_r<T>, sc_bv_base>
933inline sc_concref_r<sc_bv_base, sc_bitref_r<T> >
949inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
957inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
965inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
973inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
981inline sc_concref_r<sc_subref_r<T>, sc_bv_base>
989inline sc_concref_r<sc_bv_base, sc_subref_r<T> >
997inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
1005inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
1013inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
1021inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
1029inline sc_concref_r<sc_subref_r<T>, sc_bv_base>
1037inline sc_concref_r<sc_bv_base, sc_subref_r<T> >
1046inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
1054inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
1062inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
1070inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
1078inline sc_concref_r<sc_subref_r<T>, sc_bv_base>
1086inline sc_concref_r<sc_bv_base, sc_subref_r<T> >
1095inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
1103inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
1111inline sc_concref_r<sc_subref_r<T>, sc_lv_base>
1119inline sc_concref_r<sc_lv_base, sc_subref_r<T> >
1127inline sc_concref_r<sc_subref_r<T>, sc_bv_base>
1135inline sc_concref_r<sc_bv_base, sc_subref_r<T> >
1150inline sc_subref<X> &
1154 int len =
sc_min(this->length(), t.length());
1155 if (!this->reversed()) {
1156 for (
int i =
len - 1; i >= 0; --i) {
1157 this->m_obj.set_bit(this->m_lo + i, t[i].value());
1160 for (
int i =
len - 1; i >= 0; --i) {
1161 this->m_obj.set_bit(this->m_lo - i, t[i].value());
1172 int len =
sc_min(this->length(), t.length());
1173 if (!this->reversed()) {
1174 for (
int i =
len - 1; i >= 0; --i) {
1175 this->m_obj.set_bit(this->m_lo + i, t[i].value());
1178 for (
int i =
len - 1; i >= 0; --i) {
1179 this->m_obj.set_bit(this->m_lo - i, t[i].value());
1194template <
class T1,
class T2>
1202template <
class T1,
class T2>
1203inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1210template <
class T1,
class T2>
1211inline sc_concref_r<sc_concref_r<T1, T2>, sc_lv_base>
1218template <
class T1,
class T2>
1219inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1226template <
class T1,
class T2>
1227inline sc_concref_r<sc_concref_r<T1, T2>, sc_bv_base>
1234template <
class T1,
class T2>
1235inline sc_concref_r<sc_bv_base, sc_concref_r<T1, T2> >
1242template <
class T1,
class T2>
1243inline sc_concref_r<sc_concref_r<T1, T2>, sc_lv_base>
1250template <
class T1,
class T2>
1251inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1258template <
class T1,
class T2>
1259inline sc_concref_r<sc_concref_r<T1, T2>, sc_lv_base>
1266template <
class T1,
class T2>
1267inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1274template <
class T1,
class T2>
1275inline sc_concref_r<sc_concref_r<T1, T2>, sc_bv_base>
1282template <
class T1,
class T2>
1283inline sc_concref_r<sc_bv_base, sc_concref_r<T1, T2> >
1291template <
class T1,
class T2>
1292inline sc_concref_r<sc_concref_r<T1, T2>, sc_lv_base>
1299template <
class T1,
class T2>
1300inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1307template <
class T1,
class T2>
1308inline sc_concref_r<sc_concref_r<T1, T2>, sc_lv_base>
1315template <
class T1,
class T2>
1316inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1323template <
class T1,
class T2>
1324inline sc_concref_r<sc_concref_r<T1, T2>, sc_bv_base>
1331template <
class T1,
class T2>
1332inline sc_concref_r<sc_bv_base, sc_concref_r<T1, T2> >
1339template <
class T1,
class T2>
1340inline sc_concref_r<sc_concref_r<T1, T2>, sc_lv_base>
1347template <
class T1,
class T2>
1348inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1355template <
class T1,
class T2>
1356inline sc_concref_r<sc_concref_r<T1, T2>, sc_lv_base>
1363template <
class T1,
class T2>
1364inline sc_concref_r<sc_lv_base, sc_concref_r<T1, T2> >
1371template <
class T1,
class T2>
1372inline sc_concref_r<sc_concref_r<T1, T2>, sc_bv_base>
1379template <
class T1,
class T2>
1380inline sc_concref_r<sc_bv_base, sc_concref_r<T1, T2> >
1398inline sc_concref_r<T, sc_lv_base>
1405inline sc_concref_r<sc_lv_base, T>
1412inline sc_concref_r<T, sc_lv_base>
1420inline sc_concref_r<sc_lv_base, T>
1428inline sc_concref_r<T, sc_bv_base>
1436inline sc_concref_r<sc_bv_base, T>
1444inline sc_concref_r<T, sc_lv_base>
1451inline sc_concref_r<sc_lv_base, T>
1458inline sc_concref_r<T, sc_lv_base>
1466inline sc_concref_r<sc_lv_base, T>
1474inline sc_concref_r<T, sc_bv_base>
1482inline sc_concref_r<sc_bv_base, T>
1491inline sc_concref_r<T, sc_lv_base>
1498inline sc_concref_r<sc_lv_base, T>
1505inline sc_concref_r<T, sc_lv_base>
1513inline sc_concref_r<sc_lv_base, T>
1521inline sc_concref_r<T, sc_bv_base>
1529inline sc_concref_r<sc_bv_base, T>
1538inline sc_concref_r<T, sc_lv_base>
1545inline sc_concref_r<sc_lv_base, T>
1552inline sc_concref_r<T, sc_lv_base>
1560inline sc_concref_r<sc_lv_base, T>
1568inline sc_concref_r<T, sc_bv_base>
1576inline sc_concref_r<sc_bv_base, T>
1584extern template class sc_proxy<sc_lv_base>;
1585extern template class sc_proxy<sc_bv_base>;