private void Predicate(ArmCodeCondition cond, RtlInstruction instr) { if (cond == ArmCodeCondition.AL) { emitter.Emit(instr); } else { emitter.If(TestCond(cond), instr); } }
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); } }
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); }