Diff for /gforth/prims2x.fs between versions 1.169 and 1.175

version 1.169, 2007/12/31 18:40:24 version 1.175, 2011/12/31 15:29:25
Line 1 Line 1
 \ converts primitives to, e.g., C code   \ converts primitives to, e.g., C code 
   
 \ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2009,2010,2011 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 921  stack inst-stream IP Cell Line 921  stack inst-stream IP Cell
 : stack-pointer-update { stack -- }  : stack-pointer-update { stack -- }
     \ and moves      \ and moves
     \ stacks grow downwards      \ stacks grow downwards
   \    ." /* stack pointer update " stack stack-pointer 2@ type ."  */" cr
     stack stack-prim-stacks-sync @ if      stack stack-prim-stacks-sync @ if
   \       ." /* synced "  stack stack-in ? stack stack-out ? stack state-in  stack-offset . ." */" cr
         stack stack-in @          stack stack-in @
         stack state-in  stack-offset -          stack state-in  stack-offset -
         stack swap update-stack-pointer          stack swap update-stack-pointer
     else      else
   \       ." /* unsynced "  stack stack-in ? stack stack-out ? ." */" cr
         stack stack-diff ( in-out )          stack stack-diff ( in-out )
         stack state-in  stack-offset -          stack state-in  stack-offset -
         stack state-out stack-offset + ( [in-in_offset]-[out-out_offset] )          stack state-out stack-offset + ( [in-in_offset]-[out-out_offset] )
Line 937  stack inst-stream IP Cell Line 940  stack inst-stream IP Cell
     ['] stack-pointer-update map-stacks ;      ['] stack-pointer-update map-stacks ;
   
 : stack-pointer-update2 { stack -- }  : stack-pointer-update2 { stack -- }
   \    ." /* stack pointer update2 " stack stack-pointer 2@ type ."  */" cr
     stack stack-prim-stacks-sync @ if      stack stack-prim-stacks-sync @ if
         stack state-out stack-offset          stack state-out stack-offset
         stack stack-out @ -          stack stack-out @ -
Line 1053  variable tail-nextp2 \ xt to execute for Line 1057  variable tail-nextp2 \ xt to execute for
     tail-nextp2 @ output-c-tail1-no-stores ;      tail-nextp2 @ output-c-tail1-no-stores ;
   
 : output-c-tail2-no-stores ( -- )  : output-c-tail2-no-stores ( -- )
       prim prim-c-code 2@ s" VM_JUMP(" search nip nip abort" Currently VM_JUMP is not supported in static superinstructions"
     ['] output-label2 output-c-tail1-no-stores ;      ['] output-label2 output-c-tail1-no-stores ;
   
 : type-c-code ( c-addr u xt -- )  : type-c-code ( c-addr u xt -- )
Line 1348  is output-c-prim-num Line 1353  is output-c-prim-num
 \  NEXT_P2;  \  NEXT_P2;
   
 : init-combined ( -- )  : init-combined ( -- )
       ['] clear-prim-stacks-sync map-stacks
     prim to combined      prim to combined
     0 num-combined !      0 num-combined !
     current-depth max-stacks cells erase      current-depth max-stacks cells erase
Line 1555  variable reprocessed-num 0 reprocessed-n Line 1561  variable reprocessed-num 0 reprocessed-n
     stores ;      stores ;
   
 : output-combined-tail ( -- )  : output-combined-tail ( -- )
     part-output-c-tail  
     in-part @ >r in-part off      in-part @ >r in-part off
       part-output-c-tail
     combined ['] output-c-tail-no-stores prim-context      combined ['] output-c-tail-no-stores prim-context
     r> in-part ! ;      r> in-part ! ;
   

Removed from v.1.169  
changed lines
  Added in v.1.175


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