--- gforth/peeprules.vmg 2003/11/03 20:13:35 1.10 +++ gforth/peeprules.vmg 2003/11/06 09:47:49 1.12 @@ -1,33 +1,36 @@ \ 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 super1 = lit + -super2 = lit call +\ super2 = lit call super3 = lit @ -super4 = lit @ call -super5 = @ call +\ super4 = lit @ call +\ super5 = @ call super6 = lit ! -super7 = lit lit -super8 = dup lit -super9 = ! lit -super10 = lit ! lit +\ super7 = lit lit +\ super8 = dup lit +\ super9 = ! lit +\ super10 = lit ! lit super11 = ! ;s super12 = lit + @ -super13 = 0= ?branch -super14 = dup call +\ super13 = 0= ?branch +\ super14 = dup call super15 = useraddr @ super16 = + @ -super17 = lit @ ?branch +\ super17 = lit @ ?branch super18 = lit ! ;s super19 = lit @ and super20 = = ?branch -super21 = lit lit ! -super22 = @ ?branch +\ super21 = lit lit ! +\ super22 = @ ?branch super23 = useraddr ! -super24 = dup ?branch +\ super24 = dup ?branch super25 = @ ;s super26 = lit @ + super27 = dup @ -\ \F 0 [if] +\F 0 [if] \ \ \E prim-states ;s \ 2950159 \ \E prim-states lit \ 2802835 @@ -36,10 +39,10 @@ super27 = dup @ \ \E branch-states ?branch \ 1134432 \ \E prim-states lit@ \ 1051813 \ \E prim-states swap \ 737988 -\ \E S0 S2 state-prim swap -\ \E S1 S2 state-prim swap -\ \E S2 S3 state-prim swap -\ \E S3 S2 state-prim swap +\ \ \E S0 S2 state-prim swap +\ \ \E S1 S2 state-prim swap +\ \ \E S2 S3 state-prim swap +\ \ \E S3 S2 state-prim swap \ \E prim-states c@ \ 651406 \ \E prim-states = \ 590006 \ \E prim-states 0= \ 584487 @@ -55,22 +58,23 @@ super27 = dup @ \ \E prim-states useraddr \ 303254 \ \E prim-states over \ 283556 \ \E S0 S1 state-prim over -\ \E S1 S2 state-prim over -\ \E S2 S1 state-prim over -\ \E S3 S2 state-prim over +\ \ \E S1 S2 state-prim over +\ \ \E S2 S1 state-prim over +\ \ \E S3 S2 state-prim over \ \E prim-states negate \ 257417 \ \E prim-states cells \ 254644 \ \E prim-states rot \ 220273 -\ \E S3 S1 state-prim rot -\ \E S2 S3 state-prim rot -\ \E S1 S3 state-prim rot -\ \E S0 S3 state-prim rot +\ \ \E S3 S1 state-prim rot +\ \ \E S2 S3 state-prim rot +\ \ \E S1 S3 state-prim rot +\ \ \E S0 S3 state-prim rot \ \E prim-states ! \ 218672 \ \E prim-states 2dup \ 211315 -\ \E S0 S2 state-prim 2dup -\ \E S1 S3 state-prim 2dup -\ \E S2 S2 state-prim 2dup -\ \E S3 S1 state-prim 2dup +\ \E S0 S1 state-prim 2dup +\ \ \E S0 S2 state-prim 2dup +\ \ \E S1 S3 state-prim 2dup +\ \ \E S2 S2 state-prim 2dup +\ \ \E S3 S1 state-prim 2dup \ \ \E branch-states lit-perform \ 188331 \ \E prim-states <> \ 179502 \ \E prim-states c! \ 179332 @@ -89,7 +93,7 @@ super27 = dup @ \ \E prim-states lp+ \ 87190 \ -- \ \E prim-states >= \ 80994 \ \E prim-states tuck \ 78696 -\ \E S2 S2 state-prim tuck +\ \ \E S2 S2 state-prim tuck \ \E prim-states /string \ 78595 \ \E prim-states char+ \ 77542 \ \ \E prim-states ?dup \ 76850 @@ -115,8 +119,8 @@ super27 = dup @ \ \ \E prim-states pick \ 32015 \ \E prim-states u> \ 29373 \ \E prim-states -rot \ 26211 -\ \E S3 S2 state-prim -rot -\ \E S1 S3 state-prim -rot +\ \ \E S3 S2 state-prim -rot +\ \ \E S1 S3 state-prim -rot \ \E prim-states 2drop \ 25418 \ \E S0 S0 state-prim 2drop \ \E S1 S0 state-prim 2drop @@ -170,8 +174,8 @@ super27 = dup @ \ \E prim-states > \ 411 \ \ \E prim-states (hashlfind) \ 397 \ \E prim-states 2swap \ 336 -\ \E S0 S3 state-prim 2swap -\ \E S1 S3 state-prim 2swap +\ \ \E S0 S3 state-prim 2swap +\ \ \E S1 S3 state-prim 2swap \ \E prim-states laddr# \ 335 \ \ \E prim-states faxpy \ 286 \ \ \E prim-states (next) \ 272 @@ -180,8 +184,8 @@ super27 = dup @ \ \E prim-states invert \ 170 \ \E branch-states (-do) \ 169 \ \E prim-states 2over \ 165 -\ \E S0 S2 state-prim 2over -\ \E S1 S3 state-prim 2over +\ \ \E S0 S2 state-prim 2over +\ \ \E S1 S3 state-prim 2over \ \E prim-states under+ \ 154 \ \E prim-states dnegate \ 128 \ \E prim-states u<> \ 128 @@ -212,4 +216,4 @@ super27 = dup @ \ \E gen-transitions noop -\ \F [ENDIF] +\F [ENDIF]