Overview

Foreword
Step I
Step II
Step III
Observations


Sheet 1: Foreword

* marks an anomalies appeared after “nop” insertions
** marks anomalies removed by “nop” insertions
Conditions found within names are the conditions used in Pascal. Binary built code usually contains the opposite of the Pascal used condition. Example: “equal” becomes “jne”.
Inlined functions are not inserted with “nop”s, meaning that the same binary code is executed.
“Constref” and “var” usually produce the same binary code.

Sheet 2: Step I

Initial timings.







Original[ms] NOPInserted[ms]
longint__equal_(0,0): 2567 2573
longint__equal_(0,1): 2794 2808
longint__notequal_(0,0): 2699 3141
longint__notequal_(0,1): 2481 3061
longint__less_(0,0): 2820 2827
longint__less_(0,1): 2549 2558
longint__lessorequal_(0,0): 2309 2320
longint__lessorequal_(0,1): 2293 2293
longint__more_(0,0): 2819 2830
longint__more_(0,1): 2796 2807
longint__moreorequal_(0,0): 2313 2316
longint__moreorequal_(0,1): 2540 2547
longint__iszero_(0,0): 2573 2571
longint__iszero_(0,1): 2825 2805
longint__isnotzero_(0,0): 2540 2570
longint__isnotzero_(0,1): 2303 2298
longint__lessthanzero_(0,0): 2812 2828
longint__lessthanzero_(0,1): 2570 2576
longint__lessorequaltozero_(0,0): 2291 5758 *
longint__lessorequaltozero_(0,1): 2287 5762 *
longint__morethanzero_(0,0): 2828 2790
longint__morethanzero_(0,1): 2822 2822
longint__moreorequaltozero_(0,0): 2285 2284
longint__moreorequaltozero_(0,1): 2574 2563
longint_var_equal_(0,0): 6123 2542 **
longint_var_equal_(0,1): 2795 2821
longint_var_notequal_(0,0): 2821 2816
longint_var_notequal_(0,1): 6127 2597 **
longint_var_less_(0,0): 2820 2822
longint_var_less_(0,1): 6159 2613 **
longint_var_lessorequal_(0,0): 6126 2568 **
longint_var_lessorequal_(0,1): 6127 2544 **
longint_var_more_(0,0): 2825 2818
longint_var_more_(0,1): 2819 2790
longint_var_moreorequal_(0,0): 6121 2568 **
longint_var_moreorequal_(0,1): 2792 2792
longint_var_iszero_(0,0): 6154 2566 **
longint_var_iszero_(0,1): 2793 2796
longint_var_isnotzero_(0,0): 2820 2815
longint_var_isnotzero_(0,1): 6144 2573 **
longint_var_lessthanzero_(0,0): 2800 2793
longint_var_lessthanzero_(0,1): 6175 2568 **
longint_var_lessorequaltozero_(0,0): 6182 2601 **
longint_var_lessorequaltozero_(0,1): 6186 2632 **
longint_var_morethanzero_(0,0): 2879 2853
longint_var_morethanzero_(0,1): 2846 2883
longint_var_moreorequaltozero_(0,0): 6201 2601 **
longint_var_moreorequaltozero_(0,1): 2846 2882
longint_const_equal_(0,0): 2628 2608
longint_const_equal_(0,1): 2846 2880
longint_const_notequal_(0,0): 2625 2627
longint_const_notequal_(0,1): 2345 2358
longint_const_less_(0,0): 2875 2881
longint_const_less_(0,1): 2601 2604
longint_const_lessorequal_(0,0): 2373 2387
longint_const_lessorequal_(0,1): 2346 2348
longint_const_more_(0,0): 2871 2881
longint_const_more_(0,1): 2856 2860
longint_const_moreorequal_(0,0): 3009 2998
longint_const_moreorequal_(0,1): 3027 3270
longint_const_iszero_(0,0): 2597 2630
longint_const_iszero_(0,1): 2875 2883
longint_const_isnotzero_(0,0): 2602 2602
longint_const_isnotzero_(0,1): 2372 2377
longint_const_lessthanzero_(0,0): 2853 2857
longint_const_lessthanzero_(0,1): 2629 2634
longint_const_lessorequaltozero_(0,0): 2345 2351
longint_const_lessorequaltozero_(0,1): 2367 2377
longint_const_morethanzero_(0,0): 2851 2860
longint_const_morethanzero_(0,1): 2886 2883
longint_const_moreorequaltozero_(0,0): 2343 2356
longint_const_moreorequaltozero_(0,1): 2625 2629
longint_constref_equal_(0,0): 6170 2608 **
longint_constref_equal_(0,1): 2881 2882
longint_constref_notequal_(0,0): 2849 2862
longint_constref_notequal_(0,1): 6171 2629 **
longint_constref_less_(0,0): 2878 2884
longint_constref_less_(0,1): 6171 2611 **
longint_constref_lessorequal_(0,0): 6193 2634 **
longint_constref_lessorequal_(0,1): 6172 2604 **
longint_constref_more_(0,0): 2857 2890
longint_constref_more_(0,1): 2876 2859
longint_constref_moreorequal_(0,0): 6169 2633 **
longint_constref_moreorequal_(0,1): 2876 2858
longint_constref_iszero_(0,0): 6179 2630 **
longint_constref_iszero_(0,1): 2877 2864
longint_constref_isnotzero_(0,0): 2850 2883
longint_constref_isnotzero_(0,1): 6186 2631 **
longint_constref_lessthanzero_(0,0): 2875 2862
longint_constref_lessthanzero_(0,1): 6169 2632 **
longint_constref_lessorequaltozero_(0,0): 6170 2609 **
longint_constref_lessorequaltozero_(0,1): 6193 2629 **
longint_constref_morethanzero_(0,0): 2857 2862
longint_constref_morethanzero_(0,1): 2874 2889
longint_constref_moreorequaltozero_(0,0): 6175 2604 **
longint_constref_moreorequaltozero_(0,1): 2898 2903
longint__equal_inline(0,0): 1842 1848
longint__equal_inline(0,1): 1588 1626
longint__notequal_inline(0,0): 1621 1602
longint__notequal_inline(0,1): 1839 1849
longint__less_inline(0,0): 1594 1626
longint__less_inline(0,1): 1870 1850
longint__lessorequal_inline(0,0): 1842 1847
longint__lessorequal_inline(0,1): 1850 1873
longint__more_inline(0,0): 1612 1601
longint__more_inline(0,1): 1592 1603
longint__moreorequal_inline(0,0): 1842 1875
longint__moreorequal_inline(0,1): 1621 1603
longint__iszero_inline(0,0): 1843 1850
longint__iszero_inline(0,1): 1596 1626
longint__isnotzero_inline(0,0): 1619 1596
longint__isnotzero_inline(0,1): 1838 1848
longint__lessthanzero_inline(0,0): 1593 1625
longint__lessthanzero_inline(0,1): 1868 1850
longint__lessorequaltozero_inline(0,0): 1839 1874
longint__lessorequaltozero_inline(0,1): 1867 1848
longint__morethanzero_inline(0,0): 1594 1613
longint__morethanzero_inline(0,1): 1593 1623
longint__moreorequaltozero_inline(0,0): 1866 1844
longint__moreorequaltozero_inline(0,1): 1587 1599
longint_var_equal_inline(0,0): 1843 1875
longint_var_equal_inline(0,1): 1617 1604
longint_var_notequal_inline(0,0): 1592 1602
longint_var_notequal_inline(0,1): 1842 1868
longint_var_less_inline(0,0): 1618 1596
longint_var_less_inline(0,1): 1846 1840
longint_var_lessorequal_inline(0,0): 1838 1864
longint_var_lessorequal_inline(0,1): 1862 1843
longint_var_more_inline(0,0): 1593 1596
longint_var_more_inline(0,1): 1596 1619
longint_var_moreorequal_inline(0,0): 1864 1843
longint_var_moreorequal_inline(0,1): 1594 1597
longint_var_iszero_inline(0,0): 1840 1868
longint_var_iszero_inline(0,1): 1614 1589
longint_var_isnotzero_inline(0,0): 1595 1595
longint_var_isnotzero_inline(0,1): 1840 1867
longint_var_lessthanzero_inline(0,0): 1620 1595
longint_var_lessthanzero_inline(0,1): 1839 1845
longint_var_lessorequaltozero_inline(0,0): 1843 1867
longint_var_lessorequaltozero_inline(0,1): 1867 1840
longint_var_morethanzero_inline(0,0): 1600 1617
longint_var_morethanzero_inline(0,1): 1588 1592
longint_var_moreorequaltozero_inline(0,0): 1869 1850
longint_var_moreorequaltozero_inline(0,1): 1592 1620
longint_const_equal_inline(0,0): 1866 1840
longint_const_equal_inline(0,1): 1594 1598
longint_const_notequal_inline(0,0): 1592 1621
longint_const_notequal_inline(0,1): 1868 1840
longint_const_less_inline(0,0): 1587 1594
longint_const_less_inline(0,1): 1843 1866
longint_const_lessorequal_inline(0,0): 1864 1844
longint_const_lessorequal_inline(0,1): 1843 1846
longint_const_more_inline(0,0): 1595 1617
longint_const_more_inline(0,1): 1619 1593
longint_const_moreorequal_inline(0,0): 1842 1845
longint_const_moreorequal_inline(0,1): 1589 1614
longint_const_iszero_inline(0,0): 1867 1844
longint_const_iszero_inline(0,1): 1591 1594
longint_const_isnotzero_inline(0,0): 1595 1618
longint_const_isnotzero_inline(0,1): 1869 1846
longint_const_lessthanzero_inline(0,0): 1595 1598
longint_const_lessthanzero_inline(0,1): 1843 1868
longint_const_lessorequaltozero_inline(0,0): 1868 1841
longint_const_lessorequaltozero_inline(0,1): 1836 1865
longint_const_morethanzero_inline(0,0): 1595 1595
longint_const_morethanzero_inline(0,1): 1621 1600
longint_const_moreorequaltozero_inline(0,0): 1840 1865
longint_const_moreorequaltozero_inline(0,1): 1599 1600
longint_constref_equal_inline(0,0): 2370 2347
longint_constref_equal_inline(0,1): 2097 2120
longint_constref_notequal_inline(0,0): 2120 2099
longint_constref_notequal_inline(0,1): 2097 2122
longint_constref_less_inline(0,0): 2119 2094
longint_constref_less_inline(0,1): 2348 2350
longint_constref_lessorequal_inline(0,0): 2120 2121
longint_constref_lessorequal_inline(0,1): 2102 2096
longint_constref_more_inline(0,0): 2097 2126
longint_constref_more_inline(0,1): 2124 2102
longint_constref_moreorequal_inline(0,0): 2095 2120
longint_constref_moreorequal_inline(0,1): 2120 2095
longint_constref_iszero_inline(0,0): 2349 2350
longint_constref_iszero_inline(0,1): 2118 2119
longint_constref_isnotzero_inline(0,0): 2095 2097
longint_constref_isnotzero_inline(0,1): 2100 2122
longint_constref_lessthanzero_inline(0,0): 2121 2100
longint_constref_lessthanzero_inline(0,1): 2345 2371
longint_constref_lessorequaltozero_inline(0,0): 2122 2099
longint_constref_lessorequaltozero_inline(0,1): 2095 2096
longint_constref_morethanzero_inline(0,0): 2121 2120
longint_constref_morethanzero_inline(0,1): 2098 2214
longint_constref_moreorequaltozero_inline(0,0): 2094 2128
longint_constref_moreorequaltozero_inline(0,1): 2129 2095
int64__equal_(0,0): 2601 2625
int64__equal_(0,1): 2375 2349
int64__notequal_(0,0): 2600 2626
int64__notequal_(0,1): 2885 2859
int64__less_(0,0): 2345 2370
int64__less_(0,1): 2628 2604
int64__lessorequal_(0,0): 2856 2881
int64__lessorequal_(0,1): 2878 2854
int64__more_(0,0): 2545 2375
int64__more_(0,1): 2418 2522
int64__moreorequal_(0,0): 2897 2896
int64__moreorequal_(0,1): 2606 2631
int64__iszero_(0,0): 2630 2603
int64__iszero_(0,1): 2346 2349
int64__isnotzero_(0,0): 2625 2624
int64__isnotzero_(0,1): 2858 2883
int64__lessthanzero_(0,0): 2370 2347
int64__lessthanzero_(0,1): 2598 2622
int64__lessorequaltozero_(0,0): 2879 2854
int64__lessorequaltozero_(0,1): 2851 2877
int64__morethanzero_(0,0): 2371 2351
int64__morethanzero_(0,1): 2349 2371
int64__moreorequaltozero_(0,0): 2878 2854
int64__moreorequaltozero_(0,1): 2600 2625
int64_var_equal_(0,0): 6192 3114 **
int64_var_equal_(0,1): 2528 2888
int64_var_notequal_(0,0): 2625 2877
int64_var_notequal_(0,1): 6422 3105 **
int64_var_less_(0,0): 2346 2622
int64_var_less_(0,1): 6192 2852 **
int64_var_lessorequal_(0,0): 6429 3132 **
int64_var_lessorequal_(0,1): 6424 3129 **
int64_var_more_(0,0): 2366 2597
int64_var_more_(0,1): 2345 2625
int64_var_moreorequal_(0,0): 6421 3105 **
int64_var_moreorequal_(0,1): 2627 2883
int64_var_iszero_(0,0): 6169 2850 **
int64_var_iszero_(0,1): 2366 2620
int64_var_isnotzero_(0,0): 2595 2854
int64_var_isnotzero_(0,1): 6419 3125 **
int64_var_lessthanzero_(0,0): 5827 4066
int64_var_lessthanzero_(0,1): 6167 5619
int64_var_lessorequaltozero_(0,0): 6422 3128 **
int64_var_lessorequaltozero_(0,1): 6426 3100 **
int64_var_morethanzero_(0,0): 2367 2623
int64_var_morethanzero_(0,1): 2340 2593
int64_var_moreorequaltozero_(0,0): 6444 3128 **
int64_var_moreorequaltozero_(0,1): 2599 2850
int64_const_equal_(0,0): 2622 2622
int64_const_equal_(0,1): 2343 2339
int64_const_notequal_(0,0): 2623 2629
int64_const_notequal_(0,1): 2850 2871
int64_const_less_(0,0): 2370 2343
int64_const_less_(0,1): 2594 2626
int64_const_lessorequal_(0,0): 2879 2849
int64_const_lessorequal_(0,1): 2849 2873
int64_const_more_(0,0): 2547 2520
int64_const_more_(0,1): 2526 2554
int64_const_moreorequal_(0,0): 2870 2847
int64_const_moreorequal_(0,1): 2624 2628
int64_const_iszero_(0,0): 2600 2595
int64_const_iszero_(0,1): 2368 2370
int64_const_isnotzero_(0,0): 2595 2599
int64_const_isnotzero_(0,1): 2879 2878
int64_const_lessthanzero_(0,0): 2340 2342
int64_const_lessthanzero_(0,1): 2619 2620
int64_const_lessorequaltozero_(0,0): 2860 2852
int64_const_lessorequaltozero_(0,1): 2874 2875
int64_const_morethanzero_(0,0): 2345 2370
int64_const_morethanzero_(0,1): 2366 2346
int64_const_moreorequaltozero_(0,0): 2853 2875
int64_const_moreorequaltozero_(0,1): 2640 2595
int64_constref_equal_(0,0): 6172 2999 **
int64_constref_equal_(0,1): 3877 2753
int64_constref_notequal_(0,0): 2601 2875
int64_constref_notequal_(0,1): 6445 3104 **
int64_constref_less_(0,0): 2345 2624
int64_constref_less_(0,1): 6169 2874 **
int64_constref_lessorequal_(0,0): 6447 3106 **
int64_constref_lessorequal_(0,1): 6422 3126 **
int64_constref_more_(0,0): 2351 2603
int64_constref_more_(0,1): 2370 2630
int64_constref_moreorequal_(0,0): 6425 3101 **
int64_constref_moreorequal_(0,1): 2624 2902
int64_constref_iszero_(0,0): 6167 2940 **
int64_constref_iszero_(0,1): 2353 2605
int64_constref_isnotzero_(0,0): 2620 2879
int64_constref_isnotzero_(0,1): 6423 3108 **
int64_constref_lessthanzero_(0,0): 2746 2754
int64_constref_lessthanzero_(0,1): 6170 3037 **
int64_constref_lessorequaltozero_(0,0): 6423 3134 **
int64_constref_lessorequaltozero_(0,1): 6446 3133 **
int64_constref_morethanzero_(0,0): 2346 2603
int64_constref_morethanzero_(0,1): 2345 2626
int64_constref_moreorequaltozero_(0,0): 6445 3108 **
int64_constref_moreorequaltozero_(0,1): 2605 2878
int64__equal_inline(0,0): 1619 1591
int64__equal_inline(0,1): 1587 1620
int64__notequal_inline(0,0): 1591 1591
int64__notequal_inline(0,1): 1652 1591
int64__less_inline(0,0): 1603 1623
int64__less_inline(0,1): 1591 1593
int64__lessorequal_inline(0,0): 1612 1594
int64__lessorequal_inline(0,1): 1591 1625
int64__more_inline(0,0): 1597 1588
int64__more_inline(0,1): 1594 1593
int64__moreorequal_inline(0,0): 1621 1616
int64__moreorequal_inline(0,1): 1586 1602
int64__iszero_inline(0,0): 1590 1595
int64__iszero_inline(0,1): 1620 1590
int64__isnotzero_inline(0,0): 1592 1619
int64__isnotzero_inline(0,1): 1595 1595
int64__lessthanzero_inline(0,0): 1611 1596
int64__lessthanzero_inline(0,1): 1591 1620
int64__lessorequaltozero_inline(0,0): 1591 1586
int64__lessorequaltozero_inline(0,1): 1619 1596
int64__morethanzero_inline(0,0): 1592 1615
int64__morethanzero_inline(0,1): 1589 1594
int64__moreorequaltozero_inline(0,0): 1616 1597
int64__moreorequaltozero_inline(0,1): 1590 1616
int64_var_equal_inline(0,0): 1597 1590
int64_var_equal_inline(0,1): 1620 1593
int64_var_notequal_inline(0,0): 1586 1620
int64_var_notequal_inline(0,1): 1589 1594
int64_var_less_inline(0,0): 1620 1591
int64_var_less_inline(0,1): 1594 1619
int64_var_lessorequal_inline(0,0): 1593 1590
int64_var_lessorequal_inline(0,1): 1611 1593
int64_var_more_inline(0,0): 1589 1626
int64_var_more_inline(0,1): 1594 1587
int64_var_moreorequal_inline(0,0): 1595 1595
int64_var_moreorequal_inline(0,1): 1619 1622
int64_var_iszero_inline(0,0): 1586 1593
int64_var_iszero_inline(0,1): 1593 1597
int64_var_isnotzero_inline(0,0): 1617 1590
int64_var_isnotzero_inline(0,1): 1595 1615
int64_var_lessthanzero_inline(0,0): 1593 1592
int64_var_lessthanzero_inline(0,1): 1615 1594
int64_var_lessorequaltozero_inline(0,0): 1589 1621
int64_var_lessorequaltozero_inline(0,1): 1591 1589
int64_var_morethanzero_inline(0,0): 1628 1593
int64_var_morethanzero_inline(0,1): 1597 1616
int64_var_moreorequaltozero_inline(0,0): 1588 1595
int64_var_moreorequaltozero_inline(0,1): 1617 1601
int64_const_equal_inline(0,0): 1594 1612
int64_const_equal_inline(0,1): 1596 1596
int64_const_notequal_inline(0,0): 1618 1592
int64_const_notequal_inline(0,1): 1589 1626
int64_const_less_inline(0,0): 1591 1603
int64_const_less_inline(0,1): 1619 1587
int64_const_lessorequal_inline(0,0): 1595 1619
int64_const_lessorequal_inline(0,1): 1590 1594
int64_const_more_inline(0,0): 1612 1595
int64_const_more_inline(0,1): 1591 1624
int64_const_moreorequal_inline(0,0): 1590 1588
int64_const_moreorequal_inline(0,1): 1599 1597
int64_const_iszero_inline(0,0): 1637 1619
int64_const_iszero_inline(0,1): 1588 1598
int64_const_isnotzero_inline(0,0): 1597 1600
int64_const_isnotzero_inline(0,1): 1617 1590
int64_const_lessthanzero_inline(0,0): 1597 1619
int64_const_lessthanzero_inline(0,1): 1595 1592
int64_const_lessorequaltozero_inline(0,0): 1612 1593
int64_const_lessorequaltozero_inline(0,1): 1590 1625
int64_const_morethanzero_inline(0,0): 1594 1588
int64_const_morethanzero_inline(0,1): 1620 1596
int64_const_moreorequaltozero_inline(0,0): 1591 1619
int64_const_moreorequaltozero_inline(0,1): 1589 1598
int64_constref_equal_inline(0,0): 2119 2098
int64_constref_equal_inline(0,1): 2100 2120
int64_constref_notequal_inline(0,0): 2123 2096
int64_constref_notequal_inline(0,1): 2094 2121
int64_constref_less_inline(0,0): 2096 2095
int64_constref_less_inline(0,1): 2120 2125
int64_constref_lessorequal_inline(0,0): 2095 2095
int64_constref_lessorequal_inline(0,1): 2124 2096
int64_constref_more_inline(0,0): 2099 2120
int64_constref_more_inline(0,1): 2126 2100
int64_constref_moreorequal_inline(0,0): 2097 2120
int64_constref_moreorequal_inline(0,1): 2095 2098
int64_constref_iszero_inline(0,0): 2123 2120
int64_constref_iszero_inline(0,1): 2095 2104
int64_constref_isnotzero_inline(0,0): 2120 2106
int64_constref_isnotzero_inline(0,1): 2094 2120
int64_constref_lessthanzero_inline(0,0): 2097 2095
int64_constref_lessthanzero_inline(0,1): 2126 2122
int64_constref_lessorequaltozero_inline(0,0): 2096 2095
int64_constref_lessorequaltozero_inline(0,1): 2124 2099
int64_constref_morethanzero_inline(0,0): 2097 2123
int64_constref_morethanzero_inline(0,1): 2124 2096
int64_constref_moreorequaltozero_inline(0,0): 2096 2122
int64_constref_moreorequaltozero_inline(0,1): 2095 2098
Elapsed time: 1025791 875774




