Diff for /gforth/peeprules.vmg between versions 1.10 and 1.18

version 1.10, 2003/11/03 20:13:35 version 1.18, 2005/08/02 12:00:51
Line 1 Line 1
   \ Gforth superinstructions and stack caching replicas
   
   \ Copyright (C) 2003,2004 Free Software Foundation, Inc.
   
   \ This file is part of Gforth.
   
   \ Gforth is free software; you can redistribute it and/or
   \ modify it under the terms of the GNU General Public License
   \ as published by the Free Software Foundation; either version 2
   \ of the License, or (at your option) any later version.
   
   \ This program is distributed in the hope that it will be useful,
   \ but WITHOUT ANY WARRANTY; without even the implied warranty of
   \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   \ GNU General Public License for more details.
   
   \ You should have received a copy of the GNU General Public License
   \ along with this program; if not, write to the Free Software
   \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
 \ taken from David Gregg's EuroForth 2001 paper; omitted some sequences  \ taken from David Gregg's EuroForth 2001 paper; omitted some sequences
   \ eliminated for gforth-native:
   \ 1) sequences containing call
   \ 2) sequences with immediate arguments not in the first position
   
   \ no new prim-nums for supers and state-replicas
   \E ' noop is output-c-prim-num
   
 super1 = lit +  super1 = lit +
 super2 = lit call  \ super2 = lit call
 super3 = lit @  super3 = lit @
 super4 = lit @ call  \ super4 = lit @ call
 super5 = @ call  \ super5 = @ call
 super6 = lit !  super6 = lit !
 super7 = lit lit  \ super7 = lit lit
 super8 = dup lit  \ super8 = dup lit
 super9 = ! lit  \ super9 = ! lit
 super10 = lit ! lit  \ super10 = lit ! lit
 super11 = ! ;s  super11 = ! ;s
 super12 = lit + @  super12 = lit + @
 super13 = 0= ?branch  \ super13 = 0= ?branch
 super14 = dup call  \ super14 = dup call
 super15 = useraddr @  super15 = useraddr @
 super16 = + @  super16 = + @
 super17 = lit @ ?branch  \ super17 = lit @ ?branch
 super18 = lit ! ;s  super18 = lit ! ;s
 super19 = lit @ and  super19 = lit @ and
 super20 = = ?branch  \ super20 = = ?branch
 super21 = lit lit !  \ super21 = lit lit !
 super22 = @ ?branch  \ super22 = @ ?branch
 super23 = useraddr !  super23 = useraddr !
 super24 = dup ?branch  \ super24 = dup ?branch
 super25 = @ ;s  super25 = @ ;s
 super26 = lit @ +  super26 = lit @ +
 super27 = dup @  super27 = dup @
   
 \  \F 0 [if]  \F 0 [if]
   
 \  \ \E prim-states ;s                   \ 2950159  \ \E prim-states ;s                   \ 2950159
 \  \E prim-states lit                  \ 2802835  \E prim-states lit                  \ 2802835
 \  \ \E prim-states call                 \ 2558373  \ \E prim-states call                 \ 2558373
 \  \E prim-states @                    \ 2244351  \E prim-states @                    \ 2244351
 \  \E branch-states ?branch              \ 1134432  \E branch-states ?branch              \ 1134432
 \  \E prim-states lit@                 \ 1051813  \E prim-states lit@                 \ 1051813
 \  \E prim-states swap                 \ 737988  \E prim-states swap                 \ 737988
 \  \E S0 S2 state-prim swap  \E S0 S2 state-prim swap
 \  \E S1 S2 state-prim swap  \E S1 S2 state-prim swap
 \  \E S2 S3 state-prim swap  \E S2 S3 state-prim swap
 \  \E S3 S2 state-prim swap  \E S3 S2 state-prim swap
 \  \E prim-states c@                   \ 651406  \E prim-states c@                   \ 651406
 \  \E prim-states =                    \ 590006  \E prim-states =                    \ 590006
 \  \E prim-states 0=                   \ 584487  \E prim-states 0=                   \ 584487
 \  \E prim-states dup                  \ 566855  \E prim-states dup                  \ 566855
 \  \E S0 S1 state-prim dup  \E S0 S1 state-prim dup
 \  \E prim-states +                    \ 566003  \E S1 S1 state-prim dup
 \  \E prim-states i                    \ 502908  \E prim-states +                    \ 566003
 \  \E prim-states +!                   \ 448925  \E prim-states i                    \ 502908
 \  \ \E prim-states branch               \ 409561  \E prim-states +!                   \ 448925
 \  \ \E prim-states (loop)               \ 379646  \ \E prim-states branch               \ 409561
 \  \ \E prim-states lp!                  \ 326743  \ \E prim-states (loop)               \ 379646
 \  \E prim-states and                  \ 309427  \ \E prim-states lp!                  \ 326743
 \  \E prim-states useraddr             \ 303254  \E prim-states and                  \ 309427
 \  \E prim-states over                 \ 283556  \E prim-states useraddr             \ 303254
 \  \E S0 S1 state-prim over  \E prim-states over                 \ 283556
 \  \E S1 S2 state-prim over  \E S0 S1 state-prim over
 \  \E S2 S1 state-prim over  \E S1 S2 state-prim over
 \  \E S3 S2 state-prim over  \E S2 S1 state-prim over
 \  \E prim-states negate               \ 257417  \E S3 S2 state-prim over
 \  \E prim-states cells                \ 254644  \E prim-states negate               \ 257417
 \  \E prim-states rot                  \ 220273  \E prim-states cells                \ 254644
 \  \E S3 S1 state-prim rot  \E prim-states rot                  \ 220273
 \  \E S2 S3 state-prim rot  \E S3 S1 state-prim rot
 \  \E S1 S3 state-prim rot  \E S2 S3 state-prim rot
 \  \E S0 S3 state-prim rot  \E S1 S3 state-prim rot
 \  \E prim-states !                    \ 218672  \E S0 S3 state-prim rot
 \  \E prim-states 2dup                 \ 211315  \E S4 S2 state-prim rot
 \  \E S0 S2 state-prim 2dup  \E S5 S3 state-prim rot
 \  \E S1 S3 state-prim 2dup  \E prim-states !                    \ 218672
 \  \E S2 S2 state-prim 2dup  \E prim-states 2dup                 \ 211315
 \  \E S3 S1 state-prim 2dup  \E S0 S1 state-prim 2dup
 \  \ \E branch-states lit-perform          \ 188331  \E S0 S2 state-prim 2dup
 \  \E prim-states <>                   \ 179502  \E S1 S3 state-prim 2dup
 \  \E prim-states c!                   \ 179332  \E S2 S2 state-prim 2dup
 \  \E prim-states lit+                 \ 179156  \E S3 S1 state-prim 2dup
 \  \E prim-states drop                 \ 173995  \E S4 S4 state-prim 2dup
 \  \E S0 S0 state-prim drop  \E S4 S2 state-prim 2dup
 \  \E prim-states lshift               \ 164671  \ \E branch-states lit-perform          \ 188331
 \  \E prim-states /mod                 \ 164670  \E prim-states <>                   \ 179502
 \  \E prim-states >r                   \ 145247  \E prim-states c!                   \ 179332
 \  \E prim-states r>                   \ 133792  \E prim-states lit+                 \ 179156
 \  \ \E branch-states does-exec            \ 120944  \E prim-states drop                 \ 173995
 \  \E prim-states cell+                \ 116183  \E S0 S0 state-prim drop
 \  \E prim-states lp+!#                \ 106697 \ --  \E prim-states lshift               \ 164671
 \  \E prim-states -                    \ 106245  \E prim-states /mod                 \ 164670
 \  \E prim-states unloop               \ 98938 \ --  \E prim-states >r                   \ 145247
 \  \E prim-states lp+                  \ 87190 \ --  \E prim-states r>                   \ 133792
 \  \E prim-states >=                   \ 80994  \ \E branch-states does-exec            \ 120944
 \  \E prim-states tuck                 \ 78696  \E prim-states cell+                \ 116183
 \  \E S2 S2 state-prim tuck  \E prim-states lp+!#                \ 106697 \ --
 \  \E prim-states /string              \ 78595  \E prim-states -                    \ 106245
 \  \E prim-states char+                \ 77542  \E prim-states unloop               \ 98938 \ --
 \  \ \E prim-states ?dup                 \ 76850  \E prim-states lp+                  \ 87190 \ --
 \  \E prim-states @local0              \ 75322  \E prim-states >=                   \ 80994
 \  \E prim-states min                  \ 75264  \E prim-states tuck                 \ 78696
 \  \ \E prim-states compare              \ 65603  \E S2 S2 state-prim tuck
 \  \E branch-states (u+do)               \ 63823  \E S3 S3 state-prim tuck
 \  \ \E prim-states (read-line)          \ 63823  \E prim-states /string              \ 78595
 \  \E prim-states 2>r                  \ 62646  \E prim-states char+                \ 77542
 \  \E prim-states 2r>                  \ 62644  \E prim-states ?dup                 \ 76850
 \  \E prim-states 2r@                  \ 61338  \E prim-states @local0              \ 75322
 \  \E prim-states 2@                   \ 61067  \E prim-states min                  \ 75264
 \  \E prim-states nip                  \ 54961  \ \E prim-states compare              \ 65603
 \  \E S1 S1 state-prim nip  \E branch-states (u+do)               \ 63823
 \  \E S0 S1 state-prim nip  \ \E prim-states (read-line)          \ 63823
 \  \E prim-states within               \ 51075  \E prim-states 2>r                  \ 62646
 \  \E prim-states 1-                   \ 47441  \E prim-states 2r>                  \ 62644
 \  \E branch-states execute              \ 46674  \E prim-states 2r@                  \ 61338
 \  \E prim-states lp-                  \ 45385  \E prim-states 2@                   \ 61067
 \  \E branch-states perform              \ 38756  \E prim-states nip                  \ 54961
 \  \E prim-states xor                  \ 35599  \E S1 S1 state-prim nip
 \  \E prim-states @local#              \ 34586  \E S0 S1 state-prim nip
 \  \ \E prim-states pick                 \ 32015  \E S2 S2 state-prim nip
 \  \E prim-states u>                   \ 29373  \E prim-states within               \ 51075
 \  \E prim-states -rot                 \ 26211  \E prim-states 1-                   \ 47441
 \  \E S3 S2 state-prim -rot  \E branch-states execute              \ 46674
 \  \E S1 S3 state-prim -rot  \E prim-states lp-                  \ 45385
 \  \E prim-states 2drop                \ 25418  \E branch-states perform              \ 38756
 \  \E S0 S0 state-prim 2drop  \E prim-states xor                  \ 35599
 \  \E S1 S0 state-prim 2drop  \E prim-states @local#              \ 34586
 \  \ \E prim-states (tablelfind)         \ 22243  \ \E prim-states pick                 \ 32015
 \  \E prim-states or                   \ 21587  \E prim-states u>                   \ 29373
 \  \E prim-states @local2              \ 20859  \E prim-states -rot                 \ 26211
 \  \E branch-states (+loop)              \ 20006  \E S3 S2 state-prim -rot
 \  \E prim-states 1+                   \ 17944  \E S1 S3 state-prim -rot
 \  \E prim-states rdrop                \ 17902  \E S4 S3 state-prim -rot
 \  \E branch-states (?do)                \ 17348  \E S2 S4 state-prim -rot
 \  \E prim-states max                  \ 16948  \E S3 S5 state-prim -rot
 \  \E prim-states 2*                   \ 15606  \E prim-states 2drop                \ 25418
 \  \ \E prim-states filename-match       \ 15003  \E S0 S0 state-prim 2drop
 \  \ \E prim-states (listlfind)          \ 13074  \E S1 S0 state-prim 2drop
 \  \ \E prim-states sp@                  \ 12741  \ \E prim-states (tablelfind)         \ 22243
 \  \ \E prim-states fp@                  \ 12384  \E prim-states or                   \ 21587
 \  \ \E prim-states um/mod               \ 12288  \E prim-states @local2              \ 20859
 \  \E prim-states 2!                   \ 11904  \E branch-states (+loop)              \ 20006
 \  \ \E prim-states fill                 \ 10781  \E prim-states 1+                   \ 17944
 \  \ \E prim-states (parse-white)        \ 10624  \E prim-states rdrop                \ 17902
 \  \E branch-states (do)                 \ 10516  \E branch-states (?do)                \ 17348
 \  \ \E prim-states (hashkey1)           \ 10239  \E prim-states max                  \ 16948
 \  \E prim-states u<                   \ 9602  \E prim-states 2*                   \ 15606
 \  \ \E prim-states write-file           \ 8973  \ \E prim-states filename-match       \ 15003
 \  \E prim-states count                \ 8873  \ \E prim-states (listlfind)          \ 13074
 \  \ \E prim-states rp@                  \ 8410  \ \E prim-states sp@                  \ 12741
 \  \E prim-states 0<                   \ 8380  \ \E prim-states fp@                  \ 12384
 \  \E prim-states <                    \ 7741  \ \E prim-states um/mod               \ 12288
 \  \E prim-states @local1              \ 7458  \E prim-states 2!                   \ 11904
 \  \ \E prim-states move                 \ 7050  \ \E prim-states fill                 \ 10781
 \  \E prim-states u>=                  \ 6138  \ \E prim-states (parse-white)        \ 10624
 \  \E branch-states (+do)                \ 5863  \E branch-states (do)                 \ 10516
 \  \ \E prim-states va-return-double     \ 5517  \ \E prim-states (hashkey1)           \ 10239
 \  \E prim-states um*                  \ 5342  \E prim-states u<                   \ 9602
 \  \E prim-states toupper              \ 3517  \ \E prim-states write-file           \ 8973
 \  \ \E prim-states f@local1             \ 2907  \E prim-states count                \ 8873
 \  \ \E prim-states rp!                  \ 2859  \ \E prim-states rp@                  \ 8410
 \  \ \E prim-states ?dup-?branch         \ 2829  \E prim-states 0<                   \ 8380
 \  \E prim-states d+                   \ 2671  \E prim-states <                    \ 7741
 \  \ \E prim-states ftuck                \ 2636  \E prim-states @local1              \ 7458
 \  \ \E prim-states read-file            \ 2623  \ \E prim-states move                 \ 7050
 \  \ \E prim-states ms                   \ 2454  \E prim-states u>=                  \ 6138
 \  \ \E prim-states (s+loop)             \ 2429  \E branch-states (+do)                \ 5863
 \  \ \E prim-states allocate             \ 1869  \ \E prim-states va-return-double     \ 5517
 \  \E prim-states *                    \ 1520  \E prim-states um*                  \ 5342
 \  \E prim-states 0<>                  \ 925  \ \E prim-states toupper              \ 3517
 \  \ \E prim-states noop                 \ 715  \ \E prim-states f@local1             \ 2907
 \  \E prim-states aligned              \ 714  \ \E prim-states rp!                  \ 2859
 \  \E prim-states u<=                  \ 684  \ \E prim-states ?dup-?branch         \ 2829
 \  \E prim-states i'                   \ 684  \E prim-states d+                   \ 2671
 \  \E prim-states >                    \ 411  \ \E prim-states ftuck                \ 2636
 \  \ \E prim-states (hashlfind)          \ 397  \ \E prim-states read-file            \ 2623
 \  \E prim-states 2swap                \ 336  \ \E prim-states ms                   \ 2454
 \  \E S0 S3 state-prim 2swap  \ \E prim-states (s+loop)             \ 2429
 \  \E S1 S3 state-prim 2swap  \ \E prim-states allocate             \ 1869
 \  \E prim-states laddr#               \ 335  \E prim-states *                    \ 1520
 \  \ \E prim-states faxpy                \ 286  \E prim-states 0<>                  \ 925
 \  \ \E prim-states (next)               \ 272  \ \E prim-states noop                 \ 715
 \  \ \E prim-states (-loop)-lp+!#        \ 248  \E prim-states aligned              \ 714
 \  \E prim-states <=                   \ 199  \E prim-states u<=                  \ 684
 \  \E prim-states invert               \ 170  \E prim-states i'                   \ 684
 \  \E branch-states (-do)                \ 169  \E prim-states >                    \ 411
 \  \E prim-states 2over                \ 165  \ \E prim-states (hashlfind)          \ 397
 \  \E S0 S2 state-prim 2over  \E prim-states 2swap                \ 336
 \  \E S1 S3 state-prim 2over  \E S0 S3 state-prim 2swap
 \  \E prim-states under+               \ 154  \E S1 S3 state-prim 2swap
 \  \E prim-states dnegate              \ 128  \E S2 S4 state-prim 2swap
 \  \E prim-states u<>                  \ 128  \E S4 S2 state-prim 2swap
 \  \E prim-states 0>                   \ 122  \E prim-states laddr#               \ 335
 \  \ \E prim-states (loop)-lp+!#         \ 118  \ \E prim-states faxpy                \ 286
 \  \E prim-states j                    \ 117  \ \E prim-states (next)               \ 272
 \  \E prim-states float+               \ 78  \ \E prim-states (-loop)-lp+!#        \ 248
 \  \ \E prim-states (for)                \ 68  \E prim-states <=                   \ 199
 \  \E prim-states 2rdrop               \ 60 \ --  \E prim-states invert               \ 170
 \  \ \E prim-states f!                   \ 14  \E branch-states (-do)                \ 169
 \  \E prim-states >l                   \ 14  \E prim-states 2over                \ 165
 \  \ \E prim-states close-file           \ 5  \E S0 S2 state-prim 2over
 \  \ \E prim-states call-c               \ 4  \E S1 S3 state-prim 2over
 \  \ \E prim-states reposition-file      \ 3  \E S2 S4 state-prim 2over
 \  \E prim-states /                    \ 3  \E S3 S5 state-prim 2over
 \  \ \E prim-states resize-file          \ 2  \E S4 S2 state-prim 2over
 \  \ \E prim-states free                 \ 2  \E S5 S3 state-prim 2over
 \  \E prim-states 2/                   \ 2  \E S6 S4 state-prim 2over
 \  \ \E prim-states up!                  \ 1  \E prim-states under+               \ 154
 \  \ \E prim-states stdin                \ 1  \E prim-states dnegate              \ 128
 \  \ \E prim-states key?-file            \ 1  \E prim-states u<>                  \ 128
 \  \ \E prim-states flush-icache         \ 1  \E prim-states 0>                   \ 122
 \  \ \E prim-states cmove                \ 1  \ \E prim-states (loop)-lp+!#         \ 118
 \  \ \E prim-states (system)             \ 1  \E prim-states j                    \ 117
   \E prim-states float+               \ 78
   \ \E prim-states (for)                \ 68
   \E prim-states 2rdrop               \ 60 \ --
   \ \E prim-states f!                   \ 14
   \E prim-states >l                   \ 14
   \ \E prim-states close-file           \ 5
   \ \E prim-states call-c               \ 4
   \ \E prim-states reposition-file      \ 3
   \E prim-states /                    \ 3
   \ \E prim-states resize-file          \ 2
   \ \E prim-states free                 \ 2
   \E prim-states 2/                   \ 2
   \ \E prim-states up!                  \ 1
   \ \E prim-states stdin                \ 1
   \ \E prim-states key?-file            \ 1
   \ \E prim-states flush-icache         \ 1
   \ \E prim-states cmove                \ 1
   \ \E prim-states (system)             \ 1
   
 \  \E ' noop is output-nextp0  \E ' noop is output-nextp0
 \  \E ' noop is output-nextp1  \E ' noop is output-nextp1
   
 \  \E gen-transitions noop  \E gen-transitions noop
   
 \  \F [ENDIF]  \F [ENDIF]

Removed from v.1.10  
changed lines
  Added in v.1.18


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