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