systemc: Fix a "problem" with kill/reset exceptions.
authorGabe Black <gabeblack@google.com>
Sat, 21 Jul 2018 05:13:14 +0000 (22:13 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 11 Sep 2018 21:46:22 +0000 (21:46 +0000)
commite58072108f137f28fa08c67602d165f53d4f03cf
treeb1c79b899993972b479309801bfa9381dc162bec
parent1fc84b480c30a7ba43f24854c62fbc6ddadc5fcd
systemc: Fix a "problem" with kill/reset exceptions.

Despite what it says in the spec, the proc_ctrl compliance test throws
a copy of the reset exception it catches, not the original. Because of
that, the code in the kernel which catches the exception gets the base
class, not the derived class with overridden virtual methods, etc.
This happens to work for the Accellera implementation because they
manipulate members of the base class itself which are preserved despite
this bug. To make the test work, we imitate their implementation, even
though it exposes more implementation details through the header files.

Change-Id: I7ed9818c0552869ec790cb7f7bfbe365ade5e49c
Reviewed-on: https://gem5-review.googlesource.com/12045
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
src/systemc/core/sc_process_handle.cc
src/systemc/ext/core/sc_process_handle.hh