SConscript revision 5222
112027Sjungma@eit.uni-kl.de# -*- mode:python -*- 212027Sjungma@eit.uni-kl.de 312027Sjungma@eit.uni-kl.de# Copyright (c) 2006 The Regents of The University of Michigan 412027Sjungma@eit.uni-kl.de# All rights reserved. 512027Sjungma@eit.uni-kl.de# 612027Sjungma@eit.uni-kl.de# Redistribution and use in source and binary forms, with or without 712027Sjungma@eit.uni-kl.de# modification, are permitted provided that the following conditions are 812027Sjungma@eit.uni-kl.de# met: redistributions of source code must retain the above copyright 912027Sjungma@eit.uni-kl.de# notice, this list of conditions and the following disclaimer; 1012027Sjungma@eit.uni-kl.de# redistributions in binary form must reproduce the above copyright 1112027Sjungma@eit.uni-kl.de# notice, this list of conditions and the following disclaimer in the 1212027Sjungma@eit.uni-kl.de# documentation and/or other materials provided with the distribution; 1312027Sjungma@eit.uni-kl.de# neither the name of the copyright holders nor the names of its 1412027Sjungma@eit.uni-kl.de# contributors may be used to endorse or promote products derived from 1512027Sjungma@eit.uni-kl.de# this software without specific prior written permission. 1612027Sjungma@eit.uni-kl.de# 1712027Sjungma@eit.uni-kl.de# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1812027Sjungma@eit.uni-kl.de# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1912027Sjungma@eit.uni-kl.de# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2012027Sjungma@eit.uni-kl.de# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2112027Sjungma@eit.uni-kl.de# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2212027Sjungma@eit.uni-kl.de# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2312027Sjungma@eit.uni-kl.de# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2412027Sjungma@eit.uni-kl.de# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2512027Sjungma@eit.uni-kl.de# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2612027Sjungma@eit.uni-kl.de# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2712027Sjungma@eit.uni-kl.de# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2812027Sjungma@eit.uni-kl.de# 2912027Sjungma@eit.uni-kl.de# Authors: Nathan Binkert 3012027Sjungma@eit.uni-kl.de 3112027Sjungma@eit.uni-kl.deimport sys 3212027Sjungma@eit.uni-kl.de 3312027Sjungma@eit.uni-kl.deImport('*') 3412027Sjungma@eit.uni-kl.de 3512027Sjungma@eit.uni-kl.deif 'O3CPU' in env['CPU_MODELS'] or 'OzoneCPU' in env['CPU_MODELS']: 3612027Sjungma@eit.uni-kl.de Source('2bit_local_pred.cc') 3712027Sjungma@eit.uni-kl.de Source('btb.cc') 3812027Sjungma@eit.uni-kl.de Source('ras.cc') 3912027Sjungma@eit.uni-kl.de Source('tournament_pred.cc') 4012027Sjungma@eit.uni-kl.de 4112027Sjungma@eit.uni-kl.de TraceFlag('CommitRate') 4212027Sjungma@eit.uni-kl.de TraceFlag('IEW') 4312027Sjungma@eit.uni-kl.de TraceFlag('IQ') 4412027Sjungma@eit.uni-kl.de 4512027Sjungma@eit.uni-kl.deif 'O3CPU' in env['CPU_MODELS']: 4612027Sjungma@eit.uni-kl.de SimObject('FUPool.py') 4712027Sjungma@eit.uni-kl.de SimObject('FuncUnitConfig.py') 4812027Sjungma@eit.uni-kl.de SimObject('O3CPU.py') 4912027Sjungma@eit.uni-kl.de 5012027Sjungma@eit.uni-kl.de Source('base_dyn_inst.cc') 5112027Sjungma@eit.uni-kl.de Source('bpred_unit.cc') 5212027Sjungma@eit.uni-kl.de Source('commit.cc') 5312027Sjungma@eit.uni-kl.de Source('cpu.cc') 5412027Sjungma@eit.uni-kl.de Source('decode.cc') 5512027Sjungma@eit.uni-kl.de Source('fetch.cc') 5612027Sjungma@eit.uni-kl.de Source('free_list.cc') 5712027Sjungma@eit.uni-kl.de Source('fu_pool.cc') 5812027Sjungma@eit.uni-kl.de Source('iew.cc') 5912027Sjungma@eit.uni-kl.de Source('inst_queue.cc') 6012027Sjungma@eit.uni-kl.de Source('lsq.cc') 6112027Sjungma@eit.uni-kl.de Source('lsq_unit.cc') 6212027Sjungma@eit.uni-kl.de Source('mem_dep_unit.cc') 6312027Sjungma@eit.uni-kl.de Source('rename.cc') 6412027Sjungma@eit.uni-kl.de Source('rename_map.cc') 6512027Sjungma@eit.uni-kl.de Source('rob.cc') 6612027Sjungma@eit.uni-kl.de Source('scoreboard.cc') 6712027Sjungma@eit.uni-kl.de Source('store_set.cc') 6812027Sjungma@eit.uni-kl.de 6912027Sjungma@eit.uni-kl.de TraceFlag('FreeList') 7012027Sjungma@eit.uni-kl.de TraceFlag('LSQ') 7112027Sjungma@eit.uni-kl.de TraceFlag('LSQUnit') 7212027Sjungma@eit.uni-kl.de TraceFlag('MemDepUnit') 7312027Sjungma@eit.uni-kl.de TraceFlag('O3CPU') 7412027Sjungma@eit.uni-kl.de TraceFlag('ROB') 7512027Sjungma@eit.uni-kl.de TraceFlag('Rename') 7612027Sjungma@eit.uni-kl.de TraceFlag('Scoreboard') 7712027Sjungma@eit.uni-kl.de TraceFlag('StoreSet') 7812027Sjungma@eit.uni-kl.de TraceFlag('Writeback') 7912027Sjungma@eit.uni-kl.de 8012027Sjungma@eit.uni-kl.de CompoundFlag('O3CPUAll', [ 'Fetch', 'Decode', 'Rename', 'IEW', 'Commit', 8112027Sjungma@eit.uni-kl.de 'IQ', 'ROB', 'FreeList', 'LSQ', 'LSQUnit', 'StoreSet', 'MemDepUnit', 8212027Sjungma@eit.uni-kl.de 'DynInst', 'O3CPU', 'Activity', 'Scoreboard', 'Writeback' ]) 8312027Sjungma@eit.uni-kl.de 8412027Sjungma@eit.uni-kl.de if env['TARGET_ISA'] == 'alpha': 8512027Sjungma@eit.uni-kl.de Source('alpha/cpu.cc') 86 Source('alpha/cpu_builder.cc') 87 Source('alpha/dyn_inst.cc') 88 Source('alpha/thread_context.cc') 89 elif env['TARGET_ISA'] == 'mips': 90 Source('mips/cpu.cc') 91 Source('mips/cpu_builder.cc') 92 Source('mips/dyn_inst.cc') 93 Source('mips/thread_context.cc') 94 elif env['TARGET_ISA'] == 'sparc': 95 Source('sparc/cpu.cc') 96 Source('sparc/cpu_builder.cc') 97 Source('sparc/dyn_inst.cc') 98 Source('sparc/thread_context.cc') 99 else: 100 sys.exit('O3 CPU does not support the \'%s\' ISA' % env['TARGET_ISA']) 101 102 if env['USE_CHECKER']: 103 SimObject('O3Checker.py') 104 Source('checker_builder.cc') 105