SConscript revision 5517
111986Sandreas.sandberg@arm.com# -*- mode:python -*- 212391Sjason@lowepower.com 311986Sandreas.sandberg@arm.com# Copyright (c) 2006 The Regents of The University of Michigan 411986Sandreas.sandberg@arm.com# All rights reserved. 511986Sandreas.sandberg@arm.com# 612391Sjason@lowepower.com# Redistribution and use in source and binary forms, with or without 712391Sjason@lowepower.com# modification, are permitted provided that the following conditions are 812391Sjason@lowepower.com# met: redistributions of source code must retain the above copyright 914299Sbbruce@ucdavis.edu# notice, this list of conditions and the following disclaimer; 1014299Sbbruce@ucdavis.edu# redistributions in binary form must reproduce the above copyright 1114299Sbbruce@ucdavis.edu# notice, this list of conditions and the following disclaimer in the 1214299Sbbruce@ucdavis.edu# documentation and/or other materials provided with the distribution; 1314299Sbbruce@ucdavis.edu# neither the name of the copyright holders nor the names of its 1414299Sbbruce@ucdavis.edu# contributors may be used to endorse or promote products derived from 1514299Sbbruce@ucdavis.edu# this software without specific prior written permission. 1614299Sbbruce@ucdavis.edu# 1714299Sbbruce@ucdavis.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1814299Sbbruce@ucdavis.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1914299Sbbruce@ucdavis.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2014299Sbbruce@ucdavis.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2114299Sbbruce@ucdavis.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2212037Sandreas.sandberg@arm.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2312391Sjason@lowepower.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2414299Sbbruce@ucdavis.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2512037Sandreas.sandberg@arm.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2612037Sandreas.sandberg@arm.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2712391Sjason@lowepower.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2812037Sandreas.sandberg@arm.com# 2912391Sjason@lowepower.com# Authors: Nathan Binkert 3012037Sandreas.sandberg@arm.com 3112391Sjason@lowepower.comimport sys 3214299Sbbruce@ucdavis.edu 3311986Sandreas.sandberg@arm.comImport('*') 3414299Sbbruce@ucdavis.edu 3514299Sbbruce@ucdavis.eduif 'O3CPU' in env['CPU_MODELS'] or 'OzoneCPU' in env['CPU_MODELS']: 3614299Sbbruce@ucdavis.edu Source('2bit_local_pred.cc') 3714299Sbbruce@ucdavis.edu Source('btb.cc') 3814299Sbbruce@ucdavis.edu Source('ras.cc') 3914299Sbbruce@ucdavis.edu Source('tournament_pred.cc') 4014299Sbbruce@ucdavis.edu 4114299Sbbruce@ucdavis.edu TraceFlag('CommitRate') 4214299Sbbruce@ucdavis.edu TraceFlag('IEW') 4314299Sbbruce@ucdavis.edu TraceFlag('IQ') 4414299Sbbruce@ucdavis.edu 4514299Sbbruce@ucdavis.eduif 'O3CPU' in env['CPU_MODELS']: 4612391Sjason@lowepower.com SimObject('FUPool.py') 4711986Sandreas.sandberg@arm.com SimObject('FuncUnitConfig.py') 4814299Sbbruce@ucdavis.edu SimObject('O3CPU.py') 4911986Sandreas.sandberg@arm.com 5014299Sbbruce@ucdavis.edu Source('base_dyn_inst.cc') 5114299Sbbruce@ucdavis.edu Source('bpred_unit.cc') 5214299Sbbruce@ucdavis.edu Source('commit.cc') 5314299Sbbruce@ucdavis.edu Source('cpu.cc') 5414299Sbbruce@ucdavis.edu Source('decode.cc') 5514299Sbbruce@ucdavis.edu Source('fetch.cc') 5614299Sbbruce@ucdavis.edu Source('free_list.cc') 5714299Sbbruce@ucdavis.edu Source('fu_pool.cc') 5814299Sbbruce@ucdavis.edu Source('iew.cc') 5914299Sbbruce@ucdavis.edu Source('inst_queue.cc') 6014299Sbbruce@ucdavis.edu Source('lsq.cc') 6114299Sbbruce@ucdavis.edu Source('lsq_unit.cc') 6214299Sbbruce@ucdavis.edu Source('mem_dep_unit.cc') 6314299Sbbruce@ucdavis.edu Source('rename.cc') 6414299Sbbruce@ucdavis.edu Source('rename_map.cc') 6514299Sbbruce@ucdavis.edu Source('rob.cc') 6614299Sbbruce@ucdavis.edu Source('scoreboard.cc') 6714299Sbbruce@ucdavis.edu Source('store_set.cc') 6814299Sbbruce@ucdavis.edu 6914299Sbbruce@ucdavis.edu TraceFlag('FreeList') 7014299Sbbruce@ucdavis.edu TraceFlag('LSQ') 7114299Sbbruce@ucdavis.edu TraceFlag('LSQUnit') 7214299Sbbruce@ucdavis.edu TraceFlag('MemDepUnit') 7314299Sbbruce@ucdavis.edu TraceFlag('O3CPU') 7414299Sbbruce@ucdavis.edu TraceFlag('ROB') 7514299Sbbruce@ucdavis.edu TraceFlag('Rename') 7614299Sbbruce@ucdavis.edu TraceFlag('Scoreboard') 7714299Sbbruce@ucdavis.edu TraceFlag('StoreSet') 7814299Sbbruce@ucdavis.edu TraceFlag('Writeback') 7914299Sbbruce@ucdavis.edu 8014299Sbbruce@ucdavis.edu CompoundFlag('O3CPUAll', [ 'Fetch', 'Decode', 'Rename', 'IEW', 'Commit', 8114299Sbbruce@ucdavis.edu 'IQ', 'ROB', 'FreeList', 'LSQ', 'LSQUnit', 'StoreSet', 'MemDepUnit', 8214299Sbbruce@ucdavis.edu 'DynInst', 'O3CPU', 'Activity', 'Scoreboard', 'Writeback' ]) 8311986Sandreas.sandberg@arm.com 8412391Sjason@lowepower.com if env['TARGET_ISA'] == 'alpha': 8512391Sjason@lowepower.com Source('alpha/cpu.cc') 8611986Sandreas.sandberg@arm.com Source('alpha/cpu_builder.cc') 8711986Sandreas.sandberg@arm.com Source('alpha/dyn_inst.cc') 8812391Sjason@lowepower.com Source('alpha/thread_context.cc') 8912391Sjason@lowepower.com elif env['TARGET_ISA'] == 'mips': 9012391Sjason@lowepower.com Source('mips/cpu.cc') 9112391Sjason@lowepower.com Source('mips/cpu_builder.cc') 9212391Sjason@lowepower.com Source('mips/dyn_inst.cc') 9312391Sjason@lowepower.com Source('mips/thread_context.cc') 9412391Sjason@lowepower.com elif env['TARGET_ISA'] == 'sparc': 9512391Sjason@lowepower.com Source('sparc/cpu.cc') 9612391Sjason@lowepower.com Source('sparc/cpu_builder.cc') 9712391Sjason@lowepower.com Source('sparc/dyn_inst.cc') 9812391Sjason@lowepower.com Source('sparc/thread_context.cc') 9912391Sjason@lowepower.com else: 10011986Sandreas.sandberg@arm.com sys.exit('O3 CPU does not support the \'%s\' ISA' % env['TARGET_ISA']) 10114299Sbbruce@ucdavis.edu 10214299Sbbruce@ucdavis.edu if env['USE_CHECKER']: 10314299Sbbruce@ucdavis.edu SimObject('O3Checker.py') 10414299Sbbruce@ucdavis.edu Source('checker_builder.cc') 10514299Sbbruce@ucdavis.edu