SCons: Support building without an ISA
This commit is contained in:
parent
92655b6399
commit
e1b9a815dd
17 changed files with 62 additions and 12 deletions
2
build_opts/NOISA
Normal file
2
build_opts/NOISA
Normal file
|
@ -0,0 +1,2 @@
|
|||
TARGET_ISA = 'no'
|
||||
CPU_MODELS = 'no'
|
4
src/arch/noisa/SConsopts
Normal file
4
src/arch/noisa/SConsopts
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
all_isa_list.append('no')
|
6
src/arch/noisa/cpu_dummy.hh
Normal file
6
src/arch/noisa/cpu_dummy.hh
Normal file
|
@ -0,0 +1,6 @@
|
|||
|
||||
class BaseCPU
|
||||
{
|
||||
public:
|
||||
static int numSimulatedInstructions() { return 0; }
|
||||
};
|
|
@ -56,6 +56,7 @@ Source('pollevent.cc')
|
|||
Source('random.cc')
|
||||
Source('random_mt.cc')
|
||||
Source('range.cc')
|
||||
if env['TARGET_ISA'] != 'no':
|
||||
Source('remote_gdb.cc')
|
||||
Source('sat_counter.cc')
|
||||
Source('socket.cc')
|
||||
|
|
|
@ -30,6 +30,9 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
#################################################################
|
||||
#
|
||||
# Generate StaticInst execute() method signatures.
|
||||
|
|
4
src/cpu/nocpu/SConsopts
Normal file
4
src/cpu/nocpu/SConsopts
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
CpuModel('no', '', '', { '': '' })
|
|
@ -31,6 +31,9 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
if env['FULL_SYSTEM']:
|
||||
SimObject('BadDevice.py')
|
||||
SimObject('CopyEngine.py')
|
||||
|
|
|
@ -30,6 +30,9 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
if env['FULL_SYSTEM']:
|
||||
Source('kernel_stats.cc')
|
||||
Source('system_events.cc')
|
||||
|
|
|
@ -33,21 +33,23 @@ Import('*')
|
|||
SimObject('Bridge.py')
|
||||
SimObject('Bus.py')
|
||||
SimObject('MemObject.py')
|
||||
SimObject('PhysicalMemory.py')
|
||||
|
||||
Source('bridge.cc')
|
||||
Source('bus.cc')
|
||||
Source('dram.cc')
|
||||
Source('mem_object.cc')
|
||||
Source('packet.cc')
|
||||
Source('physical.cc')
|
||||
Source('port.cc')
|
||||
Source('tport.cc')
|
||||
Source('mport.cc')
|
||||
|
||||
if env['TARGET_ISA'] != 'no':
|
||||
SimObject('PhysicalMemory.py')
|
||||
Source('dram.cc')
|
||||
Source('physical.cc')
|
||||
|
||||
if env['FULL_SYSTEM']:
|
||||
Source('vport.cc')
|
||||
else:
|
||||
elif env['TARGET_ISA'] != 'no':
|
||||
Source('page_table.cc')
|
||||
Source('translating_port.cc')
|
||||
|
||||
|
|
3
src/mem/cache/SConscript
vendored
3
src/mem/cache/SConscript
vendored
|
@ -30,6 +30,9 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
SimObject('BaseCache.py')
|
||||
|
||||
Source('base.cc')
|
||||
|
|
3
src/mem/cache/prefetch/SConscript
vendored
3
src/mem/cache/prefetch/SConscript
vendored
|
@ -30,6 +30,9 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
Source('base.cc')
|
||||
Source('ghb.cc')
|
||||
Source('stride.cc')
|
||||
|
|
3
src/mem/cache/tags/SConscript
vendored
3
src/mem/cache/tags/SConscript
vendored
|
@ -30,6 +30,9 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
Source('base.cc')
|
||||
Source('fa_lru.cc')
|
||||
Source('iic.cc')
|
||||
|
|
|
@ -37,6 +37,9 @@ import SCons
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
if not env['RUBY']:
|
||||
Return()
|
||||
|
||||
|
|
|
@ -31,10 +31,8 @@
|
|||
#include <Python.h>
|
||||
|
||||
#include "base/types.hh"
|
||||
#include "cpu/base.hh"
|
||||
#include "sim/serialize.hh"
|
||||
#include "sim/sim_object.hh"
|
||||
#include "sim/system.hh"
|
||||
|
||||
extern "C" SimObject *convertSwigSimObjectPtr(PyObject *);
|
||||
SimObject *resolveSimObject(const std::string &name);
|
||||
|
|
|
@ -32,28 +32,30 @@ Import('*')
|
|||
|
||||
SimObject('BaseTLB.py')
|
||||
SimObject('Root.py')
|
||||
SimObject('System.py')
|
||||
SimObject('InstTracer.py')
|
||||
|
||||
Source('async.cc')
|
||||
Source('core.cc')
|
||||
Source('debug.cc')
|
||||
Source('eventq.cc')
|
||||
Source('faults.cc')
|
||||
Source('init.cc')
|
||||
Source('main.cc', bin_only=True)
|
||||
Source('pseudo_inst.cc')
|
||||
Source('root.cc')
|
||||
Source('serialize.cc')
|
||||
Source('sim_events.cc')
|
||||
Source('sim_object.cc')
|
||||
Source('simulate.cc')
|
||||
Source('stat_control.cc')
|
||||
|
||||
if env['TARGET_ISA'] != 'no':
|
||||
SimObject('System.py')
|
||||
Source('faults.cc')
|
||||
Source('pseudo_inst.cc')
|
||||
Source('system.cc')
|
||||
|
||||
if env['FULL_SYSTEM']:
|
||||
Source('arguments.cc')
|
||||
else:
|
||||
elif env['TARGET_ISA'] != 'no':
|
||||
Source('tlb.cc')
|
||||
SimObject('Process.py')
|
||||
|
||||
|
|
|
@ -39,7 +39,14 @@
|
|||
#include "base/hostinfo.hh"
|
||||
#include "base/statistics.hh"
|
||||
#include "base/time.hh"
|
||||
|
||||
#include "config/the_isa.hh"
|
||||
#if THE_ISA == NO_ISA
|
||||
#include "arch/noisa/cpu_dummy.hh"
|
||||
#else
|
||||
#include "cpu/base.hh"
|
||||
#endif
|
||||
|
||||
#include "sim/eventq.hh"
|
||||
|
||||
using namespace std;
|
||||
|
|
|
@ -30,6 +30,9 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
if env['TARGET_ISA'] == 'no':
|
||||
Return()
|
||||
|
||||
UnitTest('bitvectest', 'bitvectest.cc')
|
||||
UnitTest('circletest', 'circletest.cc')
|
||||
UnitTest('cprintftest', 'cprintftest.cc')
|
||||
|
|
Loading…
Reference in a new issue