“Nop” inserted takes ~85% the time needed of original(not patched)

Sheet 3: Step II

Due to the fact that inlined functions are not inserted with “nop”s they have been removed from the analysis.





Original[ms] NOPInserted[ms]
longint__equal_(0,0): 2567 2573
longint__equal_(0,1): 2794 2808
longint__notequal_(0,0): 2699 3141
longint__notequal_(0,1): 2481 3061
longint__less_(0,0): 2820 2827
longint__less_(0,1): 2549 2558
longint__lessorequal_(0,0): 2309 2320
longint__lessorequal_(0,1): 2293 2293
longint__more_(0,0): 2819 2830
longint__more_(0,1): 2796 2807
longint__moreorequal_(0,0): 2313 2316
longint__moreorequal_(0,1): 2540 2547
longint__iszero_(0,0): 2573 2571
longint__iszero_(0,1): 2825 2805
longint__isnotzero_(0,0): 2540 2570
longint__isnotzero_(0,1): 2303 2298
longint__lessthanzero_(0,0): 2812 2828
longint__lessthanzero_(0,1): 2570 2576
longint__lessorequaltozero_(0,0): 2291 5758 *
longint__lessorequaltozero_(0,1): 2287 5762 *
longint__morethanzero_(0,0): 2828 2790
longint__morethanzero_(0,1): 2822 2822
longint__moreorequaltozero_(0,0): 2285 2284
longint__moreorequaltozero_(0,1): 2574 2563
longint_var_equal_(0,0): 6123 2542 **
longint_var_equal_(0,1): 2795 2821
longint_var_notequal_(0,0): 2821 2816
longint_var_notequal_(0,1): 6127 2597 **
longint_var_less_(0,0): 2820 2822
longint_var_less_(0,1): 6159 2613 **
longint_var_lessorequal_(0,0): 6126 2568 **
longint_var_lessorequal_(0,1): 6127 2544 **
longint_var_more_(0,0): 2825 2818
longint_var_more_(0,1): 2819 2790
longint_var_moreorequal_(0,0): 6121 2568 **
longint_var_moreorequal_(0,1): 2792 2792
longint_var_iszero_(0,0): 6154 2566 **
longint_var_iszero_(0,1): 2793 2796
longint_var_isnotzero_(0,0): 2820 2815
longint_var_isnotzero_(0,1): 6144 2573 **
longint_var_lessthanzero_(0,0): 2800 2793
longint_var_lessthanzero_(0,1): 6175 2568 **
longint_var_lessorequaltozero_(0,0): 6182 2601 **
longint_var_lessorequaltozero_(0,1): 6186 2632 **
longint_var_morethanzero_(0,0): 2879 2853
longint_var_morethanzero_(0,1): 2846 2883
longint_var_moreorequaltozero_(0,0): 6201 2601 **
longint_var_moreorequaltozero_(0,1): 2846 2882
longint_const_equal_(0,0): 2628 2608
longint_const_equal_(0,1): 2846 2880
longint_const_notequal_(0,0): 2625 2627
longint_const_notequal_(0,1): 2345 2358
longint_const_less_(0,0): 2875 2881
longint_const_less_(0,1): 2601 2604
longint_const_lessorequal_(0,0): 2373 2387
longint_const_lessorequal_(0,1): 2346 2348
longint_const_more_(0,0): 2871 2881
longint_const_more_(0,1): 2856 2860
longint_const_moreorequal_(0,0): 3009 2998
longint_const_moreorequal_(0,1): 3027 3270
longint_const_iszero_(0,0): 2597 2630
longint_const_iszero_(0,1): 2875 2883
longint_const_isnotzero_(0,0): 2602 2602
longint_const_isnotzero_(0,1): 2372 2377
longint_const_lessthanzero_(0,0): 2853 2857
longint_const_lessthanzero_(0,1): 2629 2634
longint_const_lessorequaltozero_(0,0): 2345 2351
longint_const_lessorequaltozero_(0,1): 2367 2377
longint_const_morethanzero_(0,0): 2851 2860
longint_const_morethanzero_(0,1): 2886 2883
longint_const_moreorequaltozero_(0,0): 2343 2356
longint_const_moreorequaltozero_(0,1): 2625 2629
longint_constref_equal_(0,0): 6170 2608 **
longint_constref_equal_(0,1): 2881 2882
longint_constref_notequal_(0,0): 2849 2862
longint_constref_notequal_(0,1): 6171 2629 **
longint_constref_less_(0,0): 2878 2884
longint_constref_less_(0,1): 6171 2611 **
longint_constref_lessorequal_(0,0): 6193 2634 **
longint_constref_lessorequal_(0,1): 6172 2604 **
longint_constref_more_(0,0): 2857 2890
longint_constref_more_(0,1): 2876 2859
longint_constref_moreorequal_(0,0): 6169 2633 **
longint_constref_moreorequal_(0,1): 2876 2858
longint_constref_iszero_(0,0): 6179 2630 **
longint_constref_iszero_(0,1): 2877 2864
longint_constref_isnotzero_(0,0): 2850 2883
longint_constref_isnotzero_(0,1): 6186 2631 **
longint_constref_lessthanzero_(0,0): 2875 2862
longint_constref_lessthanzero_(0,1): 6169 2632 **
longint_constref_lessorequaltozero_(0,0): 6170 2609 **
longint_constref_lessorequaltozero_(0,1): 6193 2629 **
longint_constref_morethanzero_(0,0): 2857 2862
longint_constref_morethanzero_(0,1): 2874 2889
longint_constref_moreorequaltozero_(0,0): 6175 2604 **
longint_constref_moreorequaltozero_(0,1): 2898 2903
int64__equal_(0,0): 2601 2625
int64__equal_(0,1): 2375 2349
int64__notequal_(0,0): 2600 2626
int64__notequal_(0,1): 2885 2859
int64__less_(0,0): 2345 2370
int64__less_(0,1): 2628 2604
int64__lessorequal_(0,0): 2856 2881
int64__lessorequal_(0,1): 2878 2854
int64__more_(0,0): 2545 2375
int64__more_(0,1): 2418 2522
int64__moreorequal_(0,0): 2897 2896
int64__moreorequal_(0,1): 2606 2631
int64__iszero_(0,0): 2630 2603
int64__iszero_(0,1): 2346 2349
int64__isnotzero_(0,0): 2625 2624
int64__isnotzero_(0,1): 2858 2883
int64__lessthanzero_(0,0): 2370 2347
int64__lessthanzero_(0,1): 2598 2622
int64__lessorequaltozero_(0,0): 2879 2854
int64__lessorequaltozero_(0,1): 2851 2877
int64__morethanzero_(0,0): 2371 2351
int64__morethanzero_(0,1): 2349 2371
int64__moreorequaltozero_(0,0): 2878 2854
int64__moreorequaltozero_(0,1): 2600 2625
int64_var_equal_(0,0): 6192 3114 **
int64_var_equal_(0,1): 2528 2888
int64_var_notequal_(0,0): 2625 2877
int64_var_notequal_(0,1): 6422 3105 **
int64_var_less_(0,0): 2346 2622
int64_var_less_(0,1): 6192 2852 **
int64_var_lessorequal_(0,0): 6429 3132 **
int64_var_lessorequal_(0,1): 6424 3129 **
int64_var_more_(0,0): 2366 2597
int64_var_more_(0,1): 2345 2625
int64_var_moreorequal_(0,0): 6421 3105 **
int64_var_moreorequal_(0,1): 2627 2883
int64_var_iszero_(0,0): 6169 2850 **
int64_var_iszero_(0,1): 2366 2620
int64_var_isnotzero_(0,0): 2595 2854
int64_var_isnotzero_(0,1): 6419 3125 **
int64_var_lessthanzero_(0,0): 5827 4066
int64_var_lessthanzero_(0,1): 6167 5619
int64_var_lessorequaltozero_(0,0): 6422 3128 **
int64_var_lessorequaltozero_(0,1): 6426 3100 **
int64_var_morethanzero_(0,0): 2367 2623
int64_var_morethanzero_(0,1): 2340 2593
int64_var_moreorequaltozero_(0,0): 6444 3128 **
int64_var_moreorequaltozero_(0,1): 2599 2850
int64_const_equal_(0,0): 2622 2622
int64_const_equal_(0,1): 2343 2339
int64_const_notequal_(0,0): 2623 2629
int64_const_notequal_(0,1): 2850 2871
int64_const_less_(0,0): 2370 2343
int64_const_less_(0,1): 2594 2626
int64_const_lessorequal_(0,0): 2879 2849
int64_const_lessorequal_(0,1): 2849 2873
int64_const_more_(0,0): 2547 2520
int64_const_more_(0,1): 2526 2554
int64_const_moreorequal_(0,0): 2870 2847
int64_const_moreorequal_(0,1): 2624 2628
int64_const_iszero_(0,0): 2600 2595
int64_const_iszero_(0,1): 2368 2370
int64_const_isnotzero_(0,0): 2595 2599
int64_const_isnotzero_(0,1): 2879 2878
int64_const_lessthanzero_(0,0): 2340 2342
int64_const_lessthanzero_(0,1): 2619 2620
int64_const_lessorequaltozero_(0,0): 2860 2852
int64_const_lessorequaltozero_(0,1): 2874 2875
int64_const_morethanzero_(0,0): 2345 2370
int64_const_morethanzero_(0,1): 2366 2346
int64_const_moreorequaltozero_(0,0): 2853 2875
int64_const_moreorequaltozero_(0,1): 2640 2595
int64_constref_equal_(0,0): 6172 2999 **
int64_constref_equal_(0,1): 3877 2753
int64_constref_notequal_(0,0): 2601 2875
int64_constref_notequal_(0,1): 6445 3104 **
int64_constref_less_(0,0): 2345 2624
int64_constref_less_(0,1): 6169 2874 **
int64_constref_lessorequal_(0,0): 6447 3106 **
int64_constref_lessorequal_(0,1): 6422 3126 **
int64_constref_more_(0,0): 2351 2603
int64_constref_more_(0,1): 2370 2630
int64_constref_moreorequal_(0,0): 6425 3101 **
int64_constref_moreorequal_(0,1): 2624 2902
int64_constref_iszero_(0,0): 6167 2940 **
int64_constref_iszero_(0,1): 2353 2605
int64_constref_isnotzero_(0,0): 2620 2879
int64_constref_isnotzero_(0,1): 6423 3108 **
int64_constref_lessthanzero_(0,0): 2746 2754
int64_constref_lessthanzero_(0,1): 6170 3037 **
int64_constref_lessorequaltozero_(0,0): 6423 3134 **
int64_constref_lessorequaltozero_(0,1): 6446 3133 **
int64_constref_morethanzero_(0,0): 2346 2603
int64_constref_morethanzero_(0,1): 2345 2626
int64_constref_moreorequaltozero_(0,0): 6445 3108 **
int64_constref_moreorequaltozero_(0,1): 2605 2878
Elapsed time: 684104 533612




