base.cc (3126:756092c6383c) | base.cc (3144:b6e9e1811d71) |
---|---|
1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 27 unchanged lines hidden (view full) --- 36#include "base/cprintf.hh" 37#include "base/loader/symtab.hh" 38#include "base/misc.hh" 39#include "base/output.hh" 40#include "cpu/base.hh" 41#include "cpu/cpuevent.hh" 42#include "cpu/thread_context.hh" 43#include "cpu/profile.hh" | 1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 27 unchanged lines hidden (view full) --- 36#include "base/cprintf.hh" 37#include "base/loader/symtab.hh" 38#include "base/misc.hh" 39#include "base/output.hh" 40#include "cpu/base.hh" 41#include "cpu/cpuevent.hh" 42#include "cpu/thread_context.hh" 43#include "cpu/profile.hh" |
44#include "sim/sim_exit.hh" |
|
44#include "sim/param.hh" 45#include "sim/process.hh" 46#include "sim/sim_events.hh" 47#include "sim/system.hh" 48 49#include "base/trace.hh" 50 51// Hack --- 68 unchanged lines hidden (view full) --- 120 for (int i = 0; i < number_of_threads; ++i) 121 comInstEventQueue[i] = new EventQueue("instruction-based event queue"); 122 123 // 124 // set up instruction-count-based termination events, if any 125 // 126 if (p->max_insts_any_thread != 0) 127 for (int i = 0; i < number_of_threads; ++i) | 45#include "sim/param.hh" 46#include "sim/process.hh" 47#include "sim/sim_events.hh" 48#include "sim/system.hh" 49 50#include "base/trace.hh" 51 52// Hack --- 68 unchanged lines hidden (view full) --- 121 for (int i = 0; i < number_of_threads; ++i) 122 comInstEventQueue[i] = new EventQueue("instruction-based event queue"); 123 124 // 125 // set up instruction-count-based termination events, if any 126 // 127 if (p->max_insts_any_thread != 0) 128 for (int i = 0; i < number_of_threads; ++i) |
128 new SimLoopExitEvent(comInstEventQueue[i], p->max_insts_any_thread, 129 "a thread reached the max instruction count"); | 129 schedExitSimLoop("a thread reached the max instruction count", 130 p->max_insts_any_thread, 0, 131 comInstEventQueue[i]); |
130 131 if (p->max_insts_all_threads != 0) { 132 // allocate & initialize shared downcounter: each event will 133 // decrement this when triggered; simulation will terminate 134 // when counter reaches 0 135 int *counter = new int; 136 *counter = number_of_threads; 137 for (int i = 0; i < number_of_threads; ++i) --- 7 unchanged lines hidden (view full) --- 145 for (int i = 0; i < number_of_threads; ++i) 146 comLoadEventQueue[i] = new EventQueue("load-based event queue"); 147 148 // 149 // set up instruction-count-based termination events, if any 150 // 151 if (p->max_loads_any_thread != 0) 152 for (int i = 0; i < number_of_threads; ++i) | 132 133 if (p->max_insts_all_threads != 0) { 134 // allocate & initialize shared downcounter: each event will 135 // decrement this when triggered; simulation will terminate 136 // when counter reaches 0 137 int *counter = new int; 138 *counter = number_of_threads; 139 for (int i = 0; i < number_of_threads; ++i) --- 7 unchanged lines hidden (view full) --- 147 for (int i = 0; i < number_of_threads; ++i) 148 comLoadEventQueue[i] = new EventQueue("load-based event queue"); 149 150 // 151 // set up instruction-count-based termination events, if any 152 // 153 if (p->max_loads_any_thread != 0) 154 for (int i = 0; i < number_of_threads; ++i) |
153 new SimLoopExitEvent(comLoadEventQueue[i], p->max_loads_any_thread, 154 "a thread reached the max load count"); | 155 schedExitSimLoop("a thread reached the max load count", 156 p->max_loads_any_thread, 0, 157 comLoadEventQueue[i]); |
155 156 if (p->max_loads_all_threads != 0) { 157 // allocate & initialize shared downcounter: each event will 158 // decrement this when triggered; simulation will terminate 159 // when counter reaches 0 160 int *counter = new int; 161 *counter = number_of_threads; 162 for (int i = 0; i < number_of_threads; ++i) --- 269 unchanged lines hidden --- | 158 159 if (p->max_loads_all_threads != 0) { 160 // allocate & initialize shared downcounter: each event will 161 // decrement this when triggered; simulation will terminate 162 // when counter reaches 0 163 int *counter = new int; 164 *counter = number_of_threads; 165 for (int i = 0; i < number_of_threads; ++i) --- 269 unchanged lines hidden --- |