Annotation of gforth/peeprules.vmg, revision 1.15

1.14      anton       1: \ Gforth superinstructions and stack caching replicas
                      2: 
                      3: \ Copyright (C) 2003 Free Software Foundation, Inc.
                      4: 
                      5: \ This file is part of Gforth.
                      6: 
                      7: \ Gforth is free software; you can redistribute it and/or
                      8: \ modify it under the terms of the GNU General Public License
                      9: \ as published by the Free Software Foundation; either version 2
                     10: \ of the License, or (at your option) any later version.
                     11: 
                     12: \ This program is distributed in the hope that it will be useful,
                     13: \ but WITHOUT ANY WARRANTY; without even the implied warranty of
                     14: \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     15: \ GNU General Public License for more details.
                     16: 
                     17: \ You should have received a copy of the GNU General Public License
                     18: \ along with this program; if not, write to the Free Software
                     19: \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
                     20: 
1.8       anton      21: \ taken from David Gregg's EuroForth 2001 paper; omitted some sequences
1.12      anton      22: \ eliminated for gforth-native:
                     23: \ 1) sequences containing call
                     24: \ 2) sequences with immediate arguments not in the first position
1.15    ! anton      25: 
        !            26: \ no new prim-nums for supers and state-replicas
        !            27: \E ' noop is output-c-prim-num
        !            28: 
1.7       anton      29: super1 = lit +
1.12      anton      30: \ super2 = lit call
1.7       anton      31: super3 = lit @
1.12      anton      32: \ super4 = lit @ call
                     33: \ super5 = @ call
1.8       anton      34: super6 = lit !
1.12      anton      35: \ super7 = lit lit
                     36: \ super8 = dup lit
                     37: \ super9 = ! lit
                     38: \ super10 = lit ! lit
1.8       anton      39: super11 = ! ;s
                     40: super12 = lit + @
1.12      anton      41: \ super13 = 0= ?branch
                     42: \ super14 = dup call
1.8       anton      43: super15 = useraddr @
                     44: super16 = + @
1.12      anton      45: \ super17 = lit @ ?branch
1.8       anton      46: super18 = lit ! ;s
                     47: super19 = lit @ and
1.13      anton      48: \ super20 = = ?branch
1.12      anton      49: \ super21 = lit lit !
                     50: \ super22 = @ ?branch
1.8       anton      51: super23 = useraddr !
1.12      anton      52: \ super24 = dup ?branch
1.8       anton      53: super25 = @ ;s
                     54: super26 = lit @ +
                     55: super27 = dup @
