summaryrefslogtreecommitdiff
path: root/src/systemc/ext/utils
AgeCommit message (Collapse)Author
2018-11-27systemc: set endianess to fix build for ARM hostCiro Santilli
ARM architectures were not covered in the endianess #if cases, which lead the build to fail on an arm host with message: error The file boost/detail/endian.hpp needs to be set up for your CPU type. Change-Id: Id012cf37810da113174a51746e290e25138739cb Reviewed-on: https://gem5-review.googlesource.com/c/14595 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-11-05systemc: Get rid of implementations for some disabled sc_vector methods.Gabe Black
These don't need to exist, and the specifics of their stub implementations were upsetting clang. Change-Id: Ib38a39c5cfbc2e1647cfb6ed14c660e10df2b1c3 Reviewed-on: https://gem5-review.googlesource.com/c/13878 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-16systemc: Get rid of leftovers from unimplemented warnings past.Gabe Black
These warnings were removed when the functionality they warned about was implemented, but there were some leftovers like unnecessary includes and some helper functions which hid gem5 specific headers from the ext directory. Change-Id: Ic886ac0f1264687524e3a7b7eaab8836f318a5a2 Reviewed-on: https://gem5-review.googlesource.com/c/13398 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-16systemc: Switch to using predefined messages for utils.Gabe Black
Create and use predefined messages for utils which match the ones Accellera uses. Change-Id: I932b7206fc16181d01a0d5b7441ce617b30e5365 Reviewed-on: https://gem5-review.googlesource.com/c/13328 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-16systemc: Refactor reporting to prep for int based messages.Gabe Black
There's a deprecated reporting mechanism based on integer message ids, and the reporting mechanism needs to be refactored a bit to make it easier to support. Some bookkeeping data structures were moved out to somewhere they can be accessed by other code, obviating the non-standard get_handler function. Change-Id: Id427cd79be9ef0f3275fbac39ff047ab672fb3e0 Reviewed-on: https://gem5-review.googlesource.com/c/13318 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-16systemc: Implement sc_vector.Gabe Black
Change-Id: I3cf096c4432fdf310fa1279da32620d5c9f57b5d Reviewed-on: https://gem5-review.googlesource.com/c/13197 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-16systemc: Implement general and VCD trace support.Gabe Black
This doesn't include WIF trace support, but does make allowances for adding it in the future. Change-Id: Ifb62f40a7d8a13e94463930a44ac4b1cf41e3009 Reviewed-on: https://gem5-review.googlesource.com/c/12826 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-16systemc: Fix the default width values for the various sc_trace-s.Gabe Black
These were all set to 8 * sizeof(char) instead of using the size of the actual data type being traced. Also add a very simple implementation to the generic sc_signal_in_if<T> sc_trace which just delegates to the sc_trace of the underlying type T. Change-Id: I129df46ef9d49705dc3dac76e30c0a3652c981eb Reviewed-on: https://gem5-review.googlesource.com/c/12818 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-09systemc: Fortify how exceptions are caught and passed around.Gabe Black
This change tightens up exception catching and makes gem5's systemc code react to exceptions more in line with the Accellera implementation. This prevents exceptions from being caught by the pybind11 integration which makes it very difficult to see where an exception came from, and makes the output differ by including a (mostly useless) backtrace. Change-Id: I7130d53a98fadd137073d1718f780f32f57c658c Reviewed-on: https://gem5-review.googlesource.com/c/12601 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-10-03systemc: Improve handling of empty process handles.Gabe Black
Most had checks, but didn't print any message. throw_it needed a check as well. Change-Id: I916c837112f9b27852583f01b3e16a6f53d5e7ca Reviewed-on: https://gem5-review.googlesource.com/c/12440 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-09-11systemc: Implement most of the sc_report_handler mechanism.Gabe Black
This doesn't include support for the deprecated integer message ids. Change-Id: I309d58df1cdc464428189eb0b7180edf41ca4f67 Reviewed-on: https://gem5-review.googlesource.com/12048 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-28systemc: Add the nonstandard sc_user exception type.Gabe Black
This type is not in the spec but is used in the tests. Change-Id: I4537a33b0b5dcb3c72a091276d601c244c4a3862 Reviewed-on: https://gem5-review.googlesource.com/11284 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-28systemc: Make some functions static in conflict with the spec.Gabe Black
The spec is likely wrong in this case since a lot of the other neighboring functions are static, and the Accellera implementation and the tests seem to assume they're static. Change-Id: Ia12a3735497b50f8a2419a52c83ef256416e7bc5 Reviewed-on: https://gem5-review.googlesource.com/11282 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-28systemc: Add some nonstandard, undocumented sc_report_* functions.Gabe Black
The tests use these functions. Change-Id: I3cdc10d433d9388742a20fb3a97a1a3efa699e11 Reviewed-on: https://gem5-review.googlesource.com/11271 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-22systemc: Add the deprecated sc_trace_delta_cycles function.Gabe Black
This function enables or disables tracing of delta cycles in a particular trace file. Change-Id: I53164a792856d071de1fefc76977cca8eb5fd735 Reviewed-on: https://gem5-review.googlesource.com/11267 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-22systemc: Add some nonstandard (get|set)_catch_actions functions.Gabe Black
These are used by the tests. Change-Id: I09bbe81854f0faa524a4c6aa0ef31d80e4a8de24 Reviewed-on: https://gem5-review.googlesource.com/11265 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-22systemc: Add nonstandard sc_trace-s for sc_event and sc_time.Gabe Black
These are not in the standard but are defined by Accellera and are used in the regression tests. Change-Id: Idb8358530b1135526c52733e628461a17308e216 Reviewed-on: https://gem5-review.googlesource.com/11259 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-22systemc: Add support for deprecated integer report handler ids.Gabe Black
These are deprecated but still used in the regression tests. Change-Id: Id59cf950fbe0530a6cdce20a256d450b243f12d3 Reviewed-on: https://gem5-review.googlesource.com/11256 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-15systemc: Add some non-standard sc_trace variants.Gabe Black
These overloads of sc_trace take the unsigned version of some primitive types. The compiler thought it was ambiguous how to convert an unsigned integer value into a signed one since there were several different functions which took signed integer parameters of various sizes. These versions of sc_trace aren't in the standard, but they are in the Accellera implementation and do fix building of the regression tests. Change-Id: I26fd06d90ae6bf5fc5aed24bc2ac826ad69eee31 Reviewed-on: https://gem5-review.googlesource.com/11182 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-15systemc: Turn some macros into enums to fix regression test building.Gabe Black
The spec defines these constants to be macros, but the regression test refers to them using the sc_core namespace. That breaks things because the macros don't expand to an identifier, they expand to an expression. This change converts the macros into enums like in the Accellera implementation to get the regression tests to build. Change-Id: I3db7dc87a7a597907df658624a7343bc6ca1734e Reviewed-on: https://gem5-review.googlesource.com/11180 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-15systemc: Fill out some of the sc_vector.hh classes.Gabe Black
The iterator class needs to have some operators, etc., defined so that tests written against it can compile correctly. The implementations were heavily influenced by the Accellera implementation. Also it should be noted that the systemc spec is incorrect where it defines these classes. When implemented like they are in the Accellera version, the versions of bind in sc_vector_assembly which take sc_vector<T>::iterator and iterator parameters are different, and so they can overload each other. If implemented as described by the spec however, those types are the same and the code won't compile. Change-Id: I62852adf7e6c0a2f3df076ba4e93d2501859c32d Reviewed-on: https://gem5-review.googlesource.com/11177 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-08systemc: Stub out all the standard utilility classes and functions.Gabe Black
Change-Id: I9e9724edb6281e0b0a6bae5546b0ede77d295c12 Reviewed-on: https://gem5-review.googlesource.com/10841 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>