Gabe Black has submitted this change and it was merged. ( https://gem5-review.googlesource.com/c/public/gem5/+/12818 )

Change subject: systemc: Fix the default width values for the various sc_trace-s.
......................................................................

systemc: Fix the default width values for the various sc_trace-s.

These were all set to 8 * sizeof(char) instead of using the size of the
actual data type being traced.

Also add a very simple implementation to the generic sc_signal_in_if<T>
sc_trace which just delegates to the sc_trace of the underlying type T.

Change-Id: I129df46ef9d49705dc3dac76e30c0a3652c981eb
Reviewed-on: https://gem5-review.googlesource.com/c/12818
Reviewed-by: Gabe Black <[email protected]>
Maintainer: Gabe Black <[email protected]>
---
M src/systemc/ext/utils/sc_trace_file.hh
1 file changed, 21 insertions(+), 20 deletions(-)

Approvals:
  Gabe Black: Looks good to me, approved; Looks good to me, approved



diff --git a/src/systemc/ext/utils/sc_trace_file.hh b/src/systemc/ext/utils/sc_trace_file.hh
index db50e39..0b4b0d0 100644
--- a/src/systemc/ext/utils/sc_trace_file.hh
+++ b/src/systemc/ext/utils/sc_trace_file.hh
@@ -122,46 +122,46 @@
 // Nonstandard - unsigned versions necessary to avoid ambiguous overload
 // resolution.
 void sc_trace(sc_trace_file *, const unsigned char &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned char)));
 void sc_trace(sc_trace_file *, const unsigned char *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned char)));
 void sc_trace(sc_trace_file *, const unsigned short &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned short)));
 void sc_trace(sc_trace_file *, const unsigned short *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned short)));
 void sc_trace(sc_trace_file *, const unsigned int &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned int)));
 void sc_trace(sc_trace_file *, const unsigned int *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned int)));
 void sc_trace(sc_trace_file *, const unsigned long &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned long)));
 void sc_trace(sc_trace_file *, const unsigned long *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(unsigned long)));

 void sc_trace(sc_trace_file *, const char &,
               const std::string &, int width=(8 * sizeof(char)));
 void sc_trace(sc_trace_file *, const char *,
               const std::string &, int width=(8 * sizeof(char)));
 void sc_trace(sc_trace_file *, const short &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(short)));
 void sc_trace(sc_trace_file *, const short *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(short)));
 void sc_trace(sc_trace_file *, const int &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(int)));
 void sc_trace(sc_trace_file *, const int *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(int)));
 void sc_trace(sc_trace_file *, const long &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(long)));
 void sc_trace(sc_trace_file *, const long *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(long)));
 void sc_trace(sc_trace_file *, const sc_dt::int64 &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(sc_dt::int64)));
 void sc_trace(sc_trace_file *, const sc_dt::int64 *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(sc_dt::int64)));
 void sc_trace(sc_trace_file *, const sc_dt::uint64 &,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(sc_dt::uint64)));
 void sc_trace(sc_trace_file *, const sc_dt::uint64 *,
-              const std::string &, int width=(8 * sizeof(char)));
+              const std::string &, int width=(8 * sizeof(sc_dt::uint64)));

 // Nonstandard function for enums
 void sc_trace(sc_trace_file *, const unsigned int &,
@@ -172,9 +172,10 @@

 template <class T>
 void
-sc_trace(sc_trace_file *, const sc_signal_in_if<T> &, const std::string &)
+sc_trace(sc_trace_file *tf, const sc_signal_in_if<T> &iface,
+        const std::string &name)
 {
-    sc_utils_warn_unimpl(__PRETTY_FUNCTION__);
+    sc_trace(tf, iface.read(), name);
 }

 void sc_trace(sc_trace_file *, const sc_signal_in_if<char> &,

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/12818
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I129df46ef9d49705dc3dac76e30c0a3652c981eb
Gerrit-Change-Number: 12818
Gerrit-PatchSet: 7
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-Reviewer: Andreas Sandberg <[email protected]>
Gerrit-Reviewer: Gabe Black <[email protected]>
Gerrit-Reviewer: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Matthias Jung <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to