コード例 #1
0
            public override PowerPcInstruction Decode(PowerPcDisassembler dasm, uint wInstr)
            {
                bool link     = (wInstr & 1) != 0;
                var  mnemonic = link ? this.opLink : this.mnemonic;
                var  iclass   = link ? InstrClass.Transfer | InstrClass.Call : InstrClass.Transfer;

                foreach (var m in mutators)
                {
                    if (!m(wInstr, dasm))
                    {
                        return(dasm.CreateInvalidInstruction());
                    }
                }
                return(dasm.MakeInstruction(iclass, mnemonic));
            }
コード例 #2
0
 public static PowerPcInstruction DecodeOperands(
     uint wInstr,
     PowerPcDisassembler dasm,
     InstrClass iclass,
     Mnemonic mnemonic,
     Mutator <PowerPcDisassembler>[] mutators)
 {
     foreach (var m in mutators)
     {
         if (!m(wInstr, dasm))
         {
             return(dasm.CreateInvalidInstruction());
         }
     }
     return(dasm.MakeInstruction(iclass, mnemonic));
 }
コード例 #3
0
 public static PowerPcInstruction DecodeOperands(
     uint wInstr,
     PowerPcDisassembler dasm,
     InstrClass iclass,
     Opcode opcode,
     Mutator <PowerPcDisassembler>[] mutators)
 {
     foreach (var m in mutators)
     {
         if (!m(wInstr, dasm))
         {
             return(new PowerPcInstruction(Opcode.illegal)
             {
                 iclass = InstrClass.Invalid
             });
         }
     }
     return(dasm.MakeInstruction(iclass, opcode));
 }
コード例 #4
0
            public override PowerPcInstruction Decode(PowerPcDisassembler dasm, uint wInstr)
            {
                bool link   = (wInstr & 1) != 0;
                var  opcode = link ? this.opLink : this.opcode;
                var  iclass = link ? InstrClass.Transfer | InstrClass.Call : InstrClass.Transfer;

                foreach (var m in mutators)
                {
                    if (!m(wInstr, dasm))
                    {
                        return new PowerPcInstruction(Opcode.illegal)
                               {
                                   iclass = InstrClass.Invalid
                               }
                    }
                    ;
                }
                return(dasm.MakeInstruction(iclass, opcode));
            }
        }