private void RewriteMov()
{
if (Dst.Type == ArmInstructionOperandType.Register && Dst.RegisterValue.Value == ArmRegister.PC)
{
ric.Class = RtlClass.Transfer;
if (Src1.Type == ArmInstructionOperandType.Register && Src1.RegisterValue.Value == ArmRegister.LR)
{
AddConditional(new RtlReturn(0, 0, RtlClass.Transfer));
}
else
{
AddConditional(new RtlGoto(Operand(Src1), RtlClass.Transfer));
}
return;
}
var opDst = Operand(Dst);
var opSrc = Operand(Src1);
ConditionalAssign(opDst, opSrc);
}