コード例 #1
0
        public static IEnumerable <Tile> GetTiles()
        {
            return(new[] {
                LabelTile(),
                ConstTile <long>(),
                MemAccessTile(),
                MemAccessTile <long>(),

                Stack.Call(),
                Stack.Ret(),
                Stack.Push(),
                Stack.Pop(),

                Add.RegReg(),
                Add.RegConst <long>(),
                Add.ConstReg <long>(),

                Sub.RegReg(),
                Sub.RegConst <long>(),
                Sub.ConstReg <long>(),

                Mul.RegReg(),
                Mul.RegConst <long>(),
                Mul.ConstReg <long>(),

                Div.RegReg(),
                Div.RegConst <long>(),
                Div.ConstReg <long>(),

                Mod.RegReg(),
                Mod.RegConst <long>(),
                Mod.ConstReg <long>(),

                Shl.RegConst <long>(),
                Shr.RegConst <long>(),

                BitXor.RegReg(),
                BitXor.RegConst <long>(),
                BitXor.ConstReg <long>(),
                BitAnd.RegReg(),
                BitAnd.RegConst <long>(),
                BitAnd.ConstReg <long>(),
                BitOr.RegReg(),
                BitOr.RegConst <long>(),
                BitOr.ConstReg <long>(),

                LogAnd.RegReg(),
                LogAnd.RegConst(),
                LogAnd.ConstReg(),
                LogOr.RegReg(),
                LogOr.RegConst <long>(),
                LogOr.ConstReg <long>(),

                Unop.Inc_Reg(),
                Unop.Dec_Reg(),
                Unop.Plus_Reg(),
                Unop.Minus_Reg(),
                Unop.Neg_Reg(),
                Unop.BinNot_Reg(),
                Unop.LogNot_Reg(),

                Compare.RegReg_Eq(),
                Compare.RegReg_Neq(),
                Compare.RegReg_Lt(),
                Compare.RegReg_Le(),
                Compare.RegReg_Gt(),
                Compare.RegReg_Ge(),
                Compare.RegConst_Eq <long>(),
                Compare.RegConst_Neq <long>(),
                Compare.RegConst_Lt <long>(),
                Compare.RegConst_Le <long>(),
                Compare.RegConst_Gt <long>(),
                Compare.RegConst_Ge <long>(),
                Compare.ConstReg_Eq <long>(),
                Compare.ConstReg_Neq <long>(),
                Compare.ConstReg_Lt <long>(),
                Compare.ConstReg_Le <long>(),
                Compare.ConstReg_Gt <long>(),
                Compare.ConstReg_Ge <long>(),

                Assign.Reg_Reg(),
                Assign.Reg_Const(),
                Assign.Reg_AddConst(),
                Assign.Reg_SubConst(),
                Assign.MemReg_Reg(),
                Assign.MemReg_Const(),
                Assign.MemConst_Reg(),
                Assign.MemConst_Const(),

                Jump.Unconditional_Label(),
                Jump.Unconditional_Reg(),
                Jump.Cond_RegReg_Eq(),
                Jump.Cond_RegReg_Neq(),
                Jump.Cond_RegReg_Lt(),
                Jump.Cond_RegReg_Le(),
                Jump.Cond_RegReg_Gt(),
                Jump.Cond_RegReg_Ge(),
                Jump.Cond_RegConst_Eq <long>(),
                Jump.Cond_RegConst_Neq <long>(),
                Jump.Cond_RegConst_Lt <long>(),
                Jump.Cond_RegConst_Le <long>(),
                Jump.Cond_RegConst_Gt <long>(),
                Jump.Cond_RegConst_Ge <long>(),
                Jump.Cond_ConstReg_Eq <long>(),
                Jump.Cond_ConstReg_Neq <long>(),
                Jump.Cond_ConstReg_Lt <long>(),
                Jump.Cond_ConstReg_Le <long>(),
                Jump.Cond_ConstReg_Gt <long>(),
                Jump.Cond_ConstReg_Ge <long>(),

                Advanced.EffectiveMultiplication_RegConst(),
                Advanced.EffectiveMultiplication_ConstReg(),
                Advanced.EffectiveAddition_RegReg(),
                Advanced.EffectiveAddition_RegConst <long>(),
                Advanced.EffectiveAddition_ConstReg <long>(),
                Advanced.EffectiveAddition_ConstRegReg1 <long>(),
                Advanced.EffectiveAddition_ConstRegReg2 <long>(),
                Advanced.EffectiveAddition_RegConstReg1 <long>(),
                Advanced.EffectiveAddition_RegConstReg2 <long>(),
                Advanced.EffectiveAddition_RegRegConst1 <long>(),
                Advanced.EffectiveAddition_RegRegConst2 <long>()
            });
        }