SConscript revision 13898
14202Sbinkertn@umich.edu# -*- mode:python -*-
24202Sbinkertn@umich.edu
34202Sbinkertn@umich.edu# Copyright (c) 2006 The Regents of The University of Michigan
44202Sbinkertn@umich.edu# All rights reserved.
54202Sbinkertn@umich.edu#
64202Sbinkertn@umich.edu# Redistribution and use in source and binary forms, with or without
74202Sbinkertn@umich.edu# modification, are permitted provided that the following conditions are
84202Sbinkertn@umich.edu# met: redistributions of source code must retain the above copyright
94202Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer;
104202Sbinkertn@umich.edu# redistributions in binary form must reproduce the above copyright
114202Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer in the
124202Sbinkertn@umich.edu# documentation and/or other materials provided with the distribution;
134202Sbinkertn@umich.edu# neither the name of the copyright holders nor the names of its
144202Sbinkertn@umich.edu# contributors may be used to endorse or promote products derived from
154202Sbinkertn@umich.edu# this software without specific prior written permission.
164202Sbinkertn@umich.edu#
174202Sbinkertn@umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
184202Sbinkertn@umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
194202Sbinkertn@umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
204202Sbinkertn@umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
214202Sbinkertn@umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
224202Sbinkertn@umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
234202Sbinkertn@umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
244202Sbinkertn@umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
254202Sbinkertn@umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
264202Sbinkertn@umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
274202Sbinkertn@umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
284202Sbinkertn@umich.edu#
294202Sbinkertn@umich.edu# Authors: Steve Reinhardt
304202Sbinkertn@umich.edu
314202Sbinkertn@umich.eduImport('*')
324202Sbinkertn@umich.edu
339157Sandreas.hansson@arm.comDebugFlag('Activity')
3410259SAndrew.Bardsley@arm.comDebugFlag('Commit')
354486Sbinkertn@umich.eduDebugFlag('Context')
369793Sakash.bagdia@arm.comDebugFlag('Decode')
379827Sakash.bagdia@arm.comDebugFlag('DynInst')
389850Sandreas.hansson@arm.comDebugFlag('ExecEnable',
3910249Sstephan.diestelhorst@arm.com        'Filter: Enable exec tracing (no tracing without this)')
4010268SGeoffrey.Blake@arm.comDebugFlag('ExecCPSeq', 'Format: Instruction sequence number')
414486Sbinkertn@umich.eduDebugFlag('ExecEffAddr', 'Format: Include effective address')
428774Sgblack@eecs.umich.eduDebugFlag('ExecFaulting', 'Trace faulting instructions')
434202Sbinkertn@umich.eduDebugFlag('ExecFetchSeq', 'Format: Fetch sequence number')
4411235Sandreas.sandberg@arm.comDebugFlag('ExecOpClass', 'Format: Include operand class')
454202Sbinkertn@umich.eduDebugFlag('ExecRegDelta')
4611077SCurtis.Dunham@arm.comDebugFlag('ExecResult', 'Format: Include results from execution')
4710458Sandreas.hansson@arm.comDebugFlag('ExecSymbol', 'Format: Try to include symbol names')
4810458Sandreas.hansson@arm.comDebugFlag('ExecThread', 'Format: Include thread ID in trace')
4910458Sandreas.hansson@arm.comDebugFlag('ExecTicks', 'Format: Include tick count')
504202Sbinkertn@umich.eduDebugFlag('ExecMicro', 'Filter: Include microops')
5110453SAndrew.Bardsley@arm.comDebugFlag('ExecMacro', 'Filter: Include macroops')
524202Sbinkertn@umich.eduDebugFlag('ExecUser', 'Filter: Trace user mode instructions')
539983Sstever@gmail.comDebugFlag('ExecKernel', 'Filter: Trace kernel mode instructions')
5410453SAndrew.Bardsley@arm.comDebugFlag('ExecAsid', 'Format: Include ASID in trace')
5510453SAndrew.Bardsley@arm.comDebugFlag('ExecFlags', 'Format: Include instruction flags in trace')
568233Snate@binkert.orgDebugFlag('Fetch')
574202Sbinkertn@umich.eduDebugFlag('IntrControl')
584202Sbinkertn@umich.eduDebugFlag('O3PipeView')
599342SAndreas.Sandberg@arm.comDebugFlag('PCEvent')
604202Sbinkertn@umich.eduDebugFlag('Quiesce')
614202Sbinkertn@umich.eduDebugFlag('Mwait')
6210268SGeoffrey.Blake@arm.com
6310259SAndrew.Bardsley@arm.comCompoundFlag('ExecAll', [ 'ExecEnable', 'ExecCPSeq', 'ExecEffAddr',
644202Sbinkertn@umich.edu    'ExecFaulting', 'ExecFetchSeq', 'ExecOpClass', 'ExecRegDelta',
654202Sbinkertn@umich.edu    'ExecResult', 'ExecSymbol', 'ExecThread',
6610453SAndrew.Bardsley@arm.com    'ExecTicks', 'ExecMicro', 'ExecMacro', 'ExecUser', 'ExecKernel',
679793Sakash.bagdia@arm.com    'ExecAsid', 'ExecFlags' ])
689827Sakash.bagdia@arm.comCompoundFlag('Exec', [ 'ExecEnable', 'ExecTicks', 'ExecOpClass', 'ExecThread',
6911420Sdavid.guillen@arm.com    'ExecEffAddr', 'ExecResult', 'ExecSymbol', 'ExecMicro', 'ExecMacro',
709850Sandreas.hansson@arm.com    'ExecFaulting', 'ExecUser', 'ExecKernel' ])
7110249Sstephan.diestelhorst@arm.comCompoundFlag('ExecNoTicks', [ 'ExecEnable', 'ExecOpClass', 'ExecThread',
7211524Sdavid.guillen@arm.com    'ExecEffAddr', 'ExecResult', 'ExecMicro', 'ExecMacro', 'ExecFaulting',
7311527Sdavid.guillen@arm.com    'ExecUser', 'ExecKernel' ])
747768SAli.Saidi@ARM.com
759850Sandreas.hansson@arm.comif env['TARGET_ISA'] == 'null':
769850Sandreas.hansson@arm.com    SimObject('IntrControl.py')
778766Sgblack@eecs.umich.edu    Source('intr_control_noisa.cc')
7811854Sbrandon.potter@amd.com    Return()
797768SAli.Saidi@ARM.com
808766Sgblack@eecs.umich.edu# Only build the protocol buffer instructions tracer if we have protobuf support
8111856Sbrandon.potter@amd.comif env['HAVE_PROTOBUF'] and env['TARGET_ISA'] != 'x86':
8210930Sbrandon.potter@amd.com    SimObject('InstPBTrace.py')
837768SAli.Saidi@ARM.com    Source('inst_pb_trace.cc')
849850Sandreas.hansson@arm.com
8511794Sbrandon.potter@amd.comSimObject('CheckerCPU.py')
864486Sbinkertn@umich.edu
8711800Sbrandon.potter@amd.comSimObject('BaseCPU.py')
8811800Sbrandon.potter@amd.comSimObject('CPUTracers.py')
8911800Sbrandon.potter@amd.comSimObject('FuncUnit.py')
908335Snate@binkert.orgSimObject('IntrControl.py')
918335Snate@binkert.orgSimObject('TimingExpr.py')
9210458Sandreas.hansson@arm.com
939152Satgutier@umich.eduSource('activity.cc')
948335Snate@binkert.orgSource('base.cc')
958335Snate@binkert.orgSource('cpuevent.cc')
968335Snate@binkert.orgSource('exetrace.cc')
978335Snate@binkert.orgSource('exec_context.cc')
988335Snate@binkert.orgSource('func_unit.cc')
998335Snate@binkert.orgSource('inteltrace.cc')
1008335Snate@binkert.orgSource('intr_control.cc')
1019733Sandreas@sandberg.pp.seSource('nativetrace.cc')
1028335Snate@binkert.orgSource('pc_event.cc')
10311380Salexandru.dutu@amd.comSource('profile.cc')
1048335Snate@binkert.orgSource('quiesce_event.cc')
1058335Snate@binkert.orgSource('reg_class.cc')
1068335Snate@binkert.orgSource('static_inst.cc')
1078335Snate@binkert.orgSource('simple_thread.cc')
1088335Snate@binkert.orgSource('thread_context.cc')
1098335Snate@binkert.orgSource('thread_state.cc')
1109793Sakash.bagdia@arm.comSource('timing_expr.cc')
1119827Sakash.bagdia@arm.com
11210249Sstephan.diestelhorst@arm.comSimObject('DummyChecker.py')
11311380Salexandru.dutu@amd.comSimObject('StaticInstFlags.py')
11411380Salexandru.dutu@amd.comSource('checker/cpu.cc')
115Source('dummy_checker.cc')
116DebugFlag('Checker')
117