Ignore:
Timestamp:
Feb 4, 2008, 9:16:20 PM (13 years ago)
Author:
mb
Message:

Refactor x862-compile to test for debug-info only once.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/compiler/X86/x862.lisp

    r8421 r8423  
    536536                          (instruction (x86::make-x86-instruction))
    537537                          (end-code-tag (gensym))
    538                           debug-info)
     538                          debug-info
     539                          debug-info-p)
    539540                     (make-x86-lap-label end-code-tag)
    540541                     (x86-lap-directive frag-list :long `(ash (+ (- (:^ ,end-code-tag ) 8)
     
    591592                                 (and *compiler-record-source* *definition-source-note*)
    592593                                 *x862-recorded-symbols*
    593                                  (and *compiler-record-source* *x862-emitted-source-notes* *definition-source-note*))
    594                          (x86-lap-directive frag-list :quad 0))
     594                                 (and *compiler-record-source*
     595                                      *x862-emitted-source-notes*
     596                                      *definition-source-note*))
     597                         (x86-lap-directive frag-list :quad 0)
     598                         (setf debug-info-p t))
    595599                       (when fname
    596600                         (x86-lap-directive frag-list :quad 0))
     
    600604                       (fill-for-alignment frag-list)
    601605                       (x862-lap-process-regsave-info frag-list regsave-label regsave-mask regsave-addr)
    602                        (setf debug-info
    603                              (nconc (copy-list (afunc-lfun-info afunc))
    604                                     (when lambda-form
    605                                       (list 'function-debugging-info lambda-form))
    606                                     (when (and *compiler-record-source* *definition-source-note*)
    607                                       (list 'function-source-note
    608                                             (source-note-to-list *definition-source-note* :form nil :children nil)))
    609                                     (when *x862-recorded-symbols*
    610                                       (list 'function-symbol-map *x862-recorded-symbols*))
    611                                     (when (and *compiler-record-source*
    612                                                *x862-emitted-source-notes*
    613                                                *definition-source-note*)
    614                                       (list 'pc-source-map
    615                                             (x862-generate-pc-source-map *definition-source-note*
    616                                                                          *x862-emitted-source-notes*)))))
    617                        (when debug-info
    618                          (setq bits (logior (ash 1 $lfbits-info-bit) bits)))
     606                       (when debug-info-p
     607                         (setf debug-info
     608                               (nconc (copy-list (afunc-lfun-info afunc))
     609                                      (when lambda-form
     610                                        (list 'function-debugging-info lambda-form))
     611                                      (when (and *compiler-record-source* *definition-source-note*)
     612                                        (list 'function-source-note
     613                                              (source-note-to-list *definition-source-note* :form nil :children nil)))
     614                                      (when *x862-recorded-symbols*
     615                                        (list 'function-symbol-map (x862-digest-symbols)))
     616                                      (when (and *compiler-record-source*
     617                                                 *x862-emitted-source-notes*
     618                                                 *definition-source-note*)
     619                                        (list 'pc-source-map
     620                                              (x862-generate-pc-source-map *definition-source-note* *x862-emitted-source-notes*)))))
     621                         (setf bits (logior (ash 1 $lfbits-info-bit) bits)))
    619622                       (unless (or fname lambda-form *x862-recorded-symbols*)
    620623                         (setq bits (logior (ash 1 $lfbits-noname-bit) bits)))
     
    626629                               (cross-create-x86-function fname frag-list *x862-constant-alist* bits debug-info))
    627630                             #-x86-target
    628                              (cross-create-x86-function fname frag-list *x862-constant-alist* bits debug-info))
    629                        (x862-digest-symbols))))))
     631                             (cross-create-x86-function fname frag-list *x862-constant-alist* bits debug-info)))))))
    630632          (backend-remove-labels))))
    631633    afunc))
Note: See TracChangeset for help on using the changeset viewer.