1.9       anton      56: 
1.11      anton      57: \F 0 [if]
1.9       anton      58: 
1.15    ! anton      59: \ \E prim-states ;s                   \ 2950159
        !            60: \E prim-states lit                  \ 2802835
        !            61: \ \E prim-states call                 \ 2558373
        !            62: \E prim-states @                    \ 2244351
        !            63: \E branch-states ?branch              \ 1134432
        !            64: \E prim-states lit@                 \ 1051813
        !            65: \E prim-states swap                 \ 737988
        !            66: \  \E S0 S2 state-prim swap
        !            67: \  \E S1 S2 state-prim swap
        !            68: \  \E S2 S3 state-prim swap
        !            69: \  \E S3 S2 state-prim swap
        !            70: \E prim-states c@                   \ 651406
        !            71: \E prim-states =                    \ 590006
        !            72: \E prim-states 0=                   \ 584487
        !            73: \E prim-states dup                  \ 566855
        !            74: \E S0 S1 state-prim dup
        !            75: \E prim-states +                    \ 566003
        !            76: \E prim-states i                    \ 502908
        !            77: \E prim-states +!                   \ 448925
        !            78: \ \E prim-states branch               \ 409561
        !            79: \ \E prim-states (loop)               \ 379646
        !            80: \ \E prim-states lp!                  \ 326743
        !            81: \E prim-states and                  \ 309427
        !            82: \E prim-states useraddr             \ 303254
        !            83: \E prim-states over                 \ 283556
        !            84: \E S0 S1 state-prim over
        !            85: \  \E S1 S2 state-prim over
        !            86: \  \E S2 S1 state-prim over
        !            87: \  \E S3 S2 state-prim over
        !            88: \E prim-states negate               \ 257417
        !            89: \E prim-states cells                \ 254644
        !            90: \E prim-states rot                  \ 220273
        !            91: \  \E S3 S1 state-prim rot
        !            92: \  \E S2 S3 state-prim rot
        !            93: \  \E S1 S3 state-prim rot
        !            94: \  \E S0 S3 state-prim rot
        !            95: \E prim-states !                    \ 218672
        !            96: \E prim-states 2dup                 \ 211315
        !            97: \E S0 S1 state-prim 2dup
        !            98: \  \E S0 S2 state-prim 2dup
        !            99: \  \E S1 S3 state-prim 2dup
        !           100: \  \E S2 S2 state-prim 2dup
        !           101: \  \E S3 S1 state-prim 2dup
        !           102: \ \E branch-states lit-perform          \ 188331
        !           103: \E prim-states <>                   \ 179502
        !           104: \E prim-states c!                   \ 179332
        !           105: \E prim-states lit+                 \ 179156
        !           106: \E prim-states drop                 \ 173995
        !           107: \E S0 S0 state-prim drop
        !           108: \E prim-states lshift               \ 164671
        !           109: \E prim-states /mod                 \ 164670
        !           110: \E prim-states >r                   \ 145247
        !           111: \E prim-states r>                   \ 133792
        !           112: \ \E branch-states does-exec            \ 120944
        !           113: \E prim-states cell+                \ 116183
        !           114: \E prim-states lp+!#                \ 106697 \ --
        !           115: \E prim-states -                    \ 106245
        !           116: \E prim-states unloop               \ 98938 \ --
        !           117: \E prim-states lp+                  \ 87190 \ --
        !           118: \E prim-states >=                   \ 80994
        !           119: \E prim-states tuck                 \ 78696
        !           120: \ \E S2 S2 state-prim tuck
        !           121: \E prim-states /string              \ 78595
        !           122: \E prim-states char+                \ 77542
        !           123: \ \E prim-states ?dup                 \ 76850
        !           124: \E prim-states @local0              \ 75322
        !           125: \E prim-states min                  \ 75264
        !           126: \ \E prim-states compare              \ 65603
        !           127: \E branch-states (u+do)               \ 63823
        !           128: \ \E prim-states (read-line)          \ 63823
        !           129: \E prim-states 2>r                  \ 62646
        !           130: \E prim-states 2r>                  \ 62644
        !           131: \E prim-states 2r@                  \ 61338
        !           132: \E prim-states 2@                   \ 61067
        !           133: \E prim-states nip                  \ 54961
        !           134: \E S1 S1 state-prim nip
        !           135: \E S0 S1 state-prim nip
        !           136: \E prim-states within               \ 51075
        !           137: \E prim-states 1-                   \ 47441
        !           138: \E branch-states execute              \ 46674
        !           139: \E prim-states lp-                  \ 45385
        !           140: \E branch-states perform              \ 38756
        !           141: \E prim-states xor                  \ 35599
        !           142: \E prim-states @local#              \ 34586
        !           143: \ \E prim-states pick                 \ 32015
        !           144: \E prim-states u>                   \ 29373
        !           145: \E prim-states -rot                 \ 26211
        !           146: \  \E S3 S2 state-prim -rot
        !           147: \  \E S1 S3 state-prim -rot
        !           148: \E prim-states 2drop                \ 25418
        !           149: \E S0 S0 state-prim 2drop
        !           150: \E S1 S0 state-prim 2drop
        !           151: \ \E prim-states (tablelfind)         \ 22243
        !           152: \E prim-states or                   \ 21587
        !           153: \E prim-states @local2              \ 20859
        !           154: \E branch-states (+loop)              \ 20006
        !           155: \E prim-states 1+                   \ 17944
        !           156: \E prim-states rdrop                \ 17902
        !           157: \E branch-states (?do)                \ 17348
        !           158: \E prim-states max                  \ 16948
        !           159: \E prim-states 2*                   \ 15606
        !           160: \ \E prim-states filename-match       \ 15003
        !           161: \ \E prim-states (listlfind)          \ 13074
        !           162: \ \E prim-states sp@                  \ 12741
        !           163: \ \E prim-states fp@                  \ 12384
        !           164: \ \E prim-states um/mod               \ 12288
        !           165: \E prim-states 2!                   \ 11904
        !           166: \ \E prim-states fill                 \ 10781
        !           167: \ \E prim-states (parse-white)        \ 10624
        !           168: \E branch-states (do)                 \ 10516
        !           169: \ \E prim-states (hashkey1)           \ 10239
        !           170: \E prim-states u<                   \ 9602
        !           171: \ \E prim-states write-file           \ 8973
        !           172: \E prim-states count                \ 8873
        !           173: \ \E prim-states rp@                  \ 8410
        !           174: \E prim-states 0<                   \ 8380
        !           175: \E prim-states <                    \ 7741
        !           176: \E prim-states @local1              \ 7458
        !           177: \ \E prim-states move                 \ 7050
        !           178: \E prim-states u>=                  \ 6138
        !           179: \E branch-states (+do)                \ 5863
        !           180: \ \E prim-states va-return-double     \ 5517
        !           181: \E prim-states um*                  \ 5342
        !           182: \E prim-states toupper              \ 3517
        !           183: \ \E prim-states f@local1             \ 2907
        !           184: \ \E prim-states rp!                  \ 2859
        !           185: \ \E prim-states ?dup-?branch         \ 2829
        !           186: \E prim-states d+                   \ 2671
        !           187: \ \E prim-states ftuck                \ 2636
        !           188: \ \E prim-states read-file            \ 2623
        !           189: \ \E prim-states ms                   \ 2454
        !           190: \ \E prim-states (s+loop)             \ 2429
        !           191: \ \E prim-states allocate             \ 1869
        !           192: \E prim-states *                    \ 1520
        !           193: \E prim-states 0<>                  \ 925
        !           194: \ \E prim-states noop                 \ 715
        !           195: \E prim-states aligned              \ 714
        !           196: \E prim-states u<=                  \ 684
        !           197: \E prim-states i'                   \ 684
        !           198: \E prim-states >                    \ 411
        !           199: \ \E prim-states (hashlfind)          \ 397
        !           200: \E prim-states 2swap                \ 336
        !           201: \  \E S0 S3 state-prim 2swap
        !           202: \  \E S1 S3 state-prim 2swap
        !           203: \E prim-states laddr#               \ 335
        !           204: \ \E prim-states faxpy                \ 286
        !           205: \ \E prim-states (next)               \ 272
        !           206: \ \E prim-states (-loop)-lp+!#        \ 248
        !           207: \E prim-states <=                   \ 199
        !           208: \E prim-states invert               \ 170
        !           209: \E branch-states (-do)                \ 169
        !           210: \E prim-states 2over                \ 165
        !           211: \  \E S0 S2 state-prim 2over
        !           212: \  \E S1 S3 state-prim 2over
        !           213: \E prim-states under+               \ 154
        !           214: \E prim-states dnegate              \ 128
        !           215: \E prim-states u<>                  \ 128
        !           216: \E prim-states 0>                   \ 122
        !           217: \ \E prim-states (loop)-lp+!#         \ 118
        !           218: \E prim-states j                    \ 117
        !           219: \E prim-states float+               \ 78
        !           220: \ \E prim-states (for)                \ 68
        !           221: \E prim-states 2rdrop               \ 60 \ --
        !           222: \ \E prim-states f!                   \ 14
        !           223: \E prim-states >l                   \ 14
        !           224: \ \E prim-states close-file           \ 5
        !           225: \ \E prim-states call-c               \ 4
        !           226: \ \E prim-states reposition-file      \ 3
        !           227: \E prim-states /                    \ 3
        !           228: \ \E prim-states resize-file          \ 2
        !           229: \ \E prim-states free                 \ 2
        !           230: \E prim-states 2/                   \ 2
        !           231: \ \E prim-states up!                  \ 1
        !           232: \ \E prim-states stdin                \ 1
        !           233: \ \E prim-states key?-file            \ 1
        !           234: \ \E prim-states flush-icache         \ 1
        !           235: \ \E prim-states cmove                \ 1
        !           236: \ \E prim-states (system)             \ 1
1.9       anton     237: 
1.15    ! anton     238: \E ' noop is output-nextp0
        !           239: \E ' noop is output-nextp1
1.9       anton     240: 
1.15    ! anton     241: \E gen-transitions noop
1.9       anton     242: 
1.11      anton     243: \F [ENDIF]

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>