[gforth] / gforth / prim  

gforth: gforth/prim

Diff for /gforth/prim between version 1.177 and 1.178

version 1.177, Tue Sep 27 13:50:43 2005 UTC version 1.178, Sun Nov 20 23:15:42 2005 UTC
Line 2644 
Line 2644 
 ffi-prep-closure ( a_ip a_cif a_closure -- w )  gforth ffi_prep_closure  ffi-prep-closure ( a_ip a_cif a_closure -- w )  gforth ffi_prep_closure
 w = ffi_prep_closure(a_closure, a_cif, ffi_callback, a_ip);  w = ffi_prep_closure(a_closure, a_cif, ffi_callback, a_ip);
   
   ffi-i@ ( a_addr -- n )  gforth ffi_ifetch
   n = *(int*)(*a_addr);
   
   ffi-i! ( n a_addr -- )  gforth ffi_istore
   *(int*)(a_addr) = n;
   
 ffi-2@ ( a_addr -- d )  gforth ffi_2fetch  ffi-2@ ( a_addr -- d )  gforth ffi_2fetch
 #ifdef BUGGY_LONG_LONG  #ifdef BUGGY_LONG_LONG
 DLO_IS(d, (Cell*)(*a_addr));  DLO_IS(d, (Cell*)(*a_addr));
Line 2660 
Line 2666 
 #endif  #endif
   
 ffi-arg-int ( -- w )    gforth ffi_arg_int  ffi-arg-int ( -- w )    gforth ffi_arg_int
 w = *(Cell*)(*clist++);  w = *(int *)(*clist++);
   
 ffi-arg-longlong ( -- d )       gforth ffi_arg_longlong  ffi-arg-longlong ( -- d )       gforth ffi_arg_longlong
 #ifdef BUGGY_LONG_LONG  #ifdef BUGGY_LONG_LONG
Line 2679 
Line 2685 
 ffi-arg-double ( -- r ) gforth ffi_arg_double  ffi-arg-double ( -- r ) gforth ffi_arg_double
 r = *(double*)(*clist++);  r = *(double*)(*clist++);
   
 ffi-ret-int ( -- w )    gforth ffi_ret_int  ffi-ret-void ( -- )     gforth ffi_ret_void
   return 0;
   
   ffi-ret-int ( w -- )    gforth ffi_ret_int
 *(int*)(ritem) = w;  *(int*)(ritem) = w;
   return 0;
   
 ffi-ret-longlong ( -- d )       gforth ffi_ret_longlong  ffi-ret-longlong ( d -- )       gforth ffi_ret_longlong
 #ifdef BUGGY_LONG_LONG  #ifdef BUGGY_LONG_LONG
 *(Cell*)(ritem) = DLO(d);  *(Cell*)(ritem) = DLO(d);
 #else  #else
 *(DCell*)(ritem) = d;  *(DCell*)(ritem) = d;
 #endif  #endif
   return 0;
   
 ffi-ret-ptr ( -- c_addr )       gforth ffi_ret_ptr  ffi-ret-ptr ( c_addr -- )       gforth ffi_ret_ptr
 *(char **)(ritem) = c_addr;  *(char **)(ritem) = c_addr;
   return 0;
   
 ffi-ret-float ( -- r )  gforth ffi_ret_float  ffi-ret-float ( r -- )  gforth ffi_ret_float
 *(float*)(ritem) = r;  *(float*)(ritem) = r;
   return 0;
   
 ffi-ret-double ( -- r ) gforth ffi_ret_double  ffi-ret-double ( r -- ) gforth ffi_ret_double
 *(double*)(ritem) = r;  *(double*)(ritem) = r;
   return 0;
   
 \+  \+
   


Generate output suitable for use with a patch program
Legend:
Removed from v.1.177  
changed lines
  Added in v.1.178

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help