Enable building only selected CPU models via new scons
CPU_MODELS parameter. For example:
scons CPU_MODELS="SimpleCPU,FullCPU" ALPHA_SE/m5.debug
Unfortunately the option is not sticky due to a scons
bug with saving & restoring ListOption parameters.
SConscript:
Separate out cpu-model-specific files so they can be conditionally
included based on value of new CPU_MODELS parameter.
Most of these are now handled in cpu/SConscript, except for FullCPU
which is still in this file.
arch/SConscript:
The set of CPU-model-specific execute files must now be
determined from the CPU_MODELS parameter, via the new
cpu_models.py file.
Also pass the list of configured CPU models to isa_parser.py.
arch/isa_parser.py:
Move CpuModel definition and objects out to a
separate file so they can be shared with scons.
Global list of CPU models to generate code for is now
controlled by command-line parameters (so we can do
only a subset of the available ones).
build/SConstruct:
Define new CPU_MODELS ListOption.
cpu/static_inst.hh:
Rename static_inst_impl.hh to static_inst_exec_sigs.hh.
--HG--
extra : convert_revision : 163df32a76d4c05900490b2bce4c7962a5e3f614
This commit is contained in:
@@ -108,26 +108,27 @@ env.Append(SCANNERS = iscan)
|
||||
# output from the ISA description (*.isa) files.
|
||||
#
|
||||
|
||||
# several files are generated from the ISA description
|
||||
isa_desc_gen_files = Split('''
|
||||
decoder.cc
|
||||
alpha_o3_exec.cc
|
||||
fast_cpu_exec.cc
|
||||
simple_cpu_exec.cc
|
||||
full_cpu_exec.cc
|
||||
decoder.hh
|
||||
''')
|
||||
|
||||
# Convert to File node to fix path
|
||||
isa_parser = File('isa_parser.py')
|
||||
cpu_models_file = File('#m5/cpu/cpu_models.py')
|
||||
|
||||
# This sucks in the defintions of the CpuModel objects.
|
||||
execfile(cpu_models_file.srcnode().abspath)
|
||||
|
||||
# Several files are generated from the ISA description.
|
||||
# We always get the basic decoder and header file.
|
||||
isa_desc_gen_files = Split('decoder.cc decoder.hh')
|
||||
# We also get an execute file for each selected CPU model.
|
||||
isa_desc_gen_files += [CpuModel.dict[cpu].filename
|
||||
for cpu in env['CPU_MODELS']]
|
||||
|
||||
# The emitter patches up the sources & targets to include the
|
||||
# autogenerated files as targets and isa parser itself as a source.
|
||||
def isa_desc_emitter(target, source, env):
|
||||
return (isa_desc_gen_files, [isa_parser] + source)
|
||||
return (isa_desc_gen_files, [isa_parser, cpu_models_file] + source)
|
||||
|
||||
# Pieces are in place, so create the builder.
|
||||
isa_desc_builder = Builder(action='${SOURCES[0]} ${SOURCES[1]} $TARGET.dir',
|
||||
isa_desc_builder = Builder(action='$SOURCES $TARGET.dir $CPU_MODELS',
|
||||
source_scanner = iscan,
|
||||
emitter = isa_desc_emitter)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user