Exemplo n.º 1
0
        private void CV(Identifier dst)
        {
            var cv = binder.EnsureFlagGroup(arch.GetFlagGroup(Registers.sr, (uint)(FlagM.CY | FlagM.OV)));

            m.Assign(cv, m.Cond(dst));
        }
Exemplo n.º 2
0
 private void EmitCond(Expression e, Identifier grf)
 {
     m.Assign(grf, m.Cond(e));
 }
Exemplo n.º 3
0
        private void NZV_(Expression e)
        {
            var grf = arch.GetFlagGroup(Registers.ccr, (uint)(FlagM.NF | FlagM.ZF | FlagM.VF));

            m.Assign(binder.EnsureFlagGroup(grf), m.Cond(e));
        }
Exemplo n.º 4
0
 private void NZV(Expression e)
 {
     m.Assign(binder.EnsureFlagGroup(Registers.NZV), m.Cond(e));
 }
Exemplo n.º 5
0
 private void EmitCond(FlagGroupStorage grf, Expression e)
 {
     m.Assign(binder.EnsureFlagGroup(grf), m.Cond(e));
 }
Exemplo n.º 6
0
        private void Copy(RegisterStorage regDst, RegisterStorage regSrc)
        {
            var dst = frame.EnsureRegister(regDst);
            var src = frame.EnsureRegister(regSrc);

            emitter.Assign(dst, src);
            emitter.Assign(
                frame.EnsureFlagGroup(
                    (uint)(FlagM.NF | FlagM.ZF),
                    "NZ",
                    PrimitiveType.Byte),
                emitter.Cond(dst));
        }
Exemplo n.º 7
0
 public HExpr Cond(HExpr a)
 {
     return(MapToHandle(m.Cond(GetExpression(a))));
 }
Exemplo n.º 8
0
        private void AllFlags(Expression dst)
        {
            var grf = FlagGroup(FlagM.NZVC);

            emitter.Assign(grf, emitter.Cond(dst));
        }
Exemplo n.º 9
0
        private void C(Expression e)
        {
            var carry = binder.EnsureFlagGroup(Registers.C);

            m.Assign(carry, m.Cond(e));
        }
Exemplo n.º 10
0
 private void EmitCond(FlagGroupStorage grf, Expression e) => EmitCc(grf, m.Cond(e));
Exemplo n.º 11
0
        private void NZV(Expression e)
        {
            var nzvc = arch.GetFlagGroup(Registers.CC, (uint)(FlagM.N | FlagM.Z | FlagM.V));

            m.Assign(binder.EnsureFlagGroup(nzvc), m.Cond(e));
        }
Exemplo n.º 12
0
 private void NZV0(Expression e)
 {
     m.Assign(binder.EnsureFlagGroup(Registers.NZV), m.Cond(e));
     m.Assign(binder.EnsureFlagGroup(Registers.C), Constant.False());
 }
Exemplo n.º 13
0
        private void CV(Identifier dst)
        {
            var cv = binder.EnsureFlagGroup(Registers.CV);

            m.Assign(cv, m.Cond(dst));
        }
Exemplo n.º 14
0
 private void MaybeUpdateFlags(Expression opDst)
 {
     if (instr.ArchitectureDetail.UpdateFlags)
     {
         m.Assign(frame.EnsureFlagGroup(A32Registers.cpsr, 0x1111, "NZCV", PrimitiveType.Byte), m.Cond(opDst));
     }
 }
Exemplo n.º 15
0
        private void CNZ(Expression e)
        {
            var cnz = binder.EnsureFlagGroup(arch.GetFlagGroup(arch.st, (uint)FlagM.CNZ));

            m.Assign(cnz, m.Cond(e));
        }
Exemplo n.º 16
0
        private void Copy(RegisterStorage regDst, RegisterStorage regSrc)
        {
            var dst = binder.EnsureRegister(regDst);
            var src = binder.EnsureRegister(regSrc);

            m.Assign(dst, src);
            m.Assign(
                binder.EnsureFlagGroup(
                    Registers.p,
                    (uint)(FlagM.NF | FlagM.ZF),
                    "NZ",
                    PrimitiveType.Byte),
                m.Cond(dst));
        }
Exemplo n.º 17
0
        private void EmitFlags(Expression e, FlagGroupStorage mod)
        {
            var grf = binder.EnsureFlagGroup(mod);

            m.Assign(grf, m.Cond(e));
        }
Exemplo n.º 18
0
 private void EmitCc(Expression dst)
 {
     emitter.Assign(
         frame.EnsureFlagGroup(0xF, "NZVC", PrimitiveType.Byte),
         emitter.Cond(dst));
 }