Exemple #1
0
        private Func <long> SelectTest(byte[] buf)
        {
            var         rewriter = chkRewriter.Checked;
            Func <long> test;

            if (rdbRealDasm.Checked)
            {
                //var arch = new Reko.Arch.Arm.Arm32Architecture("arm32");
                var arch = new Reko.Arch.X86.X86ArchitectureFlat32("x86-protected-32");

                if (rewriter)
                {
                    test = () => PerformanceTest_A32Rewriter(arch, buf);
                }
                else
                {
                    test = () => PerformanceTest_A32Dasm(arch, buf);
                }
            }
            else
            {
                DecoderBuilder m;
                if (rdbInterpretedDasm.Checked)
                {
                    m = new Decoders.FormatDecoderBuilder();
                }
                else
                {
                    m = new Decoders.ThreadedDecoderBuilder();
                }
                var root = m.Mask(29, 3,
                                  m.Instr(Opcode.add, "r8,r4,r0"),
                                  m.Instr(Opcode.sub, "r8,r4,r0"),
                                  m.Instr(Opcode.mul, "r8,r4,r0"),
                                  m.Instr(Opcode.div, "r8,r4,r0"),

                                  m.Instr(Opcode.and, "r8,r4,r0"),
                                  m.Instr(Opcode.or, "r8,r4,r0"),
                                  m.Instr(Opcode.not, "r8,r4"),
                                  m.Instr(Opcode.xor, "r8,r4,r0"));

                if (rewriter)
                {
                    test = () => PerformanceTest_SimulatedRewriter(buf, root);
                }
                else
                {
                    test = () => PerformanceTest_Simulated(buf, root);
                }
            }
            return(test);
        }
Exemple #2
0
        private Func <long> SelectTest(byte[] buf)
        {
            var         rewriter = chkRewriter.Checked;
            Func <long> test;

            if (rdbRealDasm.Checked)
            {
                if (rewriter)
                {
                    test = () => PerformanceTest_A32Rewriter(buf);
                }
                else
                {
                    test = () => PerformanceTest_A32Dasm(buf);
                }
            }
            else
            {
                DecoderBuilder m;
                if (rdbInterpretedDasm.Checked)
                {
                    m = new Decoders.FormatDecoderBuilder();
                }
                else
                {
                    m = new Decoders.ThreadedDecoderBuilder();
                }
                var root = m.Mask(29, 3,
                                  m.Instr(Opcode.add, "r8,r4,r0"),
                                  m.Instr(Opcode.sub, "r8,r4,r0"),
                                  m.Instr(Opcode.mul, "r8,r4,r0"),
                                  m.Instr(Opcode.div, "r8,r4,r0"),

                                  m.Instr(Opcode.and, "r8,r4,r0"),
                                  m.Instr(Opcode.or, "r8,r4,r0"),
                                  m.Instr(Opcode.not, "r8,r4"),
                                  m.Instr(Opcode.xor, "r8,r4,r0"));

                if (rewriter)
                {
                    test = () => PerformanceTest_SimulatedRewriter(buf, root);
                }
                else
                {
                    test = () => PerformanceTest_Simulated(buf, root);
                }
            }
            return(test);
        }