SConscript (2978:199dcea84fc4) SConscript (4202:f7a05daec670)
1# -*- mode:python -*-
2
3# Copyright (c) 2006 The Regents of The University of Michigan
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are
8# met: redistributions of source code must retain the above copyright

--- 12 unchanged lines hidden (view full) ---

21# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28#
1# -*- mode:python -*-
2
3# Copyright (c) 2006 The Regents of The University of Michigan
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are
8# met: redistributions of source code must retain the above copyright

--- 12 unchanged lines hidden (view full) ---

21# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28#
29# Authors: Korey Sewell
29# Authors: Nathan Binkert
30
30
31import os
32import os.path
33import sys
34
31import sys
32
35# Import build environment variable from SConstruct.
36Import('env')
33Import('*')
37
34
35if 'O3CPU' in env['CPU_MODELS']:
36 Source('base_dyn_inst.cc')
37 Source('bpred_unit.cc')
38 Source('commit.cc')
39 Source('cpu.cc')
40 Source('decode.cc')
41 Source('fetch.cc')
42 Source('free_list.cc')
43 Source('fu_pool.cc')
44 Source('iew.cc')
45 Source('inst_queue.cc')
46 Source('lsq.cc')
47 Source('lsq_unit.cc')
48 Source('mem_dep_unit.cc')
49 Source('rename.cc')
50 Source('rename_map.cc')
51 Source('rob.cc')
52 Source('scoreboard.cc')
53 Source('store_set.cc')
38
54
39#################################################################
40#
41# Include ISA-specific files for the O3 CPU-model
42#
43#################################################################
55 if env['TARGET_ISA'] == 'alpha':
56 Source('alpha/cpu.cc')
57 Source('alpha/cpu_builder.cc')
58 Source('alpha/dyn_inst.cc')
59 Source('alpha/thread_context.cc')
60 elif env['TARGET_ISA'] == 'mips':
61 Source('mips/cpu.cc')
62 Source('mips/cpu_builder.cc')
63 Source('mips/dyn_inst.cc')
64 Source('mips/thread_context.cc')
65 elif env['TARGET_ISA'] == 'sparc':
66 Source('sparc/cpu.cc')
67 Source('sparc/cpu_builder.cc')
68 Source('sparc/dyn_inst.cc')
69 Source('sparc/thread_context.cc')
70 else:
71 sys.exit('O3 CPU does not support the \'%s\' ISA' % env['TARGET_ISA'])
44
72
45sources = []
73 if env['USE_CHECKER']:
74 Source('checker_builder.cc')
46
75
47if env['TARGET_ISA'] == 'alpha':
48 sources += Split('''
49 alpha/dyn_inst.cc
50 alpha/cpu.cc
51 alpha/thread_context.cc
52 alpha/cpu_builder.cc
53 ''')
54elif env['TARGET_ISA'] == 'mips':
55 sources += Split('''
56 mips/dyn_inst.cc
57 mips/cpu.cc
58 mips/thread_context.cc
59 mips/cpu_builder.cc
60 ''')
61elif env['TARGET_ISA'] == 'sparc':
62 sources += Split('''
63 sparc/dyn_inst.cc
64 sparc/cpu.cc
65 sparc/thread_context.cc
66 sparc/cpu_builder.cc
67 ''')
68else:
69 sys.exit('O3 CPU does not support the \'%s\' ISA' % env['TARGET_ISA'])
76if 'O3CPU' in env['CPU_MODELS'] or 'OzoneCPU' in env['CPU_MODELS']:
77 Source('2bit_local_pred.cc')
78 Source('btb.cc')
79 Source('ras.cc')
80 Source('tournament_pred.cc')
70
81
71
72# Convert file names to SCons File objects. This takes care of the
73# path relative to the top of the directory tree.
74sources = [File(s) for s in sources]
75
76Return('sources')
77