public override Decoder Instr(Opcode opcode, string format)
 {
     var mutators = new List<Mutator>();
     for (int i = 0; i < format.Length; ++i)
     {
         switch (format[i])
         {
         case 'r':
             {
                 ++i;
                 int n = Disassembler.ReadDecimal(format, ref i);
                 mutators.Add(Disassembler.Reg(n));
             }
             break;
         default:
             throw new NotImplementedException($"{format[i]}");
         }
     }
     return new ThreadedDecoder(opcode, mutators.ToArray());
 }
Beispiel #2
0
 public Enumerator(Disassembler dasm)
 {
     this.dasm  = dasm;
     this.instr = null;
 }
Beispiel #3
0
 public override TestInstruction Decode(uint wInstr, Disassembler dasm)
 {
     return(dasm.Decode(wInstr, opcode, format));
 }
Beispiel #4
0
        public override TestInstruction Decode(uint wInstr, Disassembler dasm)
        {
            var code = Bitfield.ReadFields(bitfields, wInstr);

            return(decoders[code].Decode(wInstr, dasm));
        }
Beispiel #5
0
 public abstract TestInstruction Decode(uint wInstr, Disassembler dasm);