insttracer.hh (6364:a71fd8e252b7) | insttracer.hh (7600:eff7f79f7dfd) |
---|---|
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; --- 44 unchanged lines hidden (view full) --- 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 Addr PC; 58 StaticInstPtr macroStaticInst; 59 MicroPC upc; 60 bool misspeculating; | 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; --- 44 unchanged lines hidden (view full) --- 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 Addr PC; 58 StaticInstPtr macroStaticInst; 59 MicroPC upc; 60 bool misspeculating; |
61 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; 68 bool addr_valid; --- 28 unchanged lines hidden (view full) --- 97 macroStaticInst(_macroStaticInst), upc(_upc), 98 misspeculating(spec) 99 { 100 data_status = DataInvalid; 101 addr_valid = false; 102 103 fetch_seq_valid = false; 104 cp_seq_valid = false; | 62 63 // The remaining fields are only valid for particular instruction 64 // types (e.g, addresses for memory ops) or when particular 65 // options are enabled (e.g., tracing full register contents). 66 // Each data field has an associated valid flag to indicate 67 // whether the data field is valid. 68 Addr addr; 69 bool addr_valid; --- 28 unchanged lines hidden (view full) --- 98 macroStaticInst(_macroStaticInst), upc(_upc), 99 misspeculating(spec) 100 { 101 data_status = DataInvalid; 102 addr_valid = false; 103 104 fetch_seq_valid = false; 105 cp_seq_valid = false; |
106 predicate = false; |
|
105 } 106 107 virtual ~InstRecord() { } 108 109 void setAddr(Addr a) { addr = a; addr_valid = true; } 110 111 void setData(Twin64_t d) { data.as_int = d.a; data_status = DataInt64; } 112 void setData(Twin32_t d) { data.as_int = d.a; data_status = DataInt32; } --- 10 unchanged lines hidden (view full) --- 123 void setData(double d) { data.as_double = d; data_status = DataDouble; } 124 125 void setFetchSeq(InstSeqNum seq) 126 { fetch_seq = seq; fetch_seq_valid = true; } 127 128 void setCPSeq(InstSeqNum seq) 129 { cp_seq = seq; cp_seq_valid = true; } 130 | 107 } 108 109 virtual ~InstRecord() { } 110 111 void setAddr(Addr a) { addr = a; addr_valid = true; } 112 113 void setData(Twin64_t d) { data.as_int = d.a; data_status = DataInt64; } 114 void setData(Twin32_t d) { data.as_int = d.a; data_status = DataInt32; } --- 10 unchanged lines hidden (view full) --- 125 void setData(double d) { data.as_double = d; data_status = DataDouble; } 126 127 void setFetchSeq(InstSeqNum seq) 128 { fetch_seq = seq; fetch_seq_valid = true; } 129 130 void setCPSeq(InstSeqNum seq) 131 { cp_seq = seq; cp_seq_valid = true; } 132 |
133 void setPredicate(bool val) { predicate = val; } 134 |
|
131 virtual void dump() = 0; 132 133 public: 134 Tick getWhen() { return when; } 135 ThreadContext *getThread() { return thread; } 136 StaticInstPtr getStaticInst() { return staticInst; } 137 Addr getPC() { return PC; } 138 StaticInstPtr getMacroStaticInst() { return macroStaticInst; } --- 38 unchanged lines hidden --- | 135 virtual void dump() = 0; 136 137 public: 138 Tick getWhen() { return when; } 139 ThreadContext *getThread() { return thread; } 140 StaticInstPtr getStaticInst() { return staticInst; } 141 Addr getPC() { return PC; } 142 StaticInstPtr getMacroStaticInst() { return macroStaticInst; } --- 38 unchanged lines hidden --- |