public GetFlagGroup ( string name ) : FlagGroupStorage | ||
name | string | |
Résultat | FlagGroupStorage |
private void RewriteJr() { rtlc.Class = RtlClass.Transfer; var op = dasm.Current.Op1; var cop = op as ConditionOperand; if (cop != null) { op = dasm.Current.Op2; } var target = (AddressOperand)op; if (cop != null) { ConditionCode cc; FlagM cr; switch (cop.Code) { case CondCode.c: cc = ConditionCode.ULT; cr = FlagM.CF; break; case CondCode.nz: cc = ConditionCode.NE; cr = FlagM.ZF; break; case CondCode.nc: cc = ConditionCode.UGE; cr = FlagM.CF; break; case CondCode.z: cc = ConditionCode.EQ; cr = FlagM.ZF; break; default: throw new NotImplementedException(); } emitter.Branch( emitter.Test( cc, frame.EnsureFlagGroup(arch.GetFlagGroup((uint)cr))), target.Address, RtlClass.ConditionalTransfer); } else { emitter.Goto(target.Address); } }
public Identifier FlagGroup(FlagM flags) { return(binder.EnsureFlagGroup(arch.GetFlagGroup(Registers.f, (uint)flags))); }