version 1.133, 2003/08/08 05:56:37
|
version 1.137, 2003/08/17 22:52:33
|
Line 793 ud = ummul(u1,u2);
|
Line 793 ud = ummul(u1,u2);
|
ud = (UDCell)u1 * (UDCell)u2; |
ud = (UDCell)u1 * (UDCell)u2; |
#endif |
#endif |
: |
: |
>r >r 0 0 r> r> [ 8 cells ] literal 0 |
0 -rot dup [ 8 cells ] literal - |
DO |
DO |
over >r dup >r 0< and d2*+ drop |
dup 0< I' and d2*+ drop |
r> 2* r> swap |
LOOP ; |
LOOP 2drop ; |
|
: d2*+ ( ud n -- ud+n c ) |
: d2*+ ( ud n -- ud+n c ) |
over MINI |
over MINI |
and >r >r 2dup d+ swap r> + swap r> ; |
and >r >r 2dup d+ swap r> + swap r> ; |
Line 1084 rdrop ( R:w -- ) gforth
|
Line 1083 rdrop ( R:w -- ) gforth
|
: |
: |
r> r> drop >r ; |
r> r> drop >r ; |
|
|
2>r ( w1 w2 -- R:w1 R:w2 ) core-ext two_to_r |
2>r ( d -- R:d ) core-ext two_to_r |
: |
: |
swap r> swap >r swap >r >r ; |
swap r> swap >r swap >r >r ; |
|
|
2r> ( R:w1 R:w2 -- w1 w2 ) core-ext two_r_from |
2r> ( R:d -- d ) core-ext two_r_from |
: |
: |
r> r> swap r> swap >r swap ; |
r> r> swap r> swap >r swap ; |
|
|
2r@ ( R:w1 R:w2 -- R:w1 R:w2 w1 w2 ) core-ext two_r_fetch |
2r@ ( R:d -- R:d d ) core-ext two_r_fetch |
: |
: |
i' j ; |
i' j ; |
|
|
2rdrop ( R:w1 R:w2 -- ) gforth two_r_drop |
2rdrop ( R:d -- ) gforth two_r_drop |
: |
: |
r> r> drop r> drop >r ; |
r> r> drop r> drop >r ; |
|
|
Line 2191 u3 = 0;
|
Line 2190 u3 = 0;
|
|
|
\+FFCALL |
\+FFCALL |
|
|
av-start-void ( c_addr -- ) gforth av_start_void |
av-start-void ( c_addr -- ) gforth av_start_void |
av_start_void(alist, c_addr); |
av_start_void(alist, c_addr); |
|
|
av-start-int ( c_addr -- ) gforth av_start_int |
av-start-int ( c_addr -- ) gforth av_start_int |
av_start_int(alist, c_addr, &irv); |
av_start_int(alist, c_addr, &irv); |
|
|
av-start-float ( c_addr -- ) gforth av_start_float |
av-start-float ( c_addr -- ) gforth av_start_float |
av_start_float(alist, c_addr, &frv); |
av_start_float(alist, c_addr, &frv); |
|
|
av-start-double ( c_addr -- ) gforth av_start_double |
av-start-double ( c_addr -- ) gforth av_start_double |
av_start_double(alist, c_addr, &drv); |
av_start_double(alist, c_addr, &drv); |
|
|
av-start-longlong ( c_addr -- ) gforth av_start_longlong |
av-start-longlong ( c_addr -- ) gforth av_start_longlong |
av_start_longlong(alist, c_addr, &llrv); |
av_start_longlong(alist, c_addr, &llrv); |
|
|
av-start-ptr ( c_addr -- ) gforth av_start_ptr |
av-start-ptr ( c_addr -- ) gforth av_start_ptr |
av_start_ptr(alist, c_addr, void*, &prv); |
av_start_ptr(alist, c_addr, void*, &prv); |
|
|
av-int ( w -- ) gforth av_int |
av-int ( w -- ) gforth av_int |
av_int(alist, w); |
av_int(alist, w); |
|
|
av-float ( r -- ) gforth av_float |
av-float ( r -- ) gforth av_float |
av_float(alist, r); |
av_float(alist, r); |
|
|
av-double ( r -- ) gforth av_double |
av-double ( r -- ) gforth av_double |
av_double(alist, r); |
av_double(alist, r); |
|
|
av-longlong ( d -- ) gforth av_longlong |
av-longlong ( d -- ) gforth av_longlong |
av_longlong(alist, d); |
av_longlong(alist, d); |
|
|
av-ptr ( c_addr -- ) gforth av_ptr |
av-ptr ( c_addr -- ) gforth av_ptr |
av_ptr(alist, void*, c_addr); |
av_ptr(alist, void*, c_addr); |
|
|
av-call-void ( -- ) gforth av_call_void |
av-int-r ( R:w -- ) gforth av_int_r |
|
av_int(alist, w); |
|
|
|
av-float-r ( -- ) gforth av_float_r |
|
float r = *(Float*)lp; |
|
lp += sizeof(Float); |
|
av_float(alist, r); |
|
|
|
av-double-r ( -- ) gforth av_double_r |
|
double r = *(Float*)lp; |
|
lp += sizeof(Float); |
|
av_double(alist, r); |
|
|
|
av-longlong-r ( R:d -- ) gforth av_longlong_r |
|
av_longlong(alist, d); |
|
|
|
av-ptr-r ( R:c_addr -- ) gforth av_ptr_r |
|
av_ptr(alist, void*, c_addr); |
|
|
|
av-call-void ( -- ) gforth av_call_void |
SAVE_REGS |
SAVE_REGS |
av_call(alist); |
av_call(alist); |
REST_REGS |
REST_REGS |
|
|
av-call-int ( -- w ) gforth av_call_int |
av-call-int ( -- w ) gforth av_call_int |
SAVE_REGS |
SAVE_REGS |
av_call(alist); |
av_call(alist); |
|
REST_REGS |
w = irv; |
w = irv; |
|
|
av-call-float ( -- r ) gforth av_call_float |
av-call-float ( -- r ) gforth av_call_float |
SAVE_REGS |
SAVE_REGS |
av_call(alist); |
av_call(alist); |
REST_REGS |
REST_REGS |
r = frv; |
r = frv; |
|
|
av-call-double ( -- r ) gforth av_call_double |
av-call-double ( -- r ) gforth av_call_double |
SAVE_REGS |
SAVE_REGS |
av_call(alist); |
av_call(alist); |
REST_REGS |
REST_REGS |
r = drv; |
r = drv; |
|
|
av-call-longlong ( -- d ) gforth av_call_longlong |
av-call-longlong ( -- d ) gforth av_call_longlong |
SAVE_REGS |
SAVE_REGS |
av_call(alist); |
av_call(alist); |
REST_REGS |
REST_REGS |
d = llrv; |
d = llrv; |
|
|
av-call-ptr ( -- c_addr ) gforth av_call_ptr |
av-call-ptr ( -- c_addr ) gforth av_call_ptr |
SAVE_REGS |
SAVE_REGS |
av_call(alist); |
av_call(alist); |
REST_REGS |
REST_REGS |
c_addr = prv; |
c_addr = prv; |
|
|
alloc-callback ( xt -- c_addr ) gforth alloc_callback |
alloc-callback ( a_ip -- c_addr ) gforth alloc_callback |
c_addr = (char *)alloc_callback(engine_callback, ((Xt *)xt)+2); |
c_addr = (char *)alloc_callback(engine_callback, (Xt *)a_ip); |
|
|
|
va-start-void ( -- ) gforth va_start_void |
|
va_start_void(clist); |
|
|
|
va-start-int ( -- ) gforth va_start_int |
|
va_start_int(clist); |
|
|
|
va-start-longlong ( -- ) gforth va_start_longlong |
|
va_start_longlong(clist); |
|
|
|
va-start-ptr ( -- ) gforth va_start_ptr |
|
va_start_ptr(clist, (char *)); |
|
|
|
va-start-float ( -- ) gforth va_start_float |
|
va_start_float(clist); |
|
|
|
va-start-double ( -- ) gforth va_start_double |
|
va_start_double(clist); |
|
|
va-start-int ( -- w ) gforth va_start_int |
va-arg-int ( -- w ) gforth va_arg_int |
w = va_start_int(clist); |
w = va_arg_int(clist); |
|
|
va-start-longlong ( -- d ) gforth va_start_longlong |
va-arg-longlong ( -- d ) gforth va_arg_longlong |
d = va_start_longlong(clist); |
d = va_arg_longlong(clist); |
|
|
va-start-ptr ( -- c_addr ) gforth va_start_ptr |
va-arg-ptr ( -- c_addr ) gforth va_arg_ptr |
c_addr = (char *)va_start_ptr(clist, (char *)); |
c_addr = (char *)va_arg_ptr(clist,char*); |
|
|
va-start-float ( -- r ) gforth va_start_float |
va-arg-float ( -- r ) gforth va_arg_float |
r = va_start_float(clist); |
r = va_arg_float(clist); |
|
|
va-start-double ( -- r ) gforth va_start_double |
va-arg-double ( -- r ) gforth va_arg_double |
r = va_start_double(clist); |
r = va_arg_double(clist); |
|
|
va-return-void ( -- ) gforth va_return_void |
va-return-void ( -- ) gforth va_return_void |
va_return_void(clist); |
va_return_void(clist); |