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

@@ -31,9 +31,10 @@ import sys
Import('*')
if 'O3CPU' in env['CPU_MODELS']:
SimObject('FUPool.py')
SimObject('FUPool.py', sim_objects=['FUPool'])
SimObject('FuncUnitConfig.py')
SimObject('O3CPU.py')
SimObject('O3CPU.py', sim_objects=['O3CPU'], enums=[
'SMTFetchPolicy', 'SMTQueuePolicy', 'CommitPolicy'])
Source('commit.cc')
Source('cpu.cc')
@@ -73,5 +74,5 @@ if 'O3CPU' in env['CPU_MODELS']:
'IQ', 'ROB', 'FreeList', 'LSQ', 'LSQUnit', 'StoreSet', 'MemDepUnit',
'DynInst', 'O3CPU', 'Activity', 'Scoreboard', 'Writeback' ])
SimObject('O3Checker.py')
SimObject('O3Checker.py', sim_objects=['O3Checker'])
Source('checker.cc')