exetrace.cc (4011:e6899d7ca5b1) exetrace.cc (4046:ef34b290091e)
1/*
2 * Copyright (c) 2001-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;

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

118 ccprintf(os, "====================================================================\n");
119 ccprintf(os, "%69s\n", sectionString);
120 ccprintf(os, "====================================================================\n");
121}
122
123#endif
124
125void
1/*
2 * Copyright (c) 2001-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;

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

118 ccprintf(os, "====================================================================\n");
119 ccprintf(os, "%69s\n", sectionString);
120 ccprintf(os, "====================================================================\n");
121}
122
123#endif
124
125void
126Trace::InstRecord::dump(ostream &outs)
126Trace::InstRecord::dump()
127{
127{
128 ostream &outs = Trace::output();
129
128 DPRINTF(Sparc, "Instruction: %#X\n", staticInst->machInst);
129 if (flags[PRINT_REG_DELTA])
130 {
131#if THE_ISA == SPARC_ISA
132 //Don't print what happens for each micro-op, just print out
133 //once at the last op, and for regular instructions.
134 if(!staticInst->isMicroOp() || staticInst->isLastMicroOp())
135 {

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

189 }
190 else if (flags[INTEL_FORMAT]) {
191#if FULL_SYSTEM
192 bool is_trace_system = (thread->getCpuPtr()->system->name() == trace_system);
193#else
194 bool is_trace_system = true;
195#endif
196 if (is_trace_system) {
130 DPRINTF(Sparc, "Instruction: %#X\n", staticInst->machInst);
131 if (flags[PRINT_REG_DELTA])
132 {
133#if THE_ISA == SPARC_ISA
134 //Don't print what happens for each micro-op, just print out
135 //once at the last op, and for regular instructions.
136 if(!staticInst->isMicroOp() || staticInst->isLastMicroOp())
137 {

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

191 }
192 else if (flags[INTEL_FORMAT]) {
193#if FULL_SYSTEM
194 bool is_trace_system = (thread->getCpuPtr()->system->name() == trace_system);
195#else
196 bool is_trace_system = true;
197#endif
198 if (is_trace_system) {
197 ccprintf(outs, "%7d ) ", cycle);
199 ccprintf(outs, "%7d ) ", when);
198 outs << "0x" << hex << PC << ":\t";
199 if (staticInst->isLoad()) {
200 outs << "<RD 0x" << hex << addr;
201 outs << ">";
202 } else if (staticInst->isStore()) {
203 outs << "<WR 0x" << hex << addr;
204 outs << ">";
205 }
206 outs << endl;
207 }
208 } else {
200 outs << "0x" << hex << PC << ":\t";
201 if (staticInst->isLoad()) {
202 outs << "<RD 0x" << hex << addr;
203 outs << ">";
204 } else if (staticInst->isStore()) {
205 outs << "<WR 0x" << hex << addr;
206 outs << ">";
207 }
208 outs << endl;
209 }
210 } else {
209 if (flags[PRINT_CYCLE])
210 ccprintf(outs, "%7d: ", cycle);
211 if (flags[PRINT_TICKS])
212 ccprintf(outs, "%7d: ", when);
211
212 outs << thread->getCpuPtr()->name() << " ";
213
214 if (flags[TRACE_MISSPEC])
215 outs << (misspeculating ? "-" : "+") << " ";
216
217 if (flags[PRINT_THREAD_NUM])
218 outs << "T" << thread->getThreadNum() << " : ";

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

319 bool diffOtherwin = false;
320 bool diffCleanwin = false;
321 bool diffTlb = false;
322 Addr m5Pc, lgnPc;
323
324 // We took a trap on a micro-op...
325 if (wasMicro && !staticInst->isMicroOp())
326 {
213
214 outs << thread->getCpuPtr()->name() << " ";
215
216 if (flags[TRACE_MISSPEC])
217 outs << (misspeculating ? "-" : "+") << " ";
218
219 if (flags[PRINT_THREAD_NUM])
220 outs << "T" << thread->getThreadNum() << " : ";

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

321 bool diffOtherwin = false;
322 bool diffCleanwin = false;
323 bool diffTlb = false;
324 Addr m5Pc, lgnPc;
325
326 // We took a trap on a micro-op...
327 if (wasMicro && !staticInst->isMicroOp())
328 {
327 // let's skip comparing this cycle
329 // let's skip comparing this tick
328 while (!compared)
329 if (shared_data->flags == OWN_M5) {
330 shared_data->flags = OWN_LEGION;
331 compared = true;
332 }
333 compared = false;
334 wasMicro = false;
335 }

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

743// Helper function for ExecutionTraceParamContext::checkParams() just
744// to get us into the InstRecord namespace
745//
746void
747Trace::InstRecord::setParams()
748{
749 flags[TRACE_MISSPEC] = exe_trace_spec;
750
330 while (!compared)
331 if (shared_data->flags == OWN_M5) {
332 shared_data->flags = OWN_LEGION;
333 compared = true;
334 }
335 compared = false;
336 wasMicro = false;
337 }

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

745// Helper function for ExecutionTraceParamContext::checkParams() just
746// to get us into the InstRecord namespace
747//
748void
749Trace::InstRecord::setParams()
750{
751 flags[TRACE_MISSPEC] = exe_trace_spec;
752
751 flags[PRINT_CYCLE] = exe_trace_print_cycle;
753 flags[PRINT_TICKS] = exe_trace_print_cycle;
752 flags[PRINT_OP_CLASS] = exe_trace_print_opclass;
753 flags[PRINT_THREAD_NUM] = exe_trace_print_thread;
754 flags[PRINT_RESULT_DATA] = exe_trace_print_effaddr;
755 flags[PRINT_EFF_ADDR] = exe_trace_print_data;
756 flags[PRINT_INT_REGS] = exe_trace_print_iregs;
757 flags[PRINT_FETCH_SEQ] = exe_trace_print_fetchseq;
758 flags[PRINT_CP_SEQ] = exe_trace_print_cp_seq;
759 flags[PRINT_REG_DELTA] = exe_trace_print_reg_delta;

--- 34 unchanged lines hidden ---
754 flags[PRINT_OP_CLASS] = exe_trace_print_opclass;
755 flags[PRINT_THREAD_NUM] = exe_trace_print_thread;
756 flags[PRINT_RESULT_DATA] = exe_trace_print_effaddr;
757 flags[PRINT_EFF_ADDR] = exe_trace_print_data;
758 flags[PRINT_INT_REGS] = exe_trace_print_iregs;
759 flags[PRINT_FETCH_SEQ] = exe_trace_print_fetchseq;
760 flags[PRINT_CP_SEQ] = exe_trace_print_cp_seq;
761 flags[PRINT_REG_DELTA] = exe_trace_print_reg_delta;

--- 34 unchanged lines hidden ---