changeset adaa92be9037 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=adaa92be9037
description:
        Merge yet again with the main repository.

diffstat:

 SConstruct                                                                     
 |    12 +-
 configs/common/FSConfig.py                                                     
 |     9 +
 configs/common/Options.py                                                      
 |     9 +-
 configs/common/Simulation.py                                                   
 |    10 +-
 configs/common/cpu2000.py                                                      
 |     2 +-
 configs/example/fs.py                                                          
 |     7 +-
 configs/ruby/Ruby.py                                                           
 |     6 +-
 ext/libelf/SConscript                                                          
 |     2 +-
 src/SConscript                                                                 
 |     2 +-
 src/arch/arm/isa/insts/m5ops.isa                                               
 |     7 +-
 src/arch/mips/faults.cc                                                        
 |     4 +-
 src/arch/mips/faults.hh                                                        
 |    14 +-
 src/arch/mips/isa/decoder.isa                                                  
 |     2 +-
 src/arch/mips/linux/process.cc                                                 
 |     2 +-
 src/arch/mips/registers.hh                                                     
 |     2 +-
 src/arch/mips/tlb.cc                                                           
 |    14 +-
 src/arch/x86/isa/insts/general_purpose/input_output/general_io.py              
 |     8 +
 src/arch/x86/isa/insts/general_purpose/input_output/string_io.py               
 |     8 +
 src/base/hostinfo.cc                                                           
 |    32 +-
 src/base/hostinfo.hh                                                           
 |     8 +-
 src/base/random.cc                                                             
 |    11 +-
 src/base/statistics.hh                                                         
 |     5 +
 src/base/stats/info.hh                                                         
 |     1 +
 src/base/stats/text.cc                                                         
 |    15 +-
 src/cpu/base.hh                                                                
 |     9 +-
 src/cpu/inorder/resources/mult_div_unit.cc                                     
 |     1 +
 src/cpu/o3/commit_impl.hh                                                      
 |     3 +
 src/cpu/o3/decode_impl.hh                                                      
 |     4 -
 src/cpu/o3/iew_impl.hh                                                         
 |     6 +-
 src/cpu/o3/rename_impl.hh                                                      
 |     4 -
 src/cpu/pc_event.cc                                                            
 |     6 +-
 src/cpu/testers/directedtest/DirectedGenerator.hh                              
 |     2 +-
 src/cpu/testers/directedtest/InvalidateGenerator.cc                            
 |     2 +-
 src/cpu/testers/directedtest/InvalidateGenerator.hh                            
 |     8 +-
 src/cpu/testers/directedtest/RubyDirectedTester.hh                             
 |     4 +-
 src/cpu/testers/directedtest/SeriesRequestGenerator.cc                         
 |     2 +-
 src/cpu/testers/directedtest/SeriesRequestGenerator.hh                         
 |     6 +-
 src/dev/arm/pl111.cc                                                           
 |     2 +-
 src/dev/io_device.cc                                                           
 |     2 +-
 src/mem/SConscript                                                             
 |     7 +-
 src/mem/bus.cc                                                                 
 |    15 +-
 src/mem/packet.cc                                                              
 |   112 +-
 src/mem/packet.hh                                                              
 |    15 +-
 src/mem/protocol/MOESI_hammer-cache.sm                                         
 |     3 +-
 src/mem/ruby/buffers/MessageBuffer.cc                                          
 |     6 +-
 src/mem/ruby/eventqueue/RubyEventQueue.hh                                      
 |     4 -
 src/mem/ruby/recorder/CacheRecorder.cc                                         
 |   166 +-
 src/mem/ruby/recorder/CacheRecorder.hh                                         
 |    80 +-
 src/mem/ruby/recorder/SConscript                                               
 |     4 -
 src/mem/ruby/recorder/TraceRecord.cc                                           
 |   139 -
 src/mem/ruby/recorder/TraceRecord.hh                                           
 |    91 -
 src/mem/ruby/recorder/Tracer.cc                                                
 |   135 -
 src/mem/ruby/recorder/Tracer.hh                                                
 |    86 -
 src/mem/ruby/recorder/Tracer.py                                                
 |    37 -
 src/mem/ruby/slicc_interface/AbstractController.hh                             
 |     5 +-
 src/mem/ruby/system/CacheMemory.cc                                             
 |    49 +-
 src/mem/ruby/system/CacheMemory.hh                                             
 |    16 +-
 src/mem/ruby/system/DMASequencer.hh                                            
 |     3 +
 src/mem/ruby/system/DirectoryMemory.cc                                         
 |     1 +
 src/mem/ruby/system/MemoryVector.hh                                            
 |    86 +-
 src/mem/ruby/system/PerfectCacheMemory.hh                                      
 |    14 -
 src/mem/ruby/system/RubyPort.cc                                                
 |    86 +-
 src/mem/ruby/system/RubyPort.hh                                                
 |    15 +-
 src/mem/ruby/system/Sequencer.cc                                               
 |    19 +-
 src/mem/ruby/system/Sequencer.hh                                               
 |    14 +-
 src/mem/ruby/system/SparseMemory.cc                                            
 |    98 +-
 src/mem/ruby/system/SparseMemory.hh                                            
 |    27 +-
 src/mem/ruby/system/System.cc                                                  
 |   246 ++-
 src/mem/ruby/system/System.hh                                                  
 |    52 +-
 src/mem/slicc/symbols/StateMachine.py                                          
 |    31 +
 src/python/m5/SimObject.py                                                     
 |    53 +-
 src/python/m5/main.py                                                          
 |     3 +-
 src/python/m5/params.py                                                        
 |    12 +
 src/python/m5/simulate.py                                                      
 |    12 +
 src/sim/System.py                                                              
 |     2 +-
 src/sim/pseudo_inst.cc                                                         
 |     2 +
 src/sim/system.cc                                                              
 |    50 +-
 src/sim/system.hh                                                              
 |    14 +-
 tests/long/00.gzip/ref/x86/linux/o3-timing/config.ini                          
 |     2 +-
 tests/long/00.gzip/ref/x86/linux/o3-timing/simout                              
 |     5 +-
 tests/long/00.gzip/ref/x86/linux/o3-timing/stats.txt                           
 |    62 +-
 tests/long/00.gzip/ref/x86/linux/simple-atomic/config.ini                      
 |     5 +-
 tests/long/00.gzip/ref/x86/linux/simple-atomic/simerr                          
 |     3 -
 tests/long/00.gzip/ref/x86/linux/simple-atomic/simout                          
 |    18 +-
 tests/long/00.gzip/ref/x86/linux/simple-atomic/stats.txt                       
 |    42 +-
 tests/long/00.gzip/ref/x86/linux/simple-timing/config.ini                      
 |     5 +-
 tests/long/00.gzip/ref/x86/linux/simple-timing/simerr                          
 |     3 -
 tests/long/00.gzip/ref/x86/linux/simple-timing/simout                          
 |    18 +-
 tests/long/00.gzip/ref/x86/linux/simple-timing/stats.txt                       
 |   394 +-
 tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/config.ini             
 |     8 +-
 tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/simout                 
 |    10 +-
 tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/stats.txt              
 |    46 +-
 tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/system.terminal        
 |     0 
 tests/long/10.linux-boot/ref/arm/linux/realview-o3/config.ini                  
 |     8 +-
 tests/long/10.linux-boot/ref/arm/linux/realview-o3/simout                      
 |    10 +-
 tests/long/10.linux-boot/ref/arm/linux/realview-o3/stats.txt                   
 |    46 +-
 tests/long/10.linux-boot/ref/arm/linux/realview-o3/system.terminal             
 |     0 
 tests/long/10.linux-boot/ref/x86/linux/pc-o3-timing/config.ini                 
 |     7 +-
 tests/long/10.linux-boot/ref/x86/linux/pc-o3-timing/simout                     
 |    13 +-
 tests/long/10.linux-boot/ref/x86/linux/pc-o3-timing/stats.txt                  
 |  1141 +++++----
 tests/long/10.linux-boot/ref/x86/linux/pc-o3-timing/system.pc.com_1.terminal   
 |     4 +-
 tests/long/10.mcf/ref/x86/linux/o3-timing/config.ini                           
 |     4 +-
 tests/long/10.mcf/ref/x86/linux/o3-timing/simout                               
 |     5 +-
 tests/long/10.mcf/ref/x86/linux/o3-timing/stats.txt                            
 |     8 +-
 tests/long/10.mcf/ref/x86/linux/simple-atomic/config.ini                       
 |     7 +-
 tests/long/10.mcf/ref/x86/linux/simple-atomic/simerr                           
 |     3 -
 tests/long/10.mcf/ref/x86/linux/simple-atomic/simout                           
 |    18 +-
 tests/long/10.mcf/ref/x86/linux/simple-atomic/stats.txt                        
 |    42 +-
 tests/long/10.mcf/ref/x86/linux/simple-timing/config.ini                       
 |     7 +-
 tests/long/10.mcf/ref/x86/linux/simple-timing/simerr                           
 |     3 -
 tests/long/10.mcf/ref/x86/linux/simple-timing/simout                           
 |    18 +-
 tests/long/10.mcf/ref/x86/linux/simple-timing/stats.txt                        
 |   394 +-
 tests/long/20.parser/ref/arm/linux/o3-timing/config.ini                        
 |     5 +-
 tests/long/20.parser/ref/arm/linux/o3-timing/simout                            
 |     8 +-
 tests/long/20.parser/ref/arm/linux/o3-timing/stats.txt                         
 |    40 +-
 tests/long/20.parser/ref/x86/linux/o3-timing/config.ini                        
 |     4 +-
 tests/long/20.parser/ref/x86/linux/o3-timing/simout                            
 |     7 +-
 tests/long/20.parser/ref/x86/linux/o3-timing/stats.txt                         
 |   704 +++---
 tests/long/20.parser/ref/x86/linux/simple-atomic/config.ini                    
 |     7 +-
 tests/long/20.parser/ref/x86/linux/simple-atomic/simerr                        
 |     3 -
 tests/long/20.parser/ref/x86/linux/simple-atomic/simout                        
 |    18 +-
 tests/long/20.parser/ref/x86/linux/simple-atomic/stats.txt                     
 |    42 +-
 tests/long/20.parser/ref/x86/linux/simple-timing/config.ini                    
 |     7 +-
 tests/long/20.parser/ref/x86/linux/simple-timing/simerr                        
 |     3 -
 tests/long/20.parser/ref/x86/linux/simple-timing/simout                        
 |    18 +-
 tests/long/20.parser/ref/x86/linux/simple-timing/stats.txt                     
 |   394 +-
 tests/long/60.bzip2/ref/x86/linux/simple-atomic/config.ini                     
 |     5 +-
 tests/long/60.bzip2/ref/x86/linux/simple-atomic/simerr                         
 |     3 -
 tests/long/60.bzip2/ref/x86/linux/simple-atomic/simout                         
 |    18 +-
 tests/long/60.bzip2/ref/x86/linux/simple-atomic/stats.txt                      
 |    42 +-
 tests/long/60.bzip2/ref/x86/linux/simple-timing/config.ini                     
 |     5 +-
 tests/long/60.bzip2/ref/x86/linux/simple-timing/simerr                         
 |     3 -
 tests/long/60.bzip2/ref/x86/linux/simple-timing/simout                         
 |    18 +-
 tests/long/60.bzip2/ref/x86/linux/simple-timing/stats.txt                      
 |   394 +-
 tests/long/70.twolf/ref/x86/linux/o3-timing/config.ini                         
 |     2 +-
 tests/long/70.twolf/ref/x86/linux/o3-timing/simout                             
 |     7 +-
 tests/long/70.twolf/ref/x86/linux/o3-timing/stats.txt                          
 |     8 +-
 tests/long/70.twolf/ref/x86/linux/simple-atomic/config.ini                     
 |     5 +-
 tests/long/70.twolf/ref/x86/linux/simple-atomic/simerr                         
 |     3 -
 tests/long/70.twolf/ref/x86/linux/simple-atomic/simout                         
 |    22 +-
 tests/long/70.twolf/ref/x86/linux/simple-atomic/stats.txt                      
 |    42 +-
 tests/long/70.twolf/ref/x86/linux/simple-timing/config.ini                     
 |     5 +-
 tests/long/70.twolf/ref/x86/linux/simple-timing/simerr                         
 |     3 -
 tests/long/70.twolf/ref/x86/linux/simple-timing/simout                         
 |    22 +-
 tests/long/70.twolf/ref/x86/linux/simple-timing/stats.txt                      
 |   394 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/config.ini 
