scons: Add sim_object and enums arguments to SimObject().

This will explicitly declare what SimObject and Enum types need to be set
up in C++, which will make importing all the SimObject modules during
the setup phase of SCons uneccessary.

Change-Id: Id2d7603daf33b236ceaa0789e2f089f589d34e62
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49406
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Gabe Black
2021-08-15 22:07:27 -07:00
parent 60e55ecef8
commit 1c233ee9d2
79 changed files with 416 additions and 262 deletions

View File

@@ -82,22 +82,27 @@ CompoundFlag('ExecNoTicks', [ 'Exec', 'FmtTicksOff' ])
Source('func_unit.cc')
Source('pc_event.cc')
SimObject('FuncUnit.py')
SimObject('StaticInstFlags.py')
SimObject('FuncUnit.py', sim_objects=['OpDesc', 'FUDesc'], enums=['OpClass'])
SimObject('StaticInstFlags.py', enums=['StaticInstFlags'])
if env['TARGET_ISA'] == 'null':
Return()
# Only build the protobuf instructions tracer if we have protobuf support.
if env['HAVE_PROTOBUF']:
SimObject('InstPBTrace.py')
SimObject('InstPBTrace.py', sim_objects=['InstPBTrace'])
Source('inst_pb_trace.cc')
SimObject('CheckerCPU.py')
SimObject('CheckerCPU.py', sim_objects=['CheckerCPU'])
SimObject('BaseCPU.py')
SimObject('CPUTracers.py')
SimObject('TimingExpr.py')
SimObject('BaseCPU.py', sim_objects=['BaseCPU'])
SimObject('CPUTracers.py', sim_objects=[
'ExeTracer', 'IntelTrace', 'NativeTrace'])
SimObject('TimingExpr.py', sim_objects=[
'TimingExpr', 'TimingExprLiteral', 'TimingExprSrcReg',
'TimingExprReadIntReg', 'TimingExprLet', 'TimingExprRef', 'TimingExprUn',
'TimingExprBin', 'TimingExprIf'],
enums=['TimingExprOp'])
Source('activity.cc')
Source('base.cc')
@@ -114,6 +119,6 @@ Source('thread_context.cc')
Source('thread_state.cc')
Source('timing_expr.cc')
SimObject('DummyChecker.py')
SimObject('DummyChecker.py', sim_objects=['DummyChecker'])
Source('checker/cpu.cc')
DebugFlag('Checker')