“Nop” inserted takes ~78% the time needed of original(not patched)

Sheet 4: Step III

Using Fpc, “constref” and “var” produce the same binary code.
In order to remove a double influence of the same binary code, functions using “constref” have been removed.





Original[ms] NOPInserted[ms]
longint__equal_(0,0): 2567 2573
longint__equal_(0,1): 2794 2808
longint__notequal_(0,0): 2699 3141
longint__notequal_(0,1): 2481 3061
longint__less_(0,0): 2820 2827
longint__less_(0,1): 2549 2558
longint__lessorequal_(0,0): 2309 2320
longint__lessorequal_(0,1): 2293 2293
longint__more_(0,0): 2819 2830
longint__more_(0,1): 2796 2807
longint__moreorequal_(0,0): 2313 2316
longint__moreorequal_(0,1): 2540 2547
longint__iszero_(0,0): 2573 2571
longint__iszero_(0,1): 2825 2805
longint__isnotzero_(0,0): 2540 2570
longint__isnotzero_(0,1): 2303 2298
longint__lessthanzero_(0,0): 2812 2828
longint__lessthanzero_(0,1): 2570 2576
longint__lessorequaltozero_(0,0): 2291 5758 *
longint__lessorequaltozero_(0,1): 2287 5762 *
longint__morethanzero_(0,0): 2828 2790
longint__morethanzero_(0,1): 2822 2822
longint__moreorequaltozero_(0,0): 2285 2284
longint__moreorequaltozero_(0,1): 2574 2563
longint_var_equal_(0,0): 6123 2542 **
longint_var_equal_(0,1): 2795 2821
longint_var_notequal_(0,0): 2821 2816
longint_var_notequal_(0,1): 6127 2597 **
longint_var_less_(0,0): 2820 2822
longint_var_less_(0,1): 6159 2613 **
longint_var_lessorequal_(0,0): 6126 2568 **
longint_var_lessorequal_(0,1): 6127 2544 **
longint_var_more_(0,0): 2825 2818
longint_var_more_(0,1): 2819 2790
longint_var_moreorequal_(0,0): 6121 2568 **
longint_var_moreorequal_(0,1): 2792 2792
longint_var_iszero_(0,0): 6154 2566 **
longint_var_iszero_(0,1): 2793 2796
longint_var_isnotzero_(0,0): 2820 2815
longint_var_isnotzero_(0,1): 6144 2573 **
longint_var_lessthanzero_(0,0): 2800 2793
longint_var_lessthanzero_(0,1): 6175 2568 **
longint_var_lessorequaltozero_(0,0): 6182 2601 **
longint_var_lessorequaltozero_(0,1): 6186 2632 **
longint_var_morethanzero_(0,0): 2879 2853
longint_var_morethanzero_(0,1): 2846 2883
longint_var_moreorequaltozero_(0,0): 6201 2601 **
longint_var_moreorequaltozero_(0,1): 2846 2882
longint_const_equal_(0,0): 2628 2608
longint_const_equal_(0,1): 2846 2880
longint_const_notequal_(0,0): 2625 2627
longint_const_notequal_(0,1): 2345 2358
longint_const_less_(0,0): 2875 2881
longint_const_less_(0,1): 2601 2604
longint_const_lessorequal_(0,0): 2373 2387
longint_const_lessorequal_(0,1): 2346 2348
longint_const_more_(0,0): 2871 2881
longint_const_more_(0,1): 2856 2860
longint_const_moreorequal_(0,0): 3009 2998
longint_const_moreorequal_(0,1): 3027 3270
longint_const_iszero_(0,0): 2597 2630
longint_const_iszero_(0,1): 2875 2883
longint_const_isnotzero_(0,0): 2602 2602
longint_const_isnotzero_(0,1): 2372 2377
longint_const_lessthanzero_(0,0): 2853 2857
longint_const_lessthanzero_(0,1): 2629 2634
longint_const_lessorequaltozero_(0,0): 2345 2351
longint_const_lessorequaltozero_(0,1): 2367 2377
longint_const_morethanzero_(0,0): 2851 2860
longint_const_morethanzero_(0,1): 2886 2883
longint_const_moreorequaltozero_(0,0): 2343 2356
longint_const_moreorequaltozero_(0,1): 2625 2629
int64__equal_(0,0): 2601 2625
int64__equal_(0,1): 2375 2349
int64__notequal_(0,0): 2600 2626
int64__notequal_(0,1): 2885 2859
int64__less_(0,0): 2345 2370
int64__less_(0,1): 2628 2604
int64__lessorequal_(0,0): 2856 2881
int64__lessorequal_(0,1): 2878 2854
int64__more_(0,0): 2545 2375
int64__more_(0,1): 2418 2522
int64__moreorequal_(0,0): 2897 2896
int64__moreorequal_(0,1): 2606 2631
int64__iszero_(0,0): 2630 2603
int64__iszero_(0,1): 2346 2349
int64__isnotzero_(0,0): 2625 2624
int64__isnotzero_(0,1): 2858 2883
int64__lessthanzero_(0,0): 2370 2347
int64__lessthanzero_(0,1): 2598 2622
int64__lessorequaltozero_(0,0): 2879 2854
int64__lessorequaltozero_(0,1): 2851 2877
int64__morethanzero_(0,0): 2371 2351
int64__morethanzero_(0,1): 2349 2371
int64__moreorequaltozero_(0,0): 2878 2854
int64__moreorequaltozero_(0,1): 2600 2625
int64_var_equal_(0,0): 6192 3114 **
int64_var_equal_(0,1): 2528 2888
int64_var_notequal_(0,0): 2625 2877
int64_var_notequal_(0,1): 6422 3105 **
int64_var_less_(0,0): 2346 2622
int64_var_less_(0,1): 6192 2852 **
int64_var_lessorequal_(0,0): 6429 3132 **
int64_var_lessorequal_(0,1): 6424 3129 **
int64_var_more_(0,0): 2366 2597
int64_var_more_(0,1): 2345 2625
int64_var_moreorequal_(0,0): 6421 3105 **
int64_var_moreorequal_(0,1): 2627 2883
int64_var_iszero_(0,0): 6169 2850 **
int64_var_iszero_(0,1): 2366 2620
int64_var_isnotzero_(0,0): 2595 2854
int64_var_isnotzero_(0,1): 6419 3125 **
int64_var_lessthanzero_(0,0): 5827 4066
int64_var_lessthanzero_(0,1): 6167 5619
int64_var_lessorequaltozero_(0,0): 6422 3128 **
int64_var_lessorequaltozero_(0,1): 6426 3100 **
int64_var_morethanzero_(0,0): 2367 2623
int64_var_morethanzero_(0,1): 2340 2593
int64_var_moreorequaltozero_(0,0): 6444 3128 **
int64_var_moreorequaltozero_(0,1): 2599 2850
int64_const_equal_(0,0): 2622 2622
int64_const_equal_(0,1): 2343 2339
int64_const_notequal_(0,0): 2623 2629
int64_const_notequal_(0,1): 2850 2871
int64_const_less_(0,0): 2370 2343
int64_const_less_(0,1): 2594 2626
int64_const_lessorequal_(0,0): 2879 2849
int64_const_lessorequal_(0,1): 2849 2873
int64_const_more_(0,0): 2547 2520
int64_const_more_(0,1): 2526 2554
int64_const_moreorequal_(0,0): 2870 2847
int64_const_moreorequal_(0,1): 2624 2628
int64_const_iszero_(0,0): 2600 2595
int64_const_iszero_(0,1): 2368 2370
int64_const_isnotzero_(0,0): 2595 2599
int64_const_isnotzero_(0,1): 2879 2878
int64_const_lessthanzero_(0,0): 2340 2342
int64_const_lessthanzero_(0,1): 2619 2620
int64_const_lessorequaltozero_(0,0): 2860 2852
int64_const_lessorequaltozero_(0,1): 2874 2875
int64_const_morethanzero_(0,0): 2345 2370
int64_const_morethanzero_(0,1): 2366 2346
int64_const_moreorequaltozero_(0,0): 2853 2875
int64_const_moreorequaltozero_(0,1): 2640 2595
Elapsed time: 468201 398158




