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