punk@1: signature ProcTypes where { punk@1: import ¶Counter®¶; punk@1: punk@1: import ¶FIFOF_®¶; punk@1: punk@1: import ¶FIFOF®¶; punk@1: punk@1: import ¶FIFO®¶; punk@1: punk@1: import ¶Inout®¶; punk@1: punk@1: import ¶List®¶; punk@1: punk@1: import ¶Clocks®¶; punk@1: punk@1: import ¶ListN®¶; punk@1: punk@1: import ¶PrimArray®¶; punk@1: punk@1: import ¶Vector®¶; punk@1: punk@1: import ¶Connectable®¶; punk@1: punk@1: import ¶GetPut®¶; punk@1: punk@1: import ¶ClientServer®¶; punk@1: punk@1: import Trace; punk@1: punk@1: type (ProcTypes.Addr :: *) = ¶Prelude®¶.¶Bit®¶ 32; punk@1: punk@1: type (ProcTypes.Stat :: *) = ¶Prelude®¶.¶Int®¶ 18; punk@1: punk@1: type (ProcTypes.Rindx :: *) = ¶Prelude®¶.¶Bit®¶ 5; punk@1: punk@1: type (ProcTypes.Simm :: *) = ¶Prelude®¶.¶Bit®¶ 16; punk@1: punk@1: type (ProcTypes.Zimm :: *) = ¶Prelude®¶.¶Bit®¶ 16; punk@1: punk@1: type (ProcTypes.Epoch :: *) = ¶Prelude®¶.¶Bit®¶ 8; punk@1: punk@1: type (ProcTypes.Shamt :: *) = ¶Prelude®¶.¶Bit®¶ 5; punk@1: punk@1: type (ProcTypes.Target :: *) = ¶Prelude®¶.¶Bit®¶ 26; punk@1: punk@1: type (ProcTypes.CP0indx :: *) = ¶Prelude®¶.¶Bit®¶ 5; punk@1: punk@1: type (ProcTypes.Data :: *) = ¶Prelude®¶.¶Bit®¶ 32; punk@1: punk@1: data (ProcTypes.Direction :: *) = ProcTypes.Taken () | ProcTypes.NotTaken (); punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.Direction; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.Direction; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.Direction; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Bits®¶ ProcTypes.Direction 1; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.Direction; punk@1: punk@1: data (ProcTypes.WritebackType :: *) = punk@1: ProcTypes.ALUWB (¶Prelude®¶.¶Tuple2®¶ ProcTypes.Rindx ProcTypes.Data) | punk@1: ProcTypes.MemWB ProcTypes.Rindx | punk@1: ProcTypes.CoWB (¶Prelude®¶.¶Tuple2®¶ ProcTypes.Rindx ProcTypes.Data); punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.WritebackType; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.WritebackType; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.WritebackType; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Bits®¶ ProcTypes.WritebackType 39; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.WritebackType; punk@1: punk@1: data (ProcTypes.WBResult :: *) = punk@1: ProcTypes.WB_ALU ProcTypes.¶WBResult_$WB_ALU¶ | punk@1: ProcTypes.WB_Host (¶Prelude®¶.¶Bit®¶ 32) | punk@1: ProcTypes.WB_Load ProcTypes.Rindx | punk@1: ProcTypes.WB_Store (); punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.WBResult; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.WBResult; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.WBResult; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.WBResult; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Bits®¶ ProcTypes.WBResult 39; punk@1: punk@1: struct (ProcTypes.¶WBResult_$WB_ALU¶ :: *) = { punk@1: ProcTypes.¡data¡ :: ¶Prelude®¶.¶Bit®¶ 32; punk@1: ProcTypes.dest :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶WBResult_$WB_ALU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶WBResult_$WB_ALU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶WBResult_$WB_ALU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶WBResult_$WB_ALU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Bits®¶ ProcTypes.¶WBResult_$WB_ALU¶ 37; punk@1: punk@1: struct (ProcTypes.PCStat :: *) = { punk@1: ProcTypes.qpc :: ProcTypes.Addr; punk@1: ProcTypes.qnxtpc :: ProcTypes.Addr; punk@1: ProcTypes.qepoch :: ProcTypes.Epoch punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.PCStat; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.PCStat; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.PCStat; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.PCStat; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Bits®¶ ProcTypes.PCStat 72; punk@1: punk@1: data (ProcTypes.Instr :: *) = punk@1: ProcTypes.LW ProcTypes.¶Instr_$LW¶ | punk@1: ProcTypes.SW ProcTypes.¶Instr_$SW¶ | punk@1: ProcTypes.ADDIU ProcTypes.¶Instr_$ADDIU¶ | punk@1: ProcTypes.SLTI ProcTypes.¶Instr_$SLTI¶ | punk@1: ProcTypes.SLTIU ProcTypes.¶Instr_$SLTIU¶ | punk@1: ProcTypes.ANDI ProcTypes.¶Instr_$ANDI¶ | punk@1: ProcTypes.ORI ProcTypes.¶Instr_$ORI¶ | punk@1: ProcTypes.XORI ProcTypes.¶Instr_$XORI¶ | punk@1: ProcTypes.LUI ProcTypes.¶Instr_$LUI¶ | punk@1: ProcTypes.SLL ProcTypes.¶Instr_$SLL¶ | punk@1: ProcTypes.SRL ProcTypes.¶Instr_$SRL¶ | punk@1: ProcTypes.SRA ProcTypes.¶Instr_$SRA¶ | punk@1: ProcTypes.SLLV ProcTypes.¶Instr_$SLLV¶ | punk@1: ProcTypes.SRLV ProcTypes.¶Instr_$SRLV¶ | punk@1: ProcTypes.SRAV ProcTypes.¶Instr_$SRAV¶ | punk@1: ProcTypes.ADDU ProcTypes.¶Instr_$ADDU¶ | punk@1: ProcTypes.SUBU ProcTypes.¶Instr_$SUBU¶ | punk@1: ProcTypes.AND ProcTypes.¶Instr_$AND¶ | punk@1: ProcTypes.OR ProcTypes.¶Instr_$OR¶ | punk@1: ProcTypes.XOR ProcTypes.¶Instr_$XOR¶ | punk@1: ProcTypes.NOR ProcTypes.¶Instr_$NOR¶ | punk@1: ProcTypes.SLT ProcTypes.¶Instr_$SLT¶ | punk@1: ProcTypes.SLTU ProcTypes.¶Instr_$SLTU¶ | punk@1: ProcTypes.J ProcTypes.¶Instr_$J¶ | punk@1: ProcTypes.JAL ProcTypes.¶Instr_$JAL¶ | punk@1: ProcTypes.JR ProcTypes.¶Instr_$JR¶ | punk@1: ProcTypes.JALR ProcTypes.¶Instr_$JALR¶ | punk@1: ProcTypes.BEQ ProcTypes.¶Instr_$BEQ¶ | punk@1: ProcTypes.BNE ProcTypes.¶Instr_$BNE¶ | punk@1: ProcTypes.BLEZ ProcTypes.¶Instr_$BLEZ¶ | punk@1: ProcTypes.BGTZ ProcTypes.¶Instr_$BGTZ¶ | punk@1: ProcTypes.BLTZ ProcTypes.¶Instr_$BLTZ¶ | punk@1: ProcTypes.BGEZ ProcTypes.¶Instr_$BGEZ¶ | punk@1: ProcTypes.MFC0 ProcTypes.¶Instr_$MFC0¶ | punk@1: ProcTypes.MTC0 ProcTypes.¶Instr_$MTC0¶ | punk@1: ProcTypes.ILLEGAL (); punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.Instr; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.Instr; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.Instr; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.Instr; punk@1: punk@1: struct (ProcTypes.¶Instr_$LW¶ :: *) = { punk@1: ProcTypes.rbase :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$LW¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$LW¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$LW¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$LW¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SW¶ :: *) = { punk@1: ProcTypes.rbase :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SW¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SW¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SW¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SW¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$ADDIU¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.imm :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$ADDIU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$ADDIU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$ADDIU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$ADDIU¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SLTI¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.imm :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SLTI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SLTI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SLTI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SLTI¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SLTIU¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.imm :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SLTIU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SLTIU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SLTIU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SLTIU¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$ANDI¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.imm :: ProcTypes.Zimm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$ANDI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$ANDI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$ANDI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$ANDI¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$ORI¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.imm :: ProcTypes.Zimm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$ORI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$ORI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$ORI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$ORI¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$XORI¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.imm :: ProcTypes.Zimm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$XORI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$XORI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$XORI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$XORI¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$LUI¶ :: *) = { punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.imm :: ProcTypes.Zimm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$LUI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$LUI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$LUI¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$LUI¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SLL¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.shamt :: ProcTypes.Shamt punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SLL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SLL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SLL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SLL¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SRL¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.shamt :: ProcTypes.Shamt punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SRL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SRL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SRL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SRL¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SRA¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.shamt :: ProcTypes.Shamt punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SRA¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SRA¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SRA¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SRA¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SLLV¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.rshamt :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SLLV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SLLV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SLLV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SLLV¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SRLV¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.rshamt :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SRLV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SRLV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SRLV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SRLV¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SRAV¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.rshamt :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SRAV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SRAV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SRAV¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SRAV¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$ADDU¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$ADDU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$ADDU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$ADDU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$ADDU¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SUBU¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SUBU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SUBU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SUBU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SUBU¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$AND¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$AND¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$AND¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$AND¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$AND¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$OR¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$OR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$OR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$OR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$OR¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$XOR¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$XOR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$XOR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$XOR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$XOR¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$NOR¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$NOR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$NOR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$NOR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$NOR¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SLT¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SLT¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SLT¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SLT¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SLT¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$SLTU¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$SLTU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$SLTU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$SLTU¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$SLTU¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$J¶ :: *) = { punk@1: ProcTypes.target :: ProcTypes.Target punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$J¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$J¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$J¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$J¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$JAL¶ :: *) = { punk@1: ProcTypes.target :: ProcTypes.Target punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$JAL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$JAL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$JAL¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$JAL¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$JR¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$JR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$JR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$JR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$JR¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$JALR¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.rdst :: ProcTypes.Rindx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$JALR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$JALR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$JALR¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$JALR¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$BEQ¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$BEQ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$BEQ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$BEQ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$BEQ¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$BNE¶ :: *) = { punk@1: ProcTypes.rsrc1 :: ProcTypes.Rindx; punk@1: ProcTypes.rsrc2 :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$BNE¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$BNE¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$BNE¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$BNE¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$BLEZ¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$BLEZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$BLEZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$BLEZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$BLEZ¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$BGTZ¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$BGTZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$BGTZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$BGTZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$BGTZ¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$BLTZ¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$BLTZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$BLTZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$BLTZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$BLTZ¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$BGEZ¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.offset :: ProcTypes.Simm punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$BGEZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$BGEZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$BGEZ¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$BGEZ¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$MFC0¶ :: *) = { punk@1: ProcTypes.rdst :: ProcTypes.Rindx; punk@1: ProcTypes.cop0src :: ProcTypes.CP0indx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$MFC0¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$MFC0¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$MFC0¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$MFC0¶; punk@1: punk@1: struct (ProcTypes.¶Instr_$MTC0¶ :: *) = { punk@1: ProcTypes.rsrc :: ProcTypes.Rindx; punk@1: ProcTypes.cop0dst :: ProcTypes.CP0indx punk@1: }; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUndefined®¶ ProcTypes.¶Instr_$MTC0¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimDeepSeqCond®¶ ProcTypes.¶Instr_$MTC0¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶PrimMakeUninitialized®¶ ProcTypes.¶Instr_$MTC0¶; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Eq®¶ ProcTypes.¶Instr_$MTC0¶; punk@1: punk@1: ProcTypes.opFUNC :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSLL :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opRT :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSRL :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opRS :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSRA :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSLLV :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opLW :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSRLV :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opSW :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSRAV :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcADDU :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opADDIU :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSUBU :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opSLTI :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcAND :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opSLTIU :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcOR :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opANDI :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcXOR :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opORI :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcNOR :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opXORI :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSLT :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opLUI :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcSLTU :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opJ :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opJAL :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcJR :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.fcJALR :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opBEQ :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opBNE :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opBLEZ :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.opBGTZ :: ¶Prelude®¶.¶Bit®¶ 6; punk@1: punk@1: ProcTypes.rtBLTZ :: ¶Prelude®¶.¶Bit®¶ 5; punk@1: punk@1: ProcTypes.rtBGEZ :: ¶Prelude®¶.¶Bit®¶ 5; punk@1: punk@1: ProcTypes.rsMFC0 :: ¶Prelude®¶.¶Bit®¶ 5; punk@1: punk@1: ProcTypes.rsMTC0 :: ¶Prelude®¶.¶Bit®¶ 5; punk@1: punk@1: instance ProcTypes ¶Prelude®¶.¶Bits®¶ ProcTypes.Instr 32; punk@1: punk@1: instance ProcTypes Trace.Traceable ProcTypes.Instr punk@1: }