version 1.120, 2003/01/10 21:19:59
|
version 1.123, 2003/01/24 22:03:20
|
Line 2004 else
|
Line 2004 else
|
|
|
represent ( r c_addr u -- n f1 f2 ) float |
represent ( r c_addr u -- n f1 f2 ) float |
char *sig; |
char *sig; |
|
size_t siglen; |
int flag; |
int flag; |
int decpt; |
int decpt; |
sig=ecvt(r, u, &decpt, &flag); |
sig=ecvt(r, u, &decpt, &flag); |
n=(r==0 ? 1 : decpt); |
n=(r==0. ? 1 : decpt); |
f1=FLAG(flag!=0); |
f1=FLAG(flag!=0); |
f2=FLAG(isdigit((unsigned)(sig[0]))!=0); |
f2=FLAG(isdigit((unsigned)(sig[0]))!=0); |
memmove(c_addr,sig,u); |
siglen=strlen(sig); |
|
memcpy(c_addr,sig,siglen); |
|
memset(c_addr+siglen,f2?'0':' ',u-siglen); |
|
|
>float ( c_addr u -- flag ) float to_float |
>float ( c_addr u -- flag ) float to_float |
""Actual stack effect: ( c_addr u -- r t | f ). Attempt to convert the |
""Actual stack effect: ( c_addr u -- r t | f ). Attempt to convert the |
Line 2379 IF_fpTOS(fpTOS=fp[0]);
|
Line 2382 IF_fpTOS(fpTOS=fp[0]);
|
|
|
\g peephole |
\g peephole |
|
|
primtable ( -- wprimtable ) new |
|
""wprimtable is a table containing the xts of the primitives indexed |
|
by sequence-number in prim (for use in prepare-peephole-table)."" |
|
wprimtable = (Cell)primtable(symbols+DOESJUMP+1,MAX_SYMBOLS-DOESJUMP-1); |
|
|
|
prepare-peephole-table ( wprimtable -- wpeeptable ) new prepare_peephole_opt |
|
""wpeeptable is a data structure used by @code{peephole-opt}; it is |
|
constructed by combining a primitives table with a simple peephole |
|
optimization table."" |
|
wpeeptable = prepare_peephole_table((Xt *)wprimtable); |
|
|
|
peephole-opt ( xt1 xt2 wpeeptable -- xt ) new peephole_opt |
|
""xt is the combination of xt1 and xt2 (according to wpeeptable); if |
|
they cannot be combined, xt is 0."" |
|
xt = peephole_opt(xt1, xt2, wpeeptable); |
|
|
|
compile-prim ( xt1 -- xt2 ) obsolete compile_prim |
|
xt2 = (Xt)compile_prim((Label)xt1); |
|
|
|
compile-prim1 ( a_prim -- ) gforth compile_prim1 |
compile-prim1 ( a_prim -- ) gforth compile_prim1 |
""compile prim (incl. immargs) at @var{a_prim}"" |
""compile prim (incl. immargs) at @var{a_prim}"" |
compile_prim1(a_prim); |
compile_prim1(a_prim); |
Line 2413 f = forget_dyncode(c_code);
|
Line 2397 f = forget_dyncode(c_code);
|
decompile-prim ( a_code -- a_prim ) gforth-internal decompile_prim |
decompile-prim ( a_code -- a_prim ) gforth-internal decompile_prim |
""a_prim is the code address of the primitive that has been |
""a_prim is the code address of the primitive that has been |
compile_prim1ed to a_code"" |
compile_prim1ed to a_code"" |
a_prim = (Label)decompile_code((Label)a_code); |
a_prim = (Cell *)decompile_code((Label)a_code); |
|
|
\ set-next-code and call2 do not appear in images and can be |
\ set-next-code and call2 do not appear in images and can be |
\ renumbered arbitrarily |
\ renumbered arbitrarily |