summaryrefslogtreecommitdiff
path: root/src/proto
diff options
context:
space:
mode:
authorRadhika Jagtap <radhika.jagtap@ARM.com>2015-12-07 16:42:16 -0600
committerRadhika Jagtap <radhika.jagtap@ARM.com>2015-12-07 16:42:16 -0600
commit3080bbcc365e6ed663787a4c06cd2b7c4a118d47 (patch)
treea73d051d5aa5a26d0e64d348a7f121e089ebc139 /src/proto
parent9bd5051b6022249f95364ef30b100b69ac7e7c37 (diff)
downloadgem5-3080bbcc365e6ed663787a4c06cd2b7c4a118d47.tar.xz
cpu: Create record type enum for elastic traces
This patch replaces the booleans that specified the elastic trace record type with an enum type. The source of change is the proto message for elastic trace where the enum is introduced. The struct definitions in the elastic trace probe listener as well as the Trace CPU replace the boleans with the proto message enum. The patch does not impact functionality, but traces are not compatible with previous version. This is preparation for adding new types of records in subsequent patches.
Diffstat (limited to 'src/proto')
-rw-r--r--src/proto/inst_dep_record.proto47
1 files changed, 26 insertions, 21 deletions
diff --git a/src/proto/inst_dep_record.proto b/src/proto/inst_dep_record.proto
index 7035bfc74..98c070efc 100644
--- a/src/proto/inst_dep_record.proto
+++ b/src/proto/inst_dep_record.proto
@@ -50,26 +50,31 @@ message InstDepRecordHeader {
}
// Packet to encapsulate an instruction in the o3cpu data dependency trace.
-// The required fields include the instruction sequence number, whether it
-// is a load, and whether it is a store. The request related fields are
-// optional, namely address, size and flags. These exist only if the
-// instruction is a load or store. The dependency related information includes
-// a repeated field for order dependencies, a repeated field for register
-// dependencies and the computational delay with respect to the dependency
-// that completed last. A weight field is used to account for committed
-// instructions that were filtered out before writing the trace and is used
-// to estimate ROB occupancy during replay. An optional field is provided for
-// the instruction PC.
+// The required fields include the instruction sequence number and the type
+// of the record associated with the instruction e.g. load. The request related
+// fields are optional, namely address, size and flags. The dependency related
+// information includes a repeated field for order dependencies and register
+// dependencies for loads, stores and comp records. There is a field for the
+// computational delay with respect to the dependency that completed last. A
+// weight field is used to account for committed instruction that were
+// filtered out before writing the trace and is used to estimate ROB
+// occupancy during replay. An optional field is provided for the instruction
+// PC.
message InstDepRecord {
+ enum RecordType {
+ INVALID = 0;
+ LOAD = 1;
+ STORE = 2;
+ COMP = 3;
+ }
required uint64 seq_num = 1;
- required bool load = 2;
- required bool store = 3;
- optional uint64 addr = 4;
- optional uint32 size = 5;
- optional uint32 flags = 6;
- repeated uint64 rob_dep = 7;
- required uint64 comp_delay = 8;
- repeated uint64 reg_dep = 9;
- optional uint32 weight = 10;
- optional uint64 pc = 11;
-}
+ required RecordType type = 2 [default = INVALID];
+ optional uint64 addr = 3;
+ optional uint32 size = 4;
+ optional uint32 flags = 5;
+ repeated uint64 rob_dep = 6;
+ required uint64 comp_delay = 7;
+ repeated uint64 reg_dep = 8;
+ optional uint32 weight = 9;
+ optional uint64 pc = 10;
+} \ No newline at end of file