systemc: Adjust some error messages to match Accellera.
Those messages include an error number in the Accellera implementation. Add those numbers to gem5 so it's easier to check against golden reference output for the regression tests. Change-Id: I35054dd187e86a87eb177f4695d61044c58ce262 Reviewed-on: https://gem5-review.googlesource.com/c/12450 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -67,7 +67,7 @@ sc_proxy_out_of_bounds(const char *msg, int64 val)
|
||||
ss << msg;
|
||||
if (val != 0)
|
||||
ss << val;
|
||||
SC_REPORT_ERROR("out of bounds", ss.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", ss.str().c_str());
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@@ -92,7 +92,7 @@ sc_int_concref_invalid_length(int length)
|
||||
std::stringstream msg;
|
||||
msg << "sc_int_concref<T1,T2> initialization: length = " << length <<
|
||||
"violates 1 <= length <= " << SC_INTWIDTH;
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -361,7 +361,7 @@ sc_int_base::invalid_length() const
|
||||
std::stringstream msg;
|
||||
msg << "sc_int[_base] initialization: length = " << m_len <<
|
||||
" violates 1 <= length <= " << SC_INTWIDTH;
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -371,7 +371,7 @@ sc_int_base::invalid_index(int i) const
|
||||
std::stringstream msg;
|
||||
msg << "sc_int[_base] bit selection: index = " << i <<
|
||||
" violates 0 <= index <= " << (m_len - 1);
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -382,7 +382,7 @@ sc_int_base::invalid_range(int l, int r) const
|
||||
msg << "sc_int[_base] part selection: " <<
|
||||
"left = " << l << ", right = " << r << " violates " <<
|
||||
(m_len-1) << " >= left >= right >= 0";
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -393,7 +393,7 @@ sc_int_base::check_value() const
|
||||
if (m_val < -limit || m_val >= limit) {
|
||||
std::stringstream msg;
|
||||
msg << "sc_int[_base]: value does not fit into a length of " << m_len;
|
||||
SC_REPORT_WARNING("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_WARNING("(E5) out of bounds", msg.str().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ sc_signed::invalid_index(int i) const
|
||||
std::stringstream msg;
|
||||
msg << "sc_bigint bit selection: index = " << i << " violates "
|
||||
"0 <= index <= " << (nbits - 1);
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ sc_signed::invalid_range(int l, int r) const
|
||||
l << ", right = " << r << "\n"
|
||||
" violates either (" << (nbits-1) << " >= left >= 0) or "
|
||||
"(" << (nbits-1) << " >= right >= 0)";
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ sc_uint_concref_invalid_length(int length)
|
||||
std::stringstream msg;
|
||||
msg << "sc_uint_concref<T1,T2> initialization: length = " << length <<
|
||||
"violates 1 <= length <= " << SC_INTWIDTH;
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ sc_uint_base::invalid_length() const
|
||||
std::stringstream msg;
|
||||
msg << "sc_uint[_base] initialization: length = " << m_len <<
|
||||
" violates 1 <= length <= " << SC_INTWIDTH;
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here}
|
||||
}
|
||||
|
||||
@@ -357,7 +357,7 @@ sc_uint_base::invalid_index(int i) const
|
||||
std::stringstream msg;
|
||||
msg << "sc_uint[_base] bit selection: index = " << i <<
|
||||
" violates 0 <= index <= " << (m_len - 1);
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -368,7 +368,7 @@ sc_uint_base::invalid_range(int l, int r) const
|
||||
msg << "sc_uint[_base] part selection: " <<
|
||||
"left = " << l << ", right = " << r << " violates " <<
|
||||
(m_len - 1) << " >= left >= right >= 0";
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -380,7 +380,7 @@ sc_uint_base::check_value() const
|
||||
if (m_val > limit) {
|
||||
std::stringstream msg;
|
||||
msg << "sc_uint[_base]: value does not fit into a length of " << m_len;
|
||||
SC_REPORT_WARNING("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_WARNING("(E5) out of bounds", msg.str().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ sc_unsigned::invalid_index(int i) const
|
||||
std::stringstream msg;
|
||||
msg << "sc_biguint bit selection: index = " << i << " violates "
|
||||
"0 <= index <= " << (nbits-2);
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ sc_unsigned::invalid_range(int l, int r) const
|
||||
l << ", right = " << r << "\n"
|
||||
" violates either (" << (nbits - 2) << " >= left >= 0) or "
|
||||
"(" << (nbits-2) << " >= right >= 0)";
|
||||
SC_REPORT_ERROR("out of bounds", msg.str().c_str());
|
||||
SC_REPORT_ERROR("(E5) out of bounds", msg.str().c_str());
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
|
||||
|
||||
@@ -1735,7 +1735,7 @@ sc_bitref_r<T>::get_bit(int n) const
|
||||
if (n == 0) {
|
||||
return m_obj.get_bit(m_index);
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
return Log_0;
|
||||
}
|
||||
}
|
||||
@@ -1747,7 +1747,7 @@ sc_bitref_r<T>::get_word(int n) const
|
||||
if (n == 0) {
|
||||
return (get_bit(n) & SC_DIGIT_ONE);
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1759,7 +1759,7 @@ sc_bitref_r<T>::get_cword(int n) const
|
||||
if (n == 0) {
|
||||
return ((get_bit(n) & SC_DIGIT_TWO) >> 1);
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -2068,7 +2068,7 @@ sc_bitref<X>::set_bit(int n, value_type value)
|
||||
if (n == 0) {
|
||||
this->m_obj.set_bit(this->m_index, value);
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2084,7 +2084,7 @@ sc_bitref<X>::set_word(int n, sc_digit w)
|
||||
temp = (temp & ~(1 << bi)) | ((w & 1) << bi);
|
||||
this->m_obj.set_word(wi, temp);
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2100,7 +2100,7 @@ sc_bitref<X>::set_cword(int n, sc_digit w)
|
||||
temp = (temp & ~(1 << bi)) | ((w & 1) << bi);
|
||||
this->m_obj.set_cword(wi, temp);
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2199,7 +2199,7 @@ sc_subref_r<X>::check_bounds()
|
||||
{
|
||||
int len = m_obj.length();
|
||||
if (m_hi < 0 || m_hi >= len || m_lo < 0 || m_lo >= len) {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
sc_core::sc_abort(); // can't recover from here
|
||||
}
|
||||
if (reversed()) {
|
||||
@@ -2668,7 +2668,7 @@ sc_concref_r<X, Y>::get_bit(int n) const
|
||||
} else if (n < r_len + m_left.length()) {
|
||||
return value_type(m_left.get_bit(n - r_len));
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
return Log_0;
|
||||
}
|
||||
}
|
||||
@@ -2683,7 +2683,7 @@ sc_concref_r<X, Y>::set_bit(int n, value_type v)
|
||||
} else if (n < r_len + m_left.length()) {
|
||||
m_left.set_bit(n - r_len, typename X::value_type(v));
|
||||
} else {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2692,7 +2692,7 @@ inline sc_digit
|
||||
sc_concref_r<X, Y>::get_word(int i) const
|
||||
{
|
||||
if (i < 0 || i >= size()) {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
// 0 <= i < size()
|
||||
Y &r = m_right;
|
||||
@@ -2726,7 +2726,7 @@ inline void
|
||||
sc_concref_r<X, Y>::set_word(int i, sc_digit w)
|
||||
{
|
||||
if (i < 0 || i >= size()) {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
// 0 <= i < size()
|
||||
Y &r = m_right;
|
||||
@@ -2765,7 +2765,7 @@ inline sc_digit
|
||||
sc_concref_r<X, Y>::get_cword(int i) const
|
||||
{
|
||||
if (i < 0 || i >= size()) {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
// 0 <= i < size()
|
||||
Y &r = m_right;
|
||||
@@ -2799,7 +2799,7 @@ inline void
|
||||
sc_concref_r<X, Y>::set_cword(int i, sc_digit w)
|
||||
{
|
||||
if (i < 0 || i >= size()) {
|
||||
SC_REPORT_ERROR("out of bounds", 0);
|
||||
SC_REPORT_ERROR("(E5) out of bounds", 0);
|
||||
}
|
||||
// 0 <= i < size()
|
||||
Y &r = m_right;
|
||||
|
||||
Reference in New Issue
Block a user