summaryrefslogtreecommitdiff
path: root/src/cpu/exetrace.cc
diff options
context:
space:
mode:
authorGiacomo Gabrielli <giacomo.gabrielli@arm.com>2018-10-16 16:09:02 +0100
committerGiacomo Gabrielli <giacomo.gabrielli@arm.com>2019-03-14 10:42:27 +0000
commitc4cc3145cd1eeed236b5cd3f7b2424bc0761878e (patch)
treeb38eab6f5f389dfc53c2cf74275a83bacd2e9b18 /src/cpu/exetrace.cc
parent91195ae7f637d1d4879cc3bf0860147333846e75 (diff)
downloadgem5-c4cc3145cd1eeed236b5cd3f7b2424bc0761878e.tar.xz
arch-arm,cpu: Add initial support for Arm SVE
This changeset adds initial support for the Arm Scalable Vector Extension (SVE) by implementing: - support for most data-processing instructions (no loads/stores yet); - basic system-level support. Additional authors: - Javier Setoain <javier.setoain@arm.com> - Gabor Dozsa <gabor.dozsa@arm.com> - Giacomo Travaglini <giacomo.travaglini@arm.com> Thanks to Pau Cabre for his contribution of bugfixes. Change-Id: I1808b5ff55b401777eeb9b99c9a1129e0d527709 Signed-off-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/13515 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/cpu/exetrace.cc')
-rw-r--r--src/cpu/exetrace.cc45
1 files changed, 44 insertions, 1 deletions
diff --git a/src/cpu/exetrace.cc b/src/cpu/exetrace.cc
index bbde89c00..a228893f2 100644
--- a/src/cpu/exetrace.cc
+++ b/src/cpu/exetrace.cc
@@ -1,4 +1,16 @@
/*
+ * Copyright (c) 2017 ARM Limited
+ * All rights reserved
+ *
+ * The license below extends only to copyright in the software and shall
+ * not be construed as granting a license to any other intellectual
+ * property including but not limited to intellectual property relating
+ * to a hardware implementation of the functionality of the software
+ * licensed hereunder. You may use the software subject to the license
+ * terms below provided that you ensure that this notice is replicated
+ * unmodified and in its entirety in all distributions of the software,
+ * modified or unmodified, in source code or in binary form.
+ *
* Copyright (c) 2001-2005 The Regents of The University of Michigan
* All rights reserved.
*
@@ -118,7 +130,38 @@ Trace::ExeTracerRecord::traceInst(const StaticInstPtr &inst, bool ran)
}
if (Debug::ExecResult && data_status != DataInvalid) {
- ccprintf(outs, " D=%#018x", data.as_int);
+ switch (data_status) {
+ case DataVec:
+ {
+ ccprintf(outs, " D=0x[");
+ auto dv = data.as_vec->as<uint32_t>();
+ for (int i = TheISA::VecRegSizeBytes / 4 - 1; i >= 0;
+ i--) {
+ ccprintf(outs, "%08x", dv[i]);
+ if (i != 0) {
+ ccprintf(outs, "_");
+ }
+ }
+ ccprintf(outs, "]");
+ }
+ break;
+ case DataVecPred:
+ {
+ ccprintf(outs, " D=0b[");
+ auto pv = data.as_pred->as<uint8_t>();
+ for (int i = TheISA::VecPredRegSizeBits - 1; i >= 0; i--) {
+ ccprintf(outs, pv[i] ? "1" : "0");
+ if (i != 0 && i % 4 == 0) {
+ ccprintf(outs, "_");
+ }
+ }
+ ccprintf(outs, "]");
+ }
+ break;
+ default:
+ ccprintf(outs, " D=%#018x", data.as_int);
+ break;
+ }
}
if (Debug::ExecEffAddr && getMemValid())