super().__init__(pspec)
self.a = Signal(64, reset_less=True) # RA
self.b = Signal(64, reset_less=True) # RB/immediate
- self.so = Signal(reset_less=True)
- self.carry_in = Signal(reset_less=True)
+ self.xer_so = Signal(reset_less=True) # XER bit 32: SO
+ self.xer_ca = Signal(2, reset_less=True) # XER bit 34/45: CA/CA32
def __iter__(self):
yield from super().__iter__()
yield self.a
yield self.b
- yield self.carry_in
- yield self.so
+ yield self.xer_ca
+ yield self.xer_so
def eq(self, i):
lst = super().eq(i)
return lst + [self.a.eq(i.a), self.b.eq(i.b),
- self.carry_in.eq(i.carry_in),
- self.so.eq(i.so)]
+ self.xer_ca.eq(i.xer_ca),
+ self.xer_so.eq(i.xer_so)]
# TODO: ALUIntermediateData which does not have
# cr0, ov, ov32 in it (because they are generated as outputs by
super().__init__(pspec)
self.o = Signal(64, reset_less=True, name="stage_o")
self.cr0 = Data(4, name="cr0")
- self.xer_co = Data(2, name="xer_co") # bit0: co, bit1: co32
+ self.xer_ca = Data(2, name="xer_co") # bit0: ca, bit1: ca32
self.xer_ov = Data(2, name="xer_ov") # bit0: ov, bit1: ov32
self.xer_so = Data(1, name="xer_so")
def __iter__(self):
yield from super().__iter__()
yield self.o
- yield self.xer_co
+ yield self.xer_ca
yield self.cr0
yield self.xer_ov
yield self.xer_so
def eq(self, i):
lst = super().eq(i)
return lst + [self.o.eq(i.o),
- self.xer_co.eq(i.xer_co),
+ self.xer_ca.eq(i.xer_ca),
self.cr0.eq(i.cr0),
self.xer_ov.eq(i.xer_ov), self.xer_so.eq(i.xer_so)]