version 1.98, 2009/12/31 15:32:36
|
version 1.99, 2010/01/08 18:54:34
|
Line 116 defer header ( -- ) \ gforth
|
Line 116 defer header ( -- ) \ gforth
|
\G puts down string as longcstring |
\G puts down string as longcstring |
dup , here swap chars dup allot move ; |
dup , here swap chars dup allot move ; |
|
|
|
[IFDEF] prelude-mask |
variable next-prelude |
variable next-prelude |
|
|
: prelude, ( -- ) |
: prelude, ( -- ) |
next-prelude @ if |
next-prelude @ if |
align next-prelude @ , |
align next-prelude @ , |
then ; |
then ; |
|
[THEN] |
|
|
: header, ( c-addr u -- ) \ gforth |
: header, ( c-addr u -- ) \ gforth |
name-too-long? |
name-too-long? |
dup max-name-length @ max max-name-length ! |
dup max-name-length @ max max-name-length ! |
prelude, |
[ [IFDEF] prelude-mask ] prelude, [ [THEN] ] |
align here last ! |
align here last ! |
[ has? ec [IF] ] |
[ has? ec [IF] ] |
-1 A, |
-1 A, |
Line 259 defer basic-block-end ( -- )
|
Line 261 defer basic-block-end ( -- )
|
is basic-block-end |
is basic-block-end |
[THEN] |
[THEN] |
|
|
has? peephole [IF] |
has? primcentric [IF] |
|
has? peephole [IF] |
|
\ dynamic only |
|
: peephole-compile, ( xt -- ) |
|
\ compile xt, appending its code to the current dynamic superinstruction |
|
here swap , compile-prim1 ; |
|
[ELSE] |
|
: peephole-compile, ( xt -- addr ) @ , ; |
|
[THEN] |
|
|
\ dynamic only |
|
: peephole-compile, ( xt -- ) |
|
\ compile xt, appending its code to the current dynamic superinstruction |
|
here swap , compile-prim1 ; |
|
|
|
: compile-to-prims, ( xt -- ) |
: compile-to-prims, ( xt -- ) |
\G compile xt to use primitives (and their peephole optimization) |
\G compile xt to use primitives (and their peephole optimization) |
\G instead of ","-ing the xt. |
\G instead of ","-ing the xt. |
Line 362 has? peephole [IF]
|
Line 367 has? peephole [IF]
|
\ \ compiler loop |
\ \ compiler loop |
|
|
: compiler1 ( c-addr u -- ... xt ) |
: compiler1 ( c-addr u -- ... xt ) |
2dup find-name run-prelude dup |
2dup find-name [ [IFDEF] prelude-mask ] run-prelude [ [THEN] ] dup |
if ( c-addr u nt ) |
if ( c-addr u nt ) |
nip nip name>comp |
nip nip name>comp |
else |
else |