summaryrefslogtreecommitdiff
path: root/cpu
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-02-28 06:03:57 -0500
committerGabe Black <gblack@eecs.umich.edu>2006-02-28 06:03:57 -0500
commitd207168eda13483a2990cdf060c1a7ead42cc9da (patch)
tree18383564b534a5fe6a7ba73bdc179fa249788013 /cpu
parente5f75c2549d4881284202208c09e881886f4fdd4 (diff)
parent29f50d934549f10b073a5492bd0d441d71534ace (diff)
downloadgem5-d207168eda13483a2990cdf060c1a7ead42cc9da.tar.xz
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/z/m5/Bitkeeper/multiarch --HG-- extra : convert_revision : 3a3ff8fcf472db385219a00ae434d1f3fea43b18
Diffstat (limited to 'cpu')
-rw-r--r--cpu/SConscript32
1 files changed, 31 insertions, 1 deletions
diff --git a/cpu/SConscript b/cpu/SConscript
index dbe174660..af6bab4eb 100644
--- a/cpu/SConscript
+++ b/cpu/SConscript
@@ -32,13 +32,28 @@ import os.path
# Import build environment variable from SConstruct.
Import('env')
+#################################################################
+#
+# Generate StaticInst execute() method signatures.
+#
+# There must be one signature for each CPU model compiled in.
+# Since the set of compiled-in models is flexible, we generate a
+# header containing the appropriate set of signatures on the fly.
+#
+#################################################################
+
+# CPU model-specific data is contained in cpu_models.py
+# Convert to SCons File node to get path handling
models_db = File('cpu_models.py')
+# slurp in contents of file
execfile(models_db.srcnode().abspath)
+# Template for execute() signature.
exec_sig_template = '''
virtual Fault execute(%s *xc, Trace::InstRecord *traceData) const = 0;
'''
+# Generate header.
def gen_cpu_exec_signatures(target, source, env):
f = open(str(target[0]), 'w')
print >> f, '''
@@ -52,7 +67,22 @@ def gen_cpu_exec_signatures(target, source, env):
#endif // __CPU_STATIC_INST_EXEC_SIGS_HH__
'''
-env.Command('static_inst_exec_sigs.hh', models_db, gen_cpu_exec_signatures)
+# Generate string that gets printed when header is rebuilt
+def gen_sigs_string(target, source, env):
+ return "Generating static_inst_exec_sigs.hh: " \
+ + ', '.join(env['CPU_MODELS'])
+
+# Add command to generate header to environment.
+env.Command('static_inst_exec_sigs.hh', models_db,
+ Action(gen_cpu_exec_signatures, gen_sigs_string,
+ varlist = ['CPU_MODELS']))
+
+#################################################################
+#
+# Include CPU-model-specific files based on set of models
+# specified in CPU_MODELS build option.
+#
+#################################################################
sources = []