Beispiel #1
0
        public static string ToString(Ot2 ot2)
        {
            StringBuilder sb = new StringBuilder();

            foreach (Ot2 value in Enum.GetValues(ot2.GetType()))
            {
                if (ot2.HasFlag(value))
                {
                    sb.Append(value.ToString() + ", ");
                }
            }
            if (sb.Length > 2)
            {
                sb.Length -= 2;
            }
            return(sb.ToString());
        }
        public static (Ot1 operand1, Ot1 operand2) SplitOt(Ot2 optup)
        {
            switch (optup)
            {
            case Ot2.reg_reg: return(Ot1.reg, Ot1.reg);

            case Ot2.reg_mem: return(Ot1.reg, Ot1.mem);

            case Ot2.reg_imm: return(Ot1.reg, Ot1.imm);

            case Ot2.reg_UNKNOWN: return(Ot1.reg, Ot1.UNKNOWN);

            case Ot2.mem_reg: return(Ot1.mem, Ot1.reg);

            case Ot2.mem_mem: return(Ot1.mem, Ot1.mem);

            case Ot2.mem_imm: return(Ot1.mem, Ot1.imm);

            case Ot2.mem_UNKNOWN: return(Ot1.mem, Ot1.UNKNOWN);

            case Ot2.imm_reg: return(Ot1.imm, Ot1.reg);

            case Ot2.imm_mem: return(Ot1.imm, Ot1.mem);

            case Ot2.imm_imm: return(Ot1.imm, Ot1.imm);

            case Ot2.imm_UNKNOWN: return(Ot1.imm, Ot1.UNKNOWN);

            case Ot2.UNKNOWN_reg: return(Ot1.UNKNOWN, Ot1.reg);

            case Ot2.UNKNOWN_mem: return(Ot1.UNKNOWN, Ot1.mem);

            case Ot2.UNKNOWN_imm: return(Ot1.UNKNOWN, Ot1.imm);

            case Ot2.UNKNOWN_UNKNOWN:
            default:
                return(Ot1.UNKNOWN, Ot1.UNKNOWN);
            }
        }
Beispiel #3
0
        public static Tuple <Ot, Ot> splitOt(Ot2 operandTuple)
        {
            switch (operandTuple)
            {
            case Ot2.reg_reg: return(new Tuple <Ot, Ot>(Ot.reg, Ot.reg));

            case Ot2.reg_mem: return(new Tuple <Ot, Ot>(Ot.reg, Ot.mem));

            case Ot2.reg_imm: return(new Tuple <Ot, Ot>(Ot.reg, Ot.imm));

            case Ot2.reg_UNKNOWN: return(new Tuple <Ot, Ot>(Ot.reg, Ot.UNKNOWN));

            case Ot2.mem_reg: return(new Tuple <Ot, Ot>(Ot.mem, Ot.reg));

            case Ot2.mem_mem: return(new Tuple <Ot, Ot>(Ot.mem, Ot.mem));

            case Ot2.mem_imm: return(new Tuple <Ot, Ot>(Ot.mem, Ot.imm));

            case Ot2.mem_UNKNOWN: return(new Tuple <Ot, Ot>(Ot.mem, Ot.UNKNOWN));

            case Ot2.imm_reg: return(new Tuple <Ot, Ot>(Ot.imm, Ot.reg));

            case Ot2.imm_mem: return(new Tuple <Ot, Ot>(Ot.imm, Ot.mem));

            case Ot2.imm_imm: return(new Tuple <Ot, Ot>(Ot.imm, Ot.imm));

            case Ot2.imm_UNKNOWN: return(new Tuple <Ot, Ot>(Ot.imm, Ot.UNKNOWN));

            case Ot2.UNKNOWN_reg: return(new Tuple <Ot, Ot>(Ot.UNKNOWN, Ot.reg));

            case Ot2.UNKNOWN_mem: return(new Tuple <Ot, Ot>(Ot.UNKNOWN, Ot.mem));

            case Ot2.UNKNOWN_imm: return(new Tuple <Ot, Ot>(Ot.UNKNOWN, Ot.imm));

            case Ot2.UNKNOWN_UNKNOWN:
            default:
                return(new Tuple <Ot, Ot>(Ot.UNKNOWN, Ot.UNKNOWN));
            }
        }