Diff for /gforth/prims2x.fs between versions 1.9 and 1.12

version 1.9, 1994/09/28 17:02:50 version 1.12, 1995/02/02 18:13:10
Line 21 Line 21
   
 warnings off  warnings off
   
 [IFUNDEF] vocabulary  include search-order.fs [THEN]  [IFUNDEF] vocabulary    include search-order.fs [THEN]
   [IFUNDEF] environment?  include environ.fs      [THEN]
 include gray.fs  include gray.fs
   
 100 constant max-effect \ number of things on one side of a stack effect  100 constant max-effect \ number of things on one side of a stack effect
Line 347  constant type-description Line 348  constant type-description
  endif   endif
  rdrop ;   rdrop ;
     
 : single-type ( -- xt n1 n2 )  : single-type ( -- xt1 xt2 n1 n2 )
  ['] fetch-single ['] store-single 1 0 ;   ['] fetch-single ['] store-single 1 0 ;
   
 : double-type ( -- xt n1 n2 )  : double-type ( -- xt1 xt2 n1 n2 )
  ['] fetch-double ['] store-double 2 0 ;   ['] fetch-double ['] store-double 2 0 ;
   
 : float-type ( -- xt n1 n2 )  : float-type ( -- xt1 xt2 n1 n2 )
  ['] fetch-float ['] store-float 0 1 ;   ['] fetch-float ['] store-float 0 1 ;
   
 : s, ( addr u -- )  : s, ( addr u -- )
Line 462  set-current Line 463  set-current
   
 : flush-tos ( -- )  : flush-tos ( -- )
  effect-in-size 2@ effect-out-size 2@   effect-in-size 2@ effect-out-size 2@
    rot - swap rot - ( -f-diff -d-diff ) >r >r
    effect-in-size 2@ effect-out-size 2@
  0<> rot 0= and   0<> rot 0= and
  if   if
    ." IF_FTOS(fp[0] = FTOS);" cr     ." IF_FTOS(fp[" r@ 0 .r ." ] = FTOS);" cr
  endif   endif  rdrop
  0<> swap 0= and   0<> swap 0= and
  if   if
    ." IF_TOS(sp[0] = TOS);" cr     ." IF_TOS(sp[" r@ 0 .r ." ] = TOS);" cr
  endif ;   endif  rdrop ;
   
 : fill-tos ( -- )  : fill-tos ( -- )
  effect-in-size 2@ effect-out-size 2@   effect-in-size 2@ effect-out-size 2@
Line 518  set-current Line 521  set-current
  ." DEF_CA" cr   ." DEF_CA" cr
  declarations   declarations
  compute-offsets \ for everything else   compute-offsets \ for everything else
  flush-tos  
  fetches   fetches
  stack-pointer-updates cr   stack-pointer-updates cr
  ." NAME(" [char] " emit forth-name 2@ type [char] " emit ." )" cr \ debugging   ." NAME(" [char] " emit forth-name 2@ type [char] " emit ." )" cr \ debugging
Line 526  set-current Line 528  set-current
  c-code 2@ type   c-code 2@ type
  ." }" cr   ." }" cr
  ." NEXT_P1;" cr   ." NEXT_P1;" cr
    flush-tos
  stores   stores
  fill-tos   fill-tos
  ." NEXT_P2;" cr   ." NEXT_P2;" cr
Line 548  set-current Line 551  set-current
        effect-out effect-out-end @ .stack-list ." )" cr         effect-out effect-out-end @ .stack-list ." )" cr
        forth-code 2@ type cr         forth-code 2@ type cr
        -1 primitive-number +!         -1 primitive-number +!
  THEN   THEN ;
 ;  
   [IFDEF] documentation
   : register-doc ( -- )
       get-current documentation set-current
       forth-name 2@ nextname create
       forth-name 2@ 2,
       stack-string 2@ 2,
       wordset 2@ 2,
       c-name 2@ 2,
       doc 2@ 2,
       set-current ;
   [THEN]
   
 : process-file ( addr u xt -- )  : process-file ( addr u xt -- )
  >r r/o open-file abort" cannot open file"   >r r/o open-file abort" cannot open file"

Removed from v.1.9  
changed lines
  Added in v.1.12


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