se.py (8896:6df06e5975c6) se.py (8920:99083b5b7ed4)
1# Copyright (c) 2012 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

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

37# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38#
39# Authors: Steve Reinhardt
40
41# Simple test script
42#
43# "m5 test.py"
44
1# Copyright (c) 2012 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

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

37# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38#
39# Authors: Steve Reinhardt
40
41# Simple test script
42#
43# "m5 test.py"
44
45import os
46import optparse
47import sys
45import optparse
46import sys
48from os.path import join as joinpath
49
50import m5
51from m5.defines import buildEnv
52from m5.objects import *
53from m5.util import addToPath, fatal
54
55addToPath('../common')
56addToPath('../ruby')
57
47
48import m5
49from m5.defines import buildEnv
50from m5.objects import *
51from m5.util import addToPath, fatal
52
53addToPath('../common')
54addToPath('../ruby')
55
56import Options
58import Ruby
57import Ruby
59
60import Simulation
61import CacheConfig
62from Caches import *
63from cpu2000 import *
64
58import Simulation
59import CacheConfig
60from Caches import *
61from cpu2000 import *
62
65# Get paths we might need. It's expected this file is in m5/configs/example.
66config_path = os.path.dirname(os.path.abspath(__file__))
67config_root = os.path.dirname(config_path)
68m5_root = os.path.dirname(config_root)
69
70parser = optparse.OptionParser()
63parser = optparse.OptionParser()
64Options.addCommonOptions(parser)
65Options.addSEOptions(parser)
71
66
72# Benchmark options
73parser.add_option("-c", "--cmd",
74 default=joinpath(m5_root, "tests/test-progs/hello/bin/%s/linux/hello" % \
75 buildEnv['TARGET_ISA']),
76 help="The binary to run in syscall emulation mode.")
77parser.add_option("-o", "--options", default="",
78 help='The options to pass to the binary, use " " around the entire string')
79parser.add_option("-i", "--input", default="", help="Read stdin from a file.")
80parser.add_option("--output", default="", help="Redirect stdout to a file.")
81parser.add_option("--errout", default="", help="Redirect stderr to a file.")
82
83execfile(os.path.join(config_root, "common", "Options.py"))
84
85if '--ruby' in sys.argv:
86 Ruby.define_options(parser)
87
88(options, args) = parser.parse_args()
89
90if args:
91 print "Error: script doesn't take any positional arguments"
92 sys.exit(1)

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

105 if buildEnv['TARGET_ISA'] == 'alpha':
106 exec("workload = %s('alpha', 'tru64', 'ref')" % app)
107 else:
108 exec("workload = %s(buildEnv['TARGET_ISA'], 'linux', 'ref')" % app)
109 multiprocesses.append(workload.makeLiveProcess())
110 except:
111 print >>sys.stderr, "Unable to find workload for %s: %s" % (buildEnv['TARGET_ISA'], app)
112 sys.exit(1)
67if '--ruby' in sys.argv:
68 Ruby.define_options(parser)
69
70(options, args) = parser.parse_args()
71
72if args:
73 print "Error: script doesn't take any positional arguments"
74 sys.exit(1)

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

87 if buildEnv['TARGET_ISA'] == 'alpha':
88 exec("workload = %s('alpha', 'tru64', 'ref')" % app)
89 else:
90 exec("workload = %s(buildEnv['TARGET_ISA'], 'linux', 'ref')" % app)
91 multiprocesses.append(workload.makeLiveProcess())
92 except:
93 print >>sys.stderr, "Unable to find workload for %s: %s" % (buildEnv['TARGET_ISA'], app)
94 sys.exit(1)
113else:
95elif options.cmd:
114 process = LiveProcess()
115 process.executable = options.cmd
116 process.cmd = [options.cmd] + options.options.split()
117 multiprocesses.append(process)
96 process = LiveProcess()
97 process.executable = options.cmd
98 process.cmd = [options.cmd] + options.options.split()
99 multiprocesses.append(process)
100else:
101 print >> sys.stderr, "No workload specified. Exiting!\n"
102 sys.exit(1)
118
119
120if options.input != "":
121 process.input = options.input
122if options.output != "":
123 process.output = options.output
124if options.errout != "":
125 process.errout = options.errout

--- 84 unchanged lines hidden ---
103
104
105if options.input != "":
106 process.input = options.input
107if options.output != "":
108 process.output = options.output
109if options.errout != "":
110 process.errout = options.errout

--- 84 unchanged lines hidden ---