Diff for /gforth/prim between versions 1.194 and 1.196

version 1.194, 2006/05/25 22:10:16 version 1.196, 2006/10/13 17:15:27
Line 2698  w = ffi_prep_closure((ffi_closure *)a_cl Line 2698  w = ffi_prep_closure((ffi_closure *)a_cl
   
 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));
 DHI_IS(d, 0);  DHI_IS(d, 0);
 #else  #else
 d = *(DCell*)(a_addr);  d = *(DCell*)(a_addr);
Line 2719  w = *(long *)(*gforth_clist++); Line 2719  w = *(long *)(*gforth_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
 DLO_IS(d, (Cell*)(*gforth_clist++));  DLO_IS(d, *(Cell*)(*gforth_clist++));
 DHI_IS(d, -((Cell*)(*gforth_clist++)<0));  DHI_IS(d, -(*(Cell*)(*gforth_clist++)<0));
 #else  #else
 d = *(DCell*)(*gforth_clist++);  d = *(DCell*)(*gforth_clist++);
 #endif  #endif
   
 ffi-arg-dlong ( -- d )  gforth ffi_arg_dlong  ffi-arg-dlong ( -- d )  gforth ffi_arg_dlong
 #ifdef BUGGY_LONG_LONG  #ifdef BUGGY_LONG_LONG
 DLO_IS(d, (Cell*)(*gforth_clist++));  DLO_IS(d, *(Cell*)(*gforth_clist++));
 DHI_IS(d, -((Cell*)(*gforth_clist++)<0));  DHI_IS(d, -(*(Cell*)(*gforth_clist++)<0));
 #else  #else
 d = *(Cell*)(*gforth_clist++);  d = *(Cell*)(*gforth_clist++);
 #endif  #endif
Line 2766  ffi-ret-dlong ( d -- ) gforth ffi_ret_dl Line 2766  ffi-ret-dlong ( d -- ) gforth ffi_ret_dl
 return 0;  return 0;
   
 ffi-ret-long ( n -- )   gforth ffi_ret_long  ffi-ret-long ( n -- )   gforth ffi_ret_long
 #ifdef BUGGY_LONG_LONG  
 *(Cell*)(gforth_ritem) = DLO(n);  
 #else  
 *(Cell*)(gforth_ritem) = n;  *(Cell*)(gforth_ritem) = n;
 #endif  
 return 0;  return 0;
   
 ffi-ret-ptr ( c_addr -- )       gforth ffi_ret_ptr  ffi-ret-ptr ( c_addr -- )       gforth ffi_ret_ptr

Removed from v.1.194  
changed lines
  Added in v.1.196


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>