nativetrace.cc (6417:fbc8d1e996d9) nativetrace.cc (6419:2192dac4ad82)
1/*
2 * Copyright (c) 2006 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;

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

157 assert(inst);
158 bool ran = true;
159 if (inst->isMicroop()) {
160 ran = false;
161 inst = record->getMacroStaticInst();
162 }
163 assert(inst);
164 record->traceInst(inst, ran);
1/*
2 * Copyright (c) 2006 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;

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

157 assert(inst);
158 bool ran = true;
159 if (inst->isMicroop()) {
160 ran = false;
161 inst = record->getMacroStaticInst();
162 }
163 assert(inst);
164 record->traceInst(inst, ran);
165
166 bool pcError = (mState.newState[STATE_PC] !=
167 nState.newState[STATE_PC]);
168 if (stopOnPCError && pcError)
169 panic("Native trace detected an error in control flow!");
165 }
166}
167
168} /* namespace Trace */
169
170////////////////////////////////////////////////////////////////////////
171//
172// ExeTracer Simulation Object
173//
174Trace::ArmNativeTrace *
175ArmNativeTraceParams::create()
176{
177 return new Trace::ArmNativeTrace(this);
178};
170 }
171}
172
173} /* namespace Trace */
174
175////////////////////////////////////////////////////////////////////////
176//
177// ExeTracer Simulation Object
178//
179Trace::ArmNativeTrace *
180ArmNativeTraceParams::create()
181{
182 return new Trace::ArmNativeTrace(this);
183};