adjust how register copy/setup is done in PowerDecoder2
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 29 Jan 2021 18:42:08 +0000 (18:42 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 29 Jan 2021 18:42:08 +0000 (18:42 +0000)
libreriscv
src/soc/decoder/power_decoder2.py

index c63a58b326a2b17d617b098261f217409c65402c..30348c765a545765ebe16121738730d17174f955 160000 (submodule)
@@ -1 +1 @@
-Subproject commit c63a58b326a2b17d617b098261f217409c65402c
+Subproject commit 30348c765a545765ebe16121738730d17174f955
index 0f4c16a2190e98a14e93c744c53e1c3c53066e6d..579b56e06afad6c02402a1262f2a6e6e905fc901 100644 (file)
@@ -866,11 +866,14 @@ class PowerDecode2(PowerDecodeSubset):
             comb += dec_o2.lk.eq(do.lk)
 
         # registers a, b, c and out and out2 (LD/ST EA)
             comb += dec_o2.lk.eq(do.lk)
 
         # registers a, b, c and out and out2 (LD/ST EA)
-        comb += e.read_reg1.eq(dec_a.reg_out)
-        comb += e.read_reg2.eq(dec_b.reg_out)
-        comb += e.read_reg3.eq(dec_c.reg_out)
-        comb += e.write_reg.eq(dec_o.reg_out)
-        comb += e.write_ea.eq(dec_o2.reg_out)
+        for to_reg, fromreg in (
+            (e.read_reg1, dec_a.reg_out),
+            (e.read_reg2, dec_b.reg_out),
+            (e.read_reg3, dec_c.reg_out),
+            (e.write_reg, dec_o.reg_out),
+            (e.write_ea, dec_o2.reg_out)):
+            comb += to_reg.data.eq(fromreg.data)
+            comb += to_reg.ok.eq(fromreg.ok)
 
         # SPRs out
         comb += e.read_spr1.eq(dec_a.spr_out)
 
         # SPRs out
         comb += e.read_spr1.eq(dec_a.spr_out)