|    94 +-
 
tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/ruby.stats 
|   140 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/simerr    
 |     1 -
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/simout    
 |    18 +-
 tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/stats.txt 
 |    98 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/config.ini 
|    94 +-
 
tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/ruby.stats 
|   130 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/simerr    
 |     2 -
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/simout    
 |    18 +-
 tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/stats.txt 
 |    98 +-
 tests/quick/00.hello/ref/x86/linux/o3-timing/config.ini                        
 |     2 +-
 tests/quick/00.hello/ref/x86/linux/o3-timing/simout                            
 |     6 +-
 tests/quick/00.hello/ref/x86/linux/o3-timing/stats.txt                         
 |    80 +-
 tests/quick/00.hello/ref/x86/linux/simple-atomic/config.ini                    
 |     3 +-
 tests/quick/00.hello/ref/x86/linux/simple-atomic/simerr                        
 |     3 -
 tests/quick/00.hello/ref/x86/linux/simple-atomic/simout                        
 |    18 +-
 tests/quick/00.hello/ref/x86/linux/simple-atomic/stats.txt                     
 |    42 +-
 tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/config.ini               
 |   124 +-
 tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/ruby.stats               
 |    69 +-
 tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/simerr                   
 |     3 -
 tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/simout                   
 |    18 +-
 tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/stats.txt                
 |    42 +-
 tests/quick/00.hello/ref/x86/linux/simple-timing/config.ini                    
 |     3 +-
 tests/quick/00.hello/ref/x86/linux/simple-timing/simerr                        
 |     3 -
 tests/quick/00.hello/ref/x86/linux/simple-timing/simout                        
 |    18 +-
 tests/quick/00.hello/ref/x86/linux/simple-timing/stats.txt                     
 |   386 +-
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-atomic/config.ini            
 |   119 +-
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-atomic/simerr                
 |     8 -
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-atomic/simout                
 |    21 +-
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-atomic/stats.txt             
 |   450 +-
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-timing/config.ini            
 |   119 +-
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-timing/simerr                
 |     8 -
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-timing/simout                
 |    19 +-
 tests/quick/10.linux-boot/ref/x86/linux/pc-simple-timing/stats.txt             
 |    12 +-
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/config.ini    
 |    26 +
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/ruby.stats    
 |  1013 ++++----
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/simerr        
 |   146 +-
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/simout        
 |    12 +-
 tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/stats.txt     
 |    42 +-
 tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/config.ini  
 |     5 +
 tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/ruby.stats  
 |   318 +-
 tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/simout      
 |    12 +-
 tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/stats.txt   
 |    10 +-
 util/hgfilesize.py                                                             
 |     2 +
 util/m5/m5.c                                                                   
 |    16 +-
 190 files changed, 5555 insertions(+), 4999 deletions(-)

