systemc: Implement + and - for sc_time, and sc_max_time.
authorGabe Black <gabeblack@google.com>
Sat, 21 Jul 2018 00:36:04 +0000 (17:36 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 11 Sep 2018 21:44:01 +0000 (21:44 +0000)
Change-Id: I294b63840e42e2afdef198229adc60ddbb60b9a1
Reviewed-on: https://gem5-review.googlesource.com/12040
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/core/sc_time.cc

index f51b1581c51a1b4446ffb41724f33c16cf898186..43d39008d53325284ce8910518d60fd35c4cab65 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 #include "base/logging.hh"
+#include "base/types.hh"
 #include "python/pybind11/pybind.hh"
 #include "systemc/ext/core/sc_time.hh"
 
@@ -239,17 +240,15 @@ sc_time::from_string(const char *str)
 }
 
 const sc_time
-operator + (const sc_time &, const sc_time &)
+operator + (const sc_time &a, const sc_time &b)
 {
-    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
-    return sc_time();
+    return sc_time::from_value(a.value() + b.value());
 }
 
 const sc_time
-operator - (const sc_time &, const sc_time &)
+operator - (const sc_time &a, const sc_time &b)
 {
-    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
-    return sc_time();
+    return sc_time::from_value(a.value() - b.value());
 }
 
 const sc_time
@@ -305,8 +304,8 @@ sc_get_time_resolution()
 const sc_time &
 sc_max_time()
 {
-    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
-    return *(const sc_time *)nullptr;
+    static const sc_time MaxScTime = sc_time::from_value(MaxTick);
+    return MaxScTime;
 }
 
 void