Exemple #1
0
        private static GenerateInstructionFpu[] SetupTableFpu()
        {
            GenerateInstructionFpu[] instrs = new GenerateInstructionFpu[64];

            // Populate table
            GenerateInstructionFpu unk = new GenerateInstructionFpu(UnknownFpu);

            for (int n = 0; n < instrs.Length; n++)
            {
                instrs[n] = unk;
            }

            instrs[0]  = new GenerateInstructionFpu(Arithmetic.ADD);
            instrs[1]  = new GenerateInstructionFpu(Arithmetic.SUB);
            instrs[2]  = new GenerateInstructionFpu(Arithmetic.MUL);
            instrs[3]  = new GenerateInstructionFpu(Arithmetic.DIV);
            instrs[4]  = new GenerateInstructionFpu(Arithmetic.SQRT);
            instrs[5]  = new GenerateInstructionFpu(Arithmetic.ABS);
            instrs[6]  = new GenerateInstructionFpu(Arithmetic.MOV);
            instrs[7]  = new GenerateInstructionFpu(Arithmetic.NEG);
            instrs[8]  = new GenerateInstructionFpu(Arithmetic.ROUNDL);
            instrs[9]  = new GenerateInstructionFpu(Arithmetic.TRUNCL);
            instrs[10] = new GenerateInstructionFpu(Arithmetic.CEILL);
            instrs[11] = new GenerateInstructionFpu(Arithmetic.FLOORL);
            instrs[12] = new GenerateInstructionFpu(Arithmetic.ROUNDW);
            instrs[13] = new GenerateInstructionFpu(Arithmetic.TRUNCW);
            instrs[14] = new GenerateInstructionFpu(Arithmetic.CEILW);
            instrs[15] = new GenerateInstructionFpu(Arithmetic.FLOORW);
            instrs[32] = new GenerateInstructionFpu(Arithmetic.CVTS);
            instrs[33] = new GenerateInstructionFpu(Arithmetic.CVTD);
            instrs[36] = new GenerateInstructionFpu(Arithmetic.CVTW);
            instrs[37] = new GenerateInstructionFpu(Arithmetic.CVTL);

            for (int n = 48; n <= 63; n++)
            {
                instrs[n] = new GenerateInstructionFpu(Conditional.Compare);
            }

            return(instrs);
        }
        private static GenerateInstructionFpu[] SetupTableFpu()
        {
            GenerateInstructionFpu[] instrs = new GenerateInstructionFpu[ 64 ];

            // Populate table
            GenerateInstructionFpu unk = new GenerateInstructionFpu( UnknownFpu );
            for( int n = 0; n < instrs.Length; n++ )
                instrs[ n ] = unk;

            instrs[ 0 ] = new GenerateInstructionFpu( Arithmetic.ADD );
            instrs[ 1 ] = new GenerateInstructionFpu( Arithmetic.SUB );
            instrs[ 2 ] = new GenerateInstructionFpu( Arithmetic.MUL );
            instrs[ 3 ] = new GenerateInstructionFpu( Arithmetic.DIV );
            instrs[ 4 ] = new GenerateInstructionFpu( Arithmetic.SQRT );
            instrs[ 5 ] = new GenerateInstructionFpu( Arithmetic.ABS );
            instrs[ 6 ] = new GenerateInstructionFpu( Arithmetic.MOV );
            instrs[ 7 ] = new GenerateInstructionFpu( Arithmetic.NEG );
            instrs[ 8 ] = new GenerateInstructionFpu( Arithmetic.ROUNDL );
            instrs[ 9 ] = new GenerateInstructionFpu( Arithmetic.TRUNCL );
            instrs[ 10 ] = new GenerateInstructionFpu( Arithmetic.CEILL );
            instrs[ 11 ] = new GenerateInstructionFpu( Arithmetic.FLOORL );
            instrs[ 12 ] = new GenerateInstructionFpu( Arithmetic.ROUNDW );
            instrs[ 13 ] = new GenerateInstructionFpu( Arithmetic.TRUNCW );
            instrs[ 14 ] = new GenerateInstructionFpu( Arithmetic.CEILW );
            instrs[ 15 ] = new GenerateInstructionFpu( Arithmetic.FLOORW );
            instrs[ 32 ] = new GenerateInstructionFpu( Arithmetic.CVTS );
            instrs[ 33 ] = new GenerateInstructionFpu( Arithmetic.CVTD );
            instrs[ 36 ] = new GenerateInstructionFpu( Arithmetic.CVTW );
            instrs[ 37 ] = new GenerateInstructionFpu( Arithmetic.CVTL );

            for( int n = 48; n <= 63; n++ )
                instrs[ n ] = new GenerateInstructionFpu( Conditional.Compare );

            return instrs;
        }