diffs (truncated from 16398 to 300 lines):

diff -r 3202eb01e01e -r adaa92be9037 SConstruct
--- a/SConstruct        Sat Jan 07 02:16:37 2012 -0800
+++ b/SConstruct        Mon Jan 16 04:27:10 2012 -0800
@@ -663,10 +663,14 @@
 
 py_libs = []
 for lib in py_getvar('LIBS').split() + py_getvar('SYSLIBS').split():
-    assert lib.startswith('-l')
-    lib = lib[2:]   
-    if lib not in py_libs:
-        py_libs.append(lib)
+    if not lib.startswith('-l'):
+        # Python requires some special flags to link (e.g. -framework
+        # common on OS X systems), assume appending preserves order
+        main.Append(LINKFLAGS=[lib])
+    else:
+        lib = lib[2:]
+        if lib not in py_libs:
+            py_libs.append(lib)
 py_libs.append(py_version)
 
 main.Append(CPPPATH=py_includes)
diff -r 3202eb01e01e -r adaa92be9037 configs/common/FSConfig.py
--- a/configs/common/FSConfig.py        Sat Jan 07 02:16:37 2012 -0800
+++ b/configs/common/FSConfig.py        Mon Jan 16 04:27:10 2012 -0800
@@ -483,6 +483,15 @@
     self.etherlink.int0 = Parent.testsys.tsunami.ethernet.interface
     self.etherlink.int1 = Parent.drivesys.tsunami.ethernet.interface
 
