#include "cpu/exetrace.hh"
#include "cpu/static_inst.hh"
#include "cpu/thread_context.hh"
+#include "config/the_isa.hh"
#include "enums/OpClass.hh"
using namespace std;
namespace Trace {
+void
+ExeTracerRecord::dumpTicks(ostream &outs)
+{
+ ccprintf(outs, "%7d: ", when);
+}
+
void
Trace::ExeTracerRecord::traceInst(StaticInstPtr inst, bool ran)
{
ostream &outs = Trace::output();
if (IsOn(ExecTicks))
- ccprintf(outs, "%7d: ", when);
+ dumpTicks(outs);
outs << thread->getCpuPtr()->name() << " ";
Addr sym_addr;
if (debugSymbolTable
&& IsOn(ExecSymbol)
+#if FULL_SYSTEM
+ && !inUserMode(thread)
+#endif
&& debugSymbolTable->findNearestSymbol(PC, sym_str, sym_addr)) {
if (PC != sym_addr)
sym_str += csprintf("+%d", PC - sym_addr);
* complete/print when they fault.
*/
if (IsOn(ExecMacro) && staticInst->isMicroop() &&
- (IsOn(ExecMicro) &&
+ ((IsOn(ExecMicro) &&
macroStaticInst && staticInst->isFirstMicroop()) ||
(!IsOn(ExecMicro) &&
- macroStaticInst && staticInst->isLastMicroop())) {
+ macroStaticInst && staticInst->isLastMicroop()))) {
traceInst(macroStaticInst, false);
}
if (IsOn(ExecMicro) || !staticInst->isMicroop()) {