#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/toplev.scm,v 4.27 1990/04/03 04:50:30 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/toplev.scm,v 4.28 1990/05/03 15:03:49 jinx Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
MIT in each case. |#
;;;; Compiler Top Level
+;;; package: (compiler top-level)
(declare (usual-integrations))
\f
(define compiler:abort-handled? false)
(define compiler:abort-continuation)
\f
-;;; Example of `lap->code' usage:
+;;; Example of `lap->code' usage (MC68020):
#|
(define bar
(scode-eval
(lap->code
'start
- `((pea (@pcr proc))
+ `((entry-point start)
+ (dc uw #xffff)
+ (block-offset start)
+ (label start)
+ (pea (@pcr proc))
(or b (& ,(* (microcode-type 'compiled-entry) 4)) (@a 7))
(mov l (@a+ 7) (@ao 6 8))
(and b (& #x3) (@a 7))
(if (not (procedure-continuation? procedure))
(begin
(set-procedure-free-callees! procedure '())
- (set-procedure-free-callers! procedure '())
- (set-procedure-variables! procedure '()))))
+ (set-procedure-free-callers! procedure '()))))
*procedures*)))))
(define (phase/setup-block-types)
(compiler-subphase "Block Type Determination"
(lambda ()
(setup-block-types! *root-block*)
+ (if (not compiler:preserve-data-structures?)
+ (for-each (lambda (procedure)
+ (if (not (procedure-continuation? procedure))
+ (set-procedure-variables! procedure '())))
+ *procedures*))
(setup-closure-contexts! *root-expression* *procedures*))))
(define (phase/compute-call-graph)