“Nop” inserted takes ~85% the time needed of original(not patched)

Sheet 5: Observations

A significant improvement of code execution speed has been observed following the “nop” insertions.

While the pair of “nop”s removed many anomalies, it also added one(at longint__lessorequaltozero).
However, as average, the number of anomalies removed greatly exceeded the slowdowns added.

Not only that the anomalies appear to be connected to the conditional jump type, but also a partial pattern appeared.
If an anomaly appears, it's likely to appear in two places, connected by negating the condition and switching code order.
Examples:
longint_var_equal_(0,0): 6123 ms
longint_var_equal_(0,1): 2795 ms
longint_var_notequal_(0,0): 2821 ms
longint_var_notequal_(0,1): 6127 ms
or
longint_var_lessorequal_(0,0): 6126 ms
longint_var_lessorequal_(0,1): 6127 ms
longint_var_more_(0,0): 2825 ms
longint_var_more_(0,1): 2819 ms
or
longint_var_lessthanzero_(0,0): 2800 ms
longint_var_lessthanzero_(0,1): 6175 ms
longint_var_moreorequaltozero_(0,0): 6201 ms
longint_var_moreorequaltozero_(0,1): 2846 ms
and so on.

Anomalies may appear no matter the conditional branch followed.
Examples:
longint__lessorequaltozero_(0,0): 5758 ms
longint__lessorequaltozero_(0,1): 5762 ms
or
longint_var_lessorequal_(0,0): 6126 ms
longint_var_lessorequal_(0,1): 6127 ms
or
longint_var_lessorequaltozero_(0,0): 6182 ms
longint_var_lessorequaltozero_(0,1): 6186 ms
and so on.