[openfirmware] [commit] r2122 - cpu/arm

repository service svn at openfirmware.info
Wed Jan 19 23:48:49 CET 2011


Author: wmb
Date: Wed Jan 19 23:48:49 2011
New Revision: 2122
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2122

Log:
Copied ppc/fixvoc.fth to arm/fixvoc.fth to eliminate ARM build dependency on PPC subtree.

Added:
   cpu/arm/fixvoc.fth
Modified:
   cpu/arm/kernel.bth

Added: cpu/arm/fixvoc.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/fixvoc.fth	Wed Jan 19 23:48:49 2011	(r2122)
@@ -0,0 +1,52 @@
+purpose: Fixup vocabularies at the end of kernel metacompilation
+\ See license at end of file
+
+only forth meta also forth also definitions
+\ Nasty kludge to resolve the to pointer to the does> clause of vocabulary
+\ within "forth".  The problem is that the code field of "forth" contains
+\ a call instruction to the does> clause of vocabulary.  This call is a 
+\ forward reference which cannot be resolved in the same way as compiled
+\ addresses.
+
+: used-t  ( definer-acf child-acf -- )
+   [ also meta ] token!-t [ previous ]
+;
+
+: fix-vocabularies  ( -- )
+   [""] <vocabulary>  also symbols  find   previous  ( acf true | str false )
+   0= abort" Can't find <vocabulary> in symbols"
+   dup resolution@ >r               ( acf )  ( Return stack: <vocabulary>-adr )
+   dup first-occurrence@                     ( acf occurrence )
+   \ Don't let fixall muck with this entry later
+   0 rot >first-occurrence !		     ( occurrence )
+   begin  another-occurrence?  while         ( occurrence )
+      dup [ meta ] token at -t [ forth ] swap   ( next-occurrence occurrence )
+      \ Calculate the longword offset to the vocabulary does> clause
+      r@ swap used-t
+   repeat
+   r> drop
+;
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2007 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Modified: cpu/arm/kernel.bth
==============================================================================
--- cpu/arm/kernel.bth	Wed Jan 19 23:47:46 2011	(r2121)
+++ cpu/arm/kernel.bth	Wed Jan 19 23:48:49 2011	(r2122)
@@ -59,7 +59,7 @@
 \ : : : lastacf .name cr ;
 fload ${BP}/cpu/arm/target.fth
 fload ${BP}/forth/kernel/forward.fth
-fload ${BP}/cpu/ppc/fixvoc.fth
+fload ${BP}/cpu/arm/fixvoc.fth
 fload ${BP}/forth/kernel/metacompile.fth
 
 fload ${BP}/cpu/arm/metarel.fth



More information about the openfirmware mailing list