split PowerDecodeSubset do_copy into do_copy and do_get
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 5 May 2021 12:52:36 +0000 (13:52 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 5 May 2021 12:52:36 +0000 (13:52 +0100)
src/openpower/decoder/power_decoder2.py

index 54c029e49c323ea9d7828ba5ccf6071d9bf99114..cb5d6719c22847fdfd76b7b15aceb03d1131a178 100644 (file)
@@ -780,13 +780,17 @@ class PowerDecodeSubset(Elaboratable):
             do = self.e_tmp.do
         return hasattr(do, field) and self.op_get(op_field) is not None
 
-    def do_copy(self, field, val, final=False):
+    def do_get(self, field, final=False):
         if final or self.final:
             do = self.do
         else:
             do = self.e_tmp.do
-        if hasattr(do, field) and val is not None:
-            return getattr(do, field).eq(val)
+        return getattr(do, field, None)
+
+    def do_copy(self, field, val, final=False):
+        df = self.do_get(field, final)
+        if df is not None and val is not None:
+            return df.eq(val)
         return []
 
     def op_get(self, op_field):