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 --- |