cosmetix
[k8flk.git] / fth / flktopt.fs
blob4dc4a393a871b67467139d2d30672f5a54b72a33
1 \ FLK level 2 optimizer (target only)
3 \ Copyright (C) 1998 Lars Krueger
5 \ This file is part of FLK.
7 \ FLK is free software; you can redistribute it and/or
8 \ modify it under the terms of the GNU General Public License
9 \ as published by the Free Software Foundation; either version 2
10 \ of the License, or (at your option) any later version.
12 \ This program is distributed in the hope that it will be useful,
13 \ but WITHOUT ANY WARRANTY; without even the implied warranty of
14 \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 \ GNU General Public License for more details.
17 \ You should have received a copy of the GNU General Public License
18 \ along with this program; if not, write to the Free Software
19 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 \ $Id: flktopt.fs,v 1.3 1998/09/13 18:55:51 root Exp $
21 \ $Log: flktopt.fs,v $
22 \ Revision 1.3 1998/09/13 18:55:51 root
23 \ fixed optimizers for cf stack
25 \ Revision 1.2 1998/08/30 10:50:59 root
26 \ new optimizing algorithm
28 \ Revision 1.1 1998/07/13 18:08:54 root
29 \ Initial revision
32 opt( ''# '' CHAR- )opt: ['] 1- (_sizing) ;opt
34 opt( '' DUP '' +LOOP )opt: ( -- )
35 CFT-do (check-cs-item)
36 regalloc-reset
37 req-any
38 req-free
39 free0 pop,
40 tos0 free0 add,
41 free0 push,
42 TRUE do-state allocator-rebuild
43 (curr-cf-item) 3 CELLS + @ \ jmp-to
44 ## n-jno,
45 (resolve-leave)
46 8 ## esp add,
47 (curr-cf-item) 4 CELLS + @ ?DUP IF
48 resolve-jmp
49 THEN
50 (delete-cs-item)
51 0 2 opt-remove
52 ;opt