+    if hasattr(testSystem, 'realview'):
+        self.etherlink.int0 = Parent.testsys.realview.ethernet.interface
+        self.etherlink.int1 = Parent.drivesys.realview.ethernet.interface
+    elif hasattr(testSystem, 'tsunami'):
+        self.etherlink.int0 = Parent.testsys.tsunami.ethernet.interface
+        self.etherlink.int1 = Parent.drivesys.tsunami.ethernet.interface
+    else:
+        fatal("Don't know how to connect these system together")
+
     if dumpfile:
         self.etherdump = EtherDump(file=dumpfile)
         self.etherlink.dump = Parent.etherdump
diff -r 3202eb01e01e -r adaa92be9037 configs/common/Options.py
--- a/configs/common/Options.py Sat Jan 07 02:16:37 2012 -0800
+++ b/configs/common/Options.py Mon Jan 16 04:27:10 2012 -0800
@@ -27,7 +27,7 @@
 # Authors: Lisa Hsu
 
 # system options
-parser.add_option("-c", "--cpu-type", type="choice", default="atomic",
+parser.add_option("--cpu-type", type="choice", default="atomic",
                   choices = ["atomic", "timing", "detailed", "inorder"],
                   help = "type of cpu to run with")
 parser.add_option("-n", "--num-cpus", type="int", default=1)
@@ -63,7 +63,8 @@
                   help="exit at specified work end count")
 parser.add_option("--work-begin-exit-count", action="store", type="int",
                   help="exit at specified work begin count")
