add more experimenting on operators
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 11 Oct 2018 06:34:13 +0000 (07:34 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 11 Oct 2018 06:34:13 +0000 (07:34 +0100)
operators/operators.cc
operators/operators.h
operators/operators_test.h

index 79f74a580617c63977a7a3a4f30f55b124145475..cb687d835748f33dcf46981ce45452df7f153693 100644 (file)
@@ -1 +1,7 @@
 #include "operators.h"
+
+reg reg::operator+(reg const& s2)
+{
+    return 0; //reg(opc, elwidth, v + opc->cvt(s2.v));
+}
+
index b9abb3e4a1505af262559c38b895f4dd1f93ca65..219bbe2d78b7dc68584d3e27d0aaab44a2521877 100644 (file)
@@ -8,6 +8,20 @@ uint64_t u64_u16_cvt(reg_t r) { return (uint64_t)(uint16_t)r; }
 
 uint64_t (sext32)(reg_t r) { return sext32(r); }
 
+class opcvt;
+
+class reg
+{
+public:
+    opcvt *opc;
+    uint8_t elwidth;
+    uint64_t v;
+    reg(opcvt *o) : opc(o), elwidth(0), v(0) {}
+    reg(opcvt *o, uint8_t elw, uint64_t _v) : opc(o), elwidth(elw), v(_v) {}
+
+    reg operator+ (reg const& s2);
+};
+
 class opcvt
 {
 public:
@@ -22,4 +36,6 @@ public:
 
     //R operator+ (op2 &s2) { return typecvt(s1 + typecvt(s2)); }
     //operator R() { return typecvt(s1); }
+
+    //void WRITE_RD(reg_t);
 };
index e9a8d319d1b63ee67e55639353e8ff768752eeb6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1 +0,0 @@
-#define require_rv64