insttracer.hh (10559:62f5f7363197) | insttracer.hh (10664:61a0b02aa800) |
---|---|
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; --- 42 unchanged lines hidden (view full) --- 51 // The following fields are initialized by the constructor and 52 // thus guaranteed to be valid. 53 ThreadContext *thread; 54 // need to make this ref-counted so it doesn't go away before we 55 // dump the record 56 StaticInstPtr staticInst; 57 TheISA::PCState pc; 58 StaticInstPtr macroStaticInst; | 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; --- 42 unchanged lines hidden (view full) --- 51 // The following fields are initialized by the constructor and 52 // thus guaranteed to be valid. 53 ThreadContext *thread; 54 // need to make this ref-counted so it doesn't go away before we 55 // dump the record 56 StaticInstPtr staticInst; 57 TheISA::PCState pc; 58 StaticInstPtr macroStaticInst; |
59 bool misspeculating; | |
60 bool predicate; 61 62 // The remaining fields are only valid for particular instruction 63 // types (e.g, addresses for memory ops) or when particular 64 // options are enabled (e.g., tracing full register contents). 65 // Each data field has an associated valid flag to indicate 66 // whether the data field is valid. 67 Addr addr; --- 16 unchanged lines hidden (view full) --- 84 bool fetch_seq_valid; 85 86 InstSeqNum cp_seq; 87 bool cp_seq_valid; 88 89 public: 90 InstRecord(Tick _when, ThreadContext *_thread, 91 const StaticInstPtr _staticInst, | 59 bool predicate; 60 61 // The remaining fields are only valid for particular instruction 62 // types (e.g, addresses for memory ops) or when particular 63 // options are enabled (e.g., tracing full register contents). 64 // Each data field has an associated valid flag to indicate 65 // whether the data field is valid. 66 Addr addr; --- 16 unchanged lines hidden (view full) --- 83 bool fetch_seq_valid; 84 85 InstSeqNum cp_seq; 86 bool cp_seq_valid; 87 88 public: 89 InstRecord(Tick _when, ThreadContext *_thread, 90 const StaticInstPtr _staticInst, |
92 TheISA::PCState _pc, bool spec, | 91 TheISA::PCState _pc, |
93 const StaticInstPtr _macroStaticInst = NULL) 94 : when(_when), thread(_thread), 95 staticInst(_staticInst), pc(_pc), 96 macroStaticInst(_macroStaticInst), | 92 const StaticInstPtr _macroStaticInst = NULL) 93 : when(_when), thread(_thread), 94 staticInst(_staticInst), pc(_pc), 95 macroStaticInst(_macroStaticInst), |
97 misspeculating(spec), predicate(true), addr(0), addr_valid(false), | 96 predicate(true), addr(0), addr_valid(false), |
98 data_status(DataInvalid), 99 fetch_seq(0), fetch_seq_valid(false), cp_seq(0), cp_seq_valid(false) 100 { 101 } 102 103 virtual ~InstRecord() { } 104 105 void setWhen(Tick new_when) { when = new_when; } --- 25 unchanged lines hidden (view full) --- 131 virtual void dump() = 0; 132 133 public: 134 Tick getWhen() { return when; } 135 ThreadContext *getThread() { return thread; } 136 StaticInstPtr getStaticInst() { return staticInst; } 137 TheISA::PCState getPCState() { return pc; } 138 StaticInstPtr getMacroStaticInst() { return macroStaticInst; } | 97 data_status(DataInvalid), 98 fetch_seq(0), fetch_seq_valid(false), cp_seq(0), cp_seq_valid(false) 99 { 100 } 101 102 virtual ~InstRecord() { } 103 104 void setWhen(Tick new_when) { when = new_when; } --- 25 unchanged lines hidden (view full) --- 130 virtual void dump() = 0; 131 132 public: 133 Tick getWhen() { return when; } 134 ThreadContext *getThread() { return thread; } 135 StaticInstPtr getStaticInst() { return staticInst; } 136 TheISA::PCState getPCState() { return pc; } 137 StaticInstPtr getMacroStaticInst() { return macroStaticInst; } |
139 bool getMisspeculating() { return misspeculating; } | |
140 141 Addr getAddr() { return addr; } 142 bool getAddrValid() { return addr_valid; } 143 144 uint64_t getIntData() { return data.as_int; } 145 double getFloatData() { return data.as_double; } 146 int getDataStatus() { return data_status; } 147 --- 27 unchanged lines hidden --- | 138 139 Addr getAddr() { return addr; } 140 bool getAddrValid() { return addr_valid; } 141 142 uint64_t getIntData() { return data.as_int; } 143 double getFloatData() { return data.as_double; } 144 int getDataStatus() { return data_status; } 145 --- 27 unchanged lines hidden --- |