--- gforth/cross.fs 2011/11/11 18:29:09 1.177 +++ gforth/cross.fs 2012/02/13 22:58:13 1.180 @@ -1,7 +1,7 @@ \ CROSS.FS The Cross-Compiler 06oct92py \ Idea and implementation: Bernd Paysan (py) -\ Copyright (C) 1995,1996,1997,1998,1999,2000,2003,2004,2005,2006,2007,2009,2010 Free Software Foundation, Inc. +\ Copyright (C) 1995,1996,1997,1998,1999,2000,2003,2004,2005,2006,2007,2009,2010,2011 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -2968,21 +2968,22 @@ DO: abort" Not in cross mode" ;DO \ Mini-OOF -\ Builder method -\ Build: ( m v -- m' v ) over T , swap cell+ swap H ;Build -\ DO: abort" Not in cross mode" ;DO - -\ Builder var -\ Build: ( m v size -- m v+size ) over T , H + ;Build -\ DO: ( o -- addr ) T @ H + ;DO - -\ Builder end-class -\ Build: ( addr m v -- ) -\ T here >r , dup , 2 cells H ?DO T ['] noop , 1 cells H +LOOP -\ T cell+ dup cell+ r> rot @ 2 cells /string move H ;Build -\ by: Variable +Builder method +Build: ( m v -- m' v ) over T , swap cell+ swap H ;Build +DO: abort" Not in cross mode" ;DO + +Builder var +Build: ( m v size -- m v+size ) over T , H + ;Build +DO: ( o -- addr ) T @ H + ;DO + +Builder end-class +Build: ( addr m v -- ) + T here >r , dup , 2 cells H ?DO T ['] noop , 1 cells H +LOOP + T cell+ dup cell+ r> rot @ 2 cells /string move H ;Build +by Create -\ : defines ( xt class -- ) T ' >body @ + ! H ; +: class ( class -- class methods vars ) dup T 2@ H ; +: defines ( xt class -- ) T ' >body @ + ! H ; \ Peephole optimization 05sep01jaw @@ -3067,7 +3068,7 @@ compile: does-resolved ;compile \ : ?struc ( flag -- ) ABORT" CROSS: unstructured " ; \ : sys? ( sys -- sys ) dup 0= ?struc ; -: >mark ( -- sys ) T here ( dup ." M" hex. ) 0 , H ; +: >mark ( -- sys ) T here 0 , H ; X has? abranch [IF] : branchoffset ( src dest -- ) drop ;