Deleted Added
sdiff udiff text old ( 12386:2bf5fb25a5f1 ) new ( 13610:5d5404ac6288 )
full compact
1/*
2 * Copyright (c) 2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 28 unchanged lines hidden (view full) ---

39 *
40 * Authors: Steve Reinhardt
41 * Nathan Binkert
42 */
43
44#ifndef __INSTRECORD_HH__
45#define __INSTRECORD_HH__
46
47#include "base/types.hh"
48#include "cpu/inst_seq.hh"
49#include "cpu/static_inst.hh"
50#include "sim/sim_object.hh"
51
52class ThreadContext;
53
54namespace Trace {

--- 35 unchanged lines hidden (view full) ---

90 * since many instructions write multiple values (e.g. destintation
91 * register, flags, status, ...) This only captures the last write.
92 * @TODO fix this and record all destintations that an instruction writes
93 * @see data_status
94 */
95 union {
96 uint64_t as_int;
97 double as_double;
98 } data;
99
100 /** @defgroup fetch_seq
101 * This records the serial number that the instruction was fetched in.
102 * @see fetch_seq_valid
103 */
104 InstSeqNum fetch_seq;
105

--- 7 unchanged lines hidden (view full) ---

113 * What size of data was written?
114 */
115 enum DataStatus {
116 DataInvalid = 0,
117 DataInt8 = 1, // set to equal number of bytes
118 DataInt16 = 2,
119 DataInt32 = 4,
120 DataInt64 = 8,
121 DataDouble = 3
122 } data_status;
123
124 /** @ingroup memory
125 * Are the memory fields in the record valid?
126 */
127 bool mem_valid;
128
129 /** @ingroup fetch_seq

--- 15 unchanged lines hidden (view full) ---

145 TheISA::PCState _pc,
146 const StaticInstPtr _macroStaticInst = NULL)
147 : when(_when), thread(_thread), staticInst(_staticInst), pc(_pc),
148 macroStaticInst(_macroStaticInst), addr(0), size(0), flags(0),
149 fetch_seq(0), cp_seq(0), data_status(DataInvalid), mem_valid(false),
150 fetch_seq_valid(false), cp_seq_valid(false), predicate(true)
151 { }
152
153 virtual ~InstRecord() { }
154
155 void setWhen(Tick new_when) { when = new_when; }
156 void setMem(Addr a, Addr s, unsigned f)
157 {
158 addr = a; size = s; flags = f; mem_valid = true;
159 }
160
161 template <typename T, size_t N>

--- 14 unchanged lines hidden (view full) ---

176
177 void setData(int64_t d) { setData((uint64_t)d); }
178 void setData(int32_t d) { setData((uint32_t)d); }
179 void setData(int16_t d) { setData((uint16_t)d); }
180 void setData(int8_t d) { setData((uint8_t)d); }
181
182 void setData(double d) { data.as_double = d; data_status = DataDouble; }
183
184 void setFetchSeq(InstSeqNum seq)
185 { fetch_seq = seq; fetch_seq_valid = true; }
186
187 void setCPSeq(InstSeqNum seq)
188 { cp_seq = seq; cp_seq_valid = true; }
189
190 void setPredicate(bool val) { predicate = val; }
191

--- 45 unchanged lines hidden ---