Changeset 11420
- Timestamp:
- Nov 20, 2008, 6:51:45 PM (12 years ago)
- Location:
- trunk/source
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/compiler/X86/x862.lisp
r11373 r11420 4383 4383 (! make-tsp-cons result y z) 4384 4384 (setq val result))) 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4385 ((eq op (%nx1-operator %consmacptr%)) 4386 (with-imm-target () (address :address) 4387 (x862-one-targeted-reg-form seg form address) 4388 (with-node-target () node 4389 (! macptr->stack node address) 4390 (x862-open-undo $undo-x86-c-frame) 4391 (setq val node)))) 4392 ((eq op (%nx1-operator %new-ptr)) 4393 (let* ((clear-form (caddr form)) 4394 (cval (nx-constant-form-p clear-form))) 4395 (if cval 4396 (progn 4397 (x862-one-targeted-reg-form seg (%cadr form) ($ *x862-arg-z*)) 4398 (if (nx-null cval) 4399 (! make-stack-block) 4400 (! make-stack-block0))) 4401 (with-crf-target () crf 4402 (let ((stack-block-0-label (backend-get-next-label)) 4403 (done-label (backend-get-next-label)) 4404 (rval ($ *x862-arg-z*)) 4405 (rclear ($ *x862-arg-y*))) 4406 (x862-two-targeted-reg-forms seg (%cadr form) rval clear-form rclear) 4407 (! compare-to-nil crf rclear) 4408 (! cbranch-false (aref *backend-labels* stack-block-0-label) crf x86::x86-e-bits) 4409 (! make-stack-block) 4410 (-> done-label) 4411 (@ stack-block-0-label) 4412 (! make-stack-block0) 4413 (@ done-label))))) 4414 (x862-open-undo $undo-x86-c-frame) 4415 (setq val ($ *x862-arg-z*))) 4416 ((eq op (%nx1-operator make-list)) 4417 (x862-two-targeted-reg-forms seg (%cadr form) ($ *x862-arg-y*) (%caddr form) ($ *x862-arg-z*)) 4418 (x862-open-undo $undostkblk curstack) 4419 (! make-stack-list) 4420 (setq val *x862-arg-z*)) 4421 ((eq op (%nx1-operator vector)) 4422 (let* ((*x862-vstack* *x862-vstack*) 4423 (*x862-top-vstack-lcell* *x862-top-vstack-lcell*)) 4424 (x862-set-nargs seg (x862-formlist seg (%cadr form) nil)) 4425 (! make-stack-vector)) 4426 (x862-open-undo $undostkblk) 4427 (setq val *x862-arg-z*)) 4428 ((eq op (%nx1-operator %gvector)) 4429 (let* ((*x862-vstack* *x862-vstack*) 4430 (*x862-top-vstack-lcell* *x862-top-vstack-lcell*) 4431 (arglist (%cadr form))) 4432 (x862-set-nargs seg (x862-formlist seg (append (car arglist) (reverse (cadr arglist))) nil)) 4433 (! make-stack-gvector)) 4434 (x862-open-undo $undostkblk) 4435 (setq val *x862-arg-z*)) 4436 ((eq op (%nx1-operator closed-function)) 4437 (setq val (x862-make-closure seg (cadr form) t))) ; can't error 4438 ((eq op (%nx1-operator %make-uvector)) 4439 (destructuring-bind (element-count subtag &optional (init 0 init-p)) (%cdr form) 4440 (let* ((fix-subtag (acode-fixnum-form-p subtag)) 4441 (is-node (x862-target-is-node-subtag fix-subtag)) 4442 (is-imm (x862-target-is-imm-subtag fix-subtag))) 4443 (when (or is-node is-imm) 4444 (if init-p 4445 (progn 4446 (x862-three-targeted-reg-forms seg element-count 4447 (target-arch-case 4448 (:x8632 4449 ($ x8632::temp1)) 4450 (:x8664 4451 ($ x8664::arg_x))) 4452 subtag ($ *x862-arg-y*) 4453 init ($ *x862-arg-z*)) 4454 (! stack-misc-alloc-init)) 4455 (progn 4456 (x862-two-targeted-reg-forms seg element-count ($ *x862-arg-y*) subtag ($ *x862-arg-z*)) 4457 (! stack-misc-alloc))) 4458 (if is-node 4459 (x862-open-undo $undostkblk) 4460 (x862-open-undo $undo-x86-c-frame)) 4461 (setq val ($ *x862-arg-z*)))))))))) 4462 val)) 4463 4463 4464 4464 (defun x862-addrspec-to-reg (seg addrspec reg) … … 10242 10242 10243 10243 10244 10245 -
trunk/source/compiler/nx-basic.lisp
r11373 r11420 37 37 (defvar *lisp-compiler-version* 666 "I lost count.") 38 38 39 #-BOOTSTRAPPED (defvar *record-pc-mapping* nil) ;; defined in level-140 41 39 (defvar *nx-compile-time-types* nil) 42 40 (defvar *nx-proclaimed-types* nil) … … 102 100 ;; other reference) in code that's never executed. 103 101 (loop for p = parent-note then (code-note-parent-note p) 104 when (null p) 105 return t 102 when (null p) return t 106 103 when (code-note-source-note p) 107 108 109 110 111 112 104 return (eq (loop for n = source-note then s 105 as s = (source-note-source n) 106 unless (source-note-p s) return n) 107 (loop for n = (code-note-source-note p) then s 108 as s = (source-note-source n) 109 unless (source-note-p s) return n)))) 113 110 (setq source-note nil)) 114 111 (make-code-note :form form :source-note source-note :parent-note parent-note))) -
trunk/source/lib/nfcomp.lisp
r11373 r11420 45 45 ) ;eval-when (:compile-toplevel :execute) 46 46 47 ; inited in l1-init, this is for when loading into a lisp that doesn't have it yet.48 #-BOOTSTRAPPED (eval-when (compile load eval)49 (unless (boundp '*LOADING-TOPLEVEL-LOCATION*)50 (declaim (special *loading-toplevel-location*))51 (defparameter *save-source-locations* nil)))52 47 53 48 ;File compiler options. Not all of these need to be exported/documented, but … … 471 466 (signal c)))) 472 467 (multiple-value-setq (form *loading-toplevel-location*) 473 (if *fcomp-source-note-map* ;; #-BOOTSTRAPPED 474 (read-recording-source stream 475 :eofval eofval 476 :file-name *loading-file-source-file* 477 :start-offset orig-offset 478 :map *fcomp-source-note-map* 479 :save-source-text (neq *save-source-locations* :no-text)) 480 (read-recording-source stream 481 :eofval eofval 482 :file-name *loading-file-source-file* 483 :start-offset orig-offset)))))) 468 (read-recording-source stream 469 :eofval eofval 470 :file-name *loading-file-source-file* 471 :start-offset orig-offset 472 :map *fcomp-source-note-map* 473 :save-source-text (neq *save-source-locations* :no-text)))))) 484 474 (when (eq eofval form) 485 475 (require-type *loading-toplevel-location* 'null) -
trunk/source/lib/source-files.lisp
r11408 r11420 683 683 ;; Define the real record-source-file, which will be the last defn handled by the 684 684 ;; bootstrapping record-source-file, so convert all queued up data right afterwards. 685 ( when (BOUNDP '*LOADING-TOPLEVEL-LOCATION*) ;; #-BOOTSTRAPPED685 (progn 686 686 687 687 (defun record-source-file (name def-type &optional (source (or *loading-toplevel-location*
Note: See TracChangeset
for help on using the changeset viewer.