Exemplo n.º 1
0
 private void Predicate(ArmCodeCondition cond, RtlInstruction instr)
 {
     if (cond == ArmCodeCondition.AL)
     {
         emitter.Emit(instr);
     }
     else
     {
         emitter.If(TestCond(cond), instr);
     }
 }
Exemplo n.º 2
0
 private void Predicate(ArmCodeCondition cond, RtlInstruction instr)
 {
     if (cond == ArmCodeCondition.AL)
     {
         m.Emit(instr);
     }
     else
     {
         m.BranchInMiddleOfInstruction(
             TestCond(cond).Invert(),
             Address.Ptr32((uint)(this.instr.Address + this.instr.Bytes.Length)),
             RtlClass.ConditionalTransfer);
         m.Emit(instr);
     }
 }
Exemplo n.º 3
0
 private void AddConditional(RtlInstruction rtlInstr)
 {
     if (instr.ArchitectureDetail.CodeCondition != ArmCodeCondition.AL)
     {
         m.BranchInMiddleOfInstruction(
             TestCond(instr.ArchitectureDetail.CodeCondition).Invert(),
             Address.Ptr32((uint)(instr.Address + instr.Bytes.Length)),
             RtlClass.ConditionalTransfer);
     }
     m.Emit(rtlInstr);
 }