-
+parser.add_option("--init-param", action="store", type="int", default=0,
+                  help="Parameter available in simulation with m5 initparam")
 
 # Checkpointing options
 ###Note that performing checkpointing via python script files will override
@@ -84,6 +85,10 @@
                   help="checkpoint at specified work end count")
 parser.add_option("--work-cpus-checkpoint-count", action="store", type="int",
                   help="checkpoint and exit when active cpu count is reached")
+parser.add_option("--restore-with-cpu", action="store", type="choice",
+                  default="atomic", choices = ["atomic", "timing",
+                                               "detailed", "inorder"],
+                  help = "cpu type for restoring from a checkpoint")
 
 
 # CPU Switching - default switch model goes from a checkpoint
diff -r 3202eb01e01e -r adaa92be9037 configs/common/Simulation.py
--- a/configs/common/Simulation.py      Sat Jan 07 02:16:37 2012 -0800
+++ b/configs/common/Simulation.py      Mon Jan 16 04:27:10 2012 -0800
@@ -60,7 +60,15 @@
     test_mem_mode = 'atomic'
 
     if not atomic:
-        if options.checkpoint_restore != None or options.fast_forward:
+        if options.checkpoint_restore != None:
+            if options.restore_with_cpu != options.cpu_type:
+                CPUClass = TmpClass
+                class TmpClass(AtomicSimpleCPU): pass
+            else:
+                if options.restore_with_cpu != "atomic":
+                    test_mem_mode = 'timing'
+
+        elif options.fast_forward:
             CPUClass = TmpClass
             class TmpClass(AtomicSimpleCPU): pass
         else:
