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:
Gabe Black
2018-08-30 14:51:25 -07:00
parent 9f1e647bb2
commit fc01f3743f
6 changed files with 28 additions and 28 deletions

View File

@@ -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());
}
// ----------------------------------------------------------------------------

View File

@@ -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());
}
}

View File

@@ -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
}

View File

@@ -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());
}
}

View File

@@ -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
}

View File

@@ -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;