yield self.dec2.dec.raw_opcode_in.eq(ins & 0xffffffff)
         yield self.dec2.dec.bigendian.eq(self.bigendian)
-        yield self.dec2.msr.eq(self.msr.value)
-        yield self.dec2.cia.eq(pc)
+        yield self.dec2.state.msr.eq(self.msr.value)
+        yield self.dec2.state.pc.eq(pc)
 
     def execute_one(self):
         """execute one instruction
 
 
             # ask the decoder to decode this binary data (endian'd)
             yield pdecode2.dec.bigendian.eq(self.bigendian)  # le / be?
-            yield pdecode2.msr.eq(msr)  # set MSR "state"
-            yield pdecode2.cia.eq(pc)  # set PC "state"
+            yield pdecode2.state.msr.eq(msr)  # set MSR "state"
+            yield pdecode2.state.pc.eq(pc)  # set PC "state"
             yield instruction.eq(ins)          # raw binary instr.
             yield Settle()
             # debugging issue with branch