diff -r 3202eb01e01e -r adaa92be9037 configs/common/cpu2000.py
--- a/configs/common/cpu2000.py Sat Jan 07 02:16:37 2012 -0800
+++ b/configs/common/cpu2000.py Mon Jan 16 04:27:10 2012 -0800
@@ -731,7 +731,7 @@
              '-first_iter_pres_fac', '4', '-initial_pres_fac', '8' ]
     output = 'route_log.out'
 
-all = [ ammp, applu, apsi, art110, art470, equake, facerec, fma3d, galgel,
+all = [ ammp, applu, apsi, art, art110, art470, equake, facerec, fma3d, galgel,
         lucas, mesa, mgrid, sixtrack, swim, wupwise, bzip2_source,
         bzip2_graphic, bzip2_program, crafty, eon_kajiya, eon_cook,
         eon_rushmeier, gap, gcc_166, gcc_200, gcc_expr, gcc_integrate,
diff -r 3202eb01e01e -r adaa92be9037 configs/example/fs.py
--- a/configs/example/fs.py     Sat Jan 07 02:16:37 2012 -0800
+++ b/configs/example/fs.py     Mon Jan 16 04:27:10 2012 -0800
@@ -151,6 +151,8 @@
 if options.script is not None:
     test_sys.readfile = options.script
 
+test_sys.init_param = options.init_param
+
 test_sys.cpu = [TestCPUClass(cpu_id=i) for i in xrange(np)]
 
 CacheConfig.config_cache(options, test_sys)
@@ -190,8 +192,8 @@
     elif buildEnv['TARGET_ISA'] == 'x86':
         drive_sys = makeX86System(drive_mem_mode, np, bm[1])
     elif buildEnv['TARGET_ISA'] == 'arm':
-        drive_sys = makeArmSystem(drive_mem_mode,
-                machine_options.machine_type, bm[1])
+        drive_sys = makeArmSystem(drive_mem_mode, options.machine_type, bm[1])
+
     drive_sys.cpu = DriveCPUClass(cpu_id=0)
     drive_sys.cpu.connectAllPorts(drive_sys.membus)
     if options.fastmem:
@@ -199,6 +201,7 @@
     if options.kernel is not None:
         drive_sys.kernel = binary(options.kernel)
 
+    drive_sys.init_param = options.init_param
     root = makeDualRoot(test_sys, drive_sys, options.etherdump)
 elif len(bm) == 1:
     root = Root(system=test_sys)
diff -r 3202eb01e01e -r adaa92be9037 configs/ruby/Ruby.py
--- a/configs/ruby/Ruby.py      Sat Jan 07 02:16:37 2012 -0800
+++ b/configs/ruby/Ruby.py      Mon Jan 16 04:27:10 2012 -0800
@@ -67,7 +67,8 @@
 def create_system(options, system, piobus = None, dma_devices = []):
 
     system.ruby = RubySystem(clock = options.clock,
-                             stats_filename = options.ruby_stats)
+                             stats_filename = options.ruby_stats,
+                             no_mem_vec = options.use_map)
     ruby = system.ruby
 
     protocol = buildEnv['PROTOCOL']
@@ -154,11 +155,8 @@
 
     ruby_profiler = RubyProfiler(ruby_system = ruby,
                                  num_of_sequencers = len(cpu_sequencers))
-    ruby_tracer   = RubyTracer(ruby_system = ruby)
-    
     ruby.network = network
     ruby.profiler = ruby_profiler
-    ruby.tracer = ruby_tracer
     ruby.mem_size = total_mem_size
     ruby._cpu_ruby_ports = cpu_sequencers
     ruby.random_seed    = options.random_seed
diff -r 3202eb01e01e -r adaa92be9037 ext/libelf/SConscript
--- a/ext/libelf/SConscript     Sat Jan 07 02:16:37 2012 -0800
+++ b/ext/libelf/SConscript     Mon Jan 16 04:27:10 2012 -0800
@@ -91,7 +91,7 @@
 
 m4env = main.Clone()
 if m4env['GCC']:
-    major,minor,dot = [ int(x) for x in m4env['CXXVERSION'].split('.')]
+    major,minor,dot = [int(x) for x in m4env['GCC_VERSION'].split('.')]
     if major >= 4:
         m4env.Append(CCFLAGS=['-Wno-pointer-sign'])
 m4env.Append(CCFLAGS=['-Wno-implicit'])
diff -r 3202eb01e01e -r adaa92be9037 src/SConscript
--- a/src/SConscript    Sat Jan 07 02:16:37 2012 -0800
+++ b/src/SConscript    Mon Jan 16 04:27:10 2012 -0800
@@ -851,8 +851,8 @@
         swig_env.Append(CCFLAGS='-Wno-uninitialized')
         swig_env.Append(CCFLAGS='-Wno-sign-compare')
         swig_env.Append(CCFLAGS='-Wno-parentheses')
+        swig_env.Append(CCFLAGS='-Wno-unused-label')
         if compareVersions(env['GCC_VERSION'], '4.6.0') != -1:
-            swig_env.Append(CCFLAGS='-Wno-unused-label')
             swig_env.Append(CCFLAGS='-Wno-unused-but-set-variable')
 
     werror_env = new_env.Clone()
diff -r 3202eb01e01e -r adaa92be9037 src/arch/arm/isa/insts/m5ops.isa
--- a/src/arch/arm/isa/insts/m5ops.isa  Sat Jan 07 02:16:37 2012 -0800
+++ b/src/arch/arm/isa/insts/m5ops.isa  Mon Jan 16 04:27:10 2012 -0800
@@ -190,12 +190,15 @@
     exec_output += PredOpExecute.subst(loadsymbolIop)
 
     initparamCode = '''
-    Rt = PseudoInst::initParam(xc->tcBase());
+    uint64_t ip_val  = PseudoInst::initParam(xc->tcBase());
+    R0 = bits(ip_val, 31, 0);
+    R1 = bits(ip_val, 63, 32);
     '''
 
     initparamIop = InstObjParams("initparam", "Initparam", "PredOp",
                            { "code": initparamCode,
-                             "predicate_test": predicateTest })
+                             "predicate_test": predicateTest },
+                             ["IsNonSpeculative"])
     header_output += BasicDeclare.subst(initparamIop)
     decoder_output += BasicConstructor.subst(initparamIop)
     exec_output += PredOpExecute.subst(initparamIop)
diff -r 3202eb01e01e -r adaa92be9037 src/arch/mips/faults.cc
--- a/src/arch/mips/faults.cc   Sat Jan 07 02:16:37 2012 -0800
+++ b/src/arch/mips/faults.cc   Mon Jan 16 04:27:10 2012 -0800
@@ -29,6 +29,8 @@
  * Authors: Gabe Black
  *          Korey Sewell
  *          Jaidev Patwardhan
+ *          Zhengxing Li
+ *          Deyuan Guo
  */
 
 #include "arch/mips/faults.hh"
@@ -118,7 +120,7 @@
     DPRINTF(MipsPRA, "PC: %s\n", pc);
     bool delay_slot = pc.pc() + sizeof(MachInst) != pc.npc();
     tc->setMiscRegNoEffect(MISCREG_EPC,
-            pc.pc() - delay_slot ? sizeof(MachInst) : 0);
+            pc.pc() - (delay_slot ? sizeof(MachInst) : 0));
 
     // Set Cause_EXCCODE field
     CauseReg cause = tc->readMiscReg(MISCREG_CAUSE);
diff -r 3202eb01e01e -r adaa92be9037 src/arch/mips/faults.hh
--- a/src/arch/mips/faults.hh   Sat Jan 07 02:16:37 2012 -0800
+++ b/src/arch/mips/faults.hh   Mon Jan 16 04:27:10 2012 -0800
@@ -29,6 +29,8 @@
  * Authors: Gabe Black
  *          Korey Sewell
  *          Jaidev Patwardhan
+ *          Zhengxing Li
+ *          Deyuan Guo
  */
 
 #ifndef __MIPS_FAULTS_HH__
@@ -88,7 +90,7 @@
     virtual FaultVect base(ThreadContext *tc) const
     {
         StatusReg status = tc->readMiscReg(MISCREG_STATUS);
-        if (status.bev)
+        if (!status.bev)
             return tc->readMiscReg(MISCREG_EBASE);
         else
             return 0xbfc00200;
@@ -167,7 +169,7 @@
         if (FullSystem) {
             CauseReg cause = tc->readMiscReg(MISCREG_CAUSE);
             cause.ce = coProcID;
-            tc->setMiscReg(MISCREG_CAUSE, cause);
+            tc->setMiscRegNoEffect(MISCREG_CAUSE, cause);
         }
     }
 };
@@ -179,7 +181,8 @@
     offset(ThreadContext *tc) const
     {
         CauseReg cause = tc->readMiscRegNoEffect(MISCREG_CAUSE);
-        return cause.iv ? 0x200 : 0x000;
+        // offset 0x200 for release 2, 0x180 for release 1.
+        return cause.iv ? 0x200 : 0x180;
     }
 };
 
@@ -251,9 +254,10 @@
             StaticInstPtr inst = StaticInst::nullStaticInstPtr)
     {
         if (FullSystem) {
-            DPRINTF(MipsPRA, "Fault %s encountered.\n", name());
-            tc->pcState(this->vect(tc));
+            DPRINTF(MipsPRA, "Fault %s encountered.\n", this->name());
+            Addr vect = this->vect(tc);
             setTlbExceptionState(tc, this->code());
+            tc->pcState(vect);
         } else {
             AddressFault<T>::invoke(tc, inst);
         }
diff -r 3202eb01e01e -r adaa92be9037 src/arch/mips/isa/decoder.isa
--- a/src/arch/mips/isa/decoder.isa     Sat Jan 07 02:16:37 2012 -0800
+++ b/src/arch/mips/isa/decoder.isa     Mon Jan 16 04:27:10 2012 -0800
@@ -1253,7 +1253,7 @@
                     //When rs=L1
                     //Note: "1. Format type L is legal only if 64-bit
                     //floating point operations are enabled."
-                    0x5: decode FUNCTION_HI {
+                    0x5: decode FUNCTION {
                         format FloatConvertOp {
                             0x20: cvt_s_l({{ val = Fs_ud; }}, ToSingle);
                             0x21: cvt_d_l({{ val = Fs_ud; }}, ToDouble);
diff -r 3202eb01e01e -r adaa92be9037 src/arch/mips/linux/process.cc
--- a/src/arch/mips/linux/process.cc    Sat Jan 07 02:16:37 2012 -0800
+++ b/src/arch/mips/linux/process.cc    Mon Jan 16 04:27:10 2012 -0800
@@ -55,7 +55,7 @@
 
     strcpy(name->sysname, "Linux");
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to