Changeset 12087


Ignore:
Timestamp:
May 19, 2009, 5:50:04 AM (10 years ago)
Author:
gb
Message:

Sync with trunk.

Location:
release/1.3/source/compiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/1.3/source/compiler/PPC/ppc2.lisp

    r11713 r12087  
    630630(defun ppc2-digest-symbols ()
    631631  (when *ppc2-recorded-symbols*
    632     (let* ((symlist *ppc2-recorded-symbols*)
     632    (setq *ppc2-recorded-symbols* (nx2-recorded-symbols-in-arglist-order *ppc2-recorded-symbols* *ppc2-cur-afunc*))
     633 (let* ((symlist *ppc2-recorded-symbols*)
    633634           (len (length symlist))
    634635           (syms (make-array len))
     
    27962797;;; would vpop the first argument out of line.)
    27972798(defun ppc2-two-targeted-reg-forms (seg aform areg bform breg)
    2798   (unless (typep areg 'lreg)
    2799     (warn "~s is not an lreg (1/2)" areg))
    2800   (unless (typep breg 'lreg)
    2801     (warn "~s is not an lreg (2/2)" breg))
    28022799  (let* ((avar (ppc2-lexical-reference-p aform))
    2803          (atriv (ppc2-trivial-p bform))
     2800         (atriv (and (ppc2-trivial-p bform) (nx2-node-gpr-p breg)))
    28042801         (aconst (and (not atriv) (or (ppc-side-effect-free-form-p aform)
    28052802                                      (if avar (ppc2-var-not-set-by-form-p avar bform)))))
     
    28232820           (adest areg)
    28242821           (bdest breg)
    2825            (atriv (ppc2-trivial-p bform))
     2822           (atriv (and (ppc2-trivial-p bform) (nx2-node-gpr-p breg)))
    28262823           (aconst (and (not atriv) (or (ppc-side-effect-free-form-p aform)
    28272824                                        (if avar (ppc2-var-not-set-by-form-p avar bform)))))
     
    28412838
    28422839(defun ppc2-four-targeted-reg-forms (seg aform areg bform breg cform creg dform dreg)
    2843   (unless (typep areg 'lreg)
    2844     (warn "~s is not an lreg (1/4)" areg))
    2845   (unless (typep breg 'lreg)
    2846     (warn "~s is not an lreg (2/4)" breg))
    2847   (unless (typep creg 'lreg)
    2848     (warn "~s is not an lreg (3/4)" creg))
    2849   (unless (typep dreg 'lreg)
    2850     (warn "~s is not an lreg (4/4)" dreg)) 
    2851   (let* ((atriv (or (null aform)
     2840  (let* ((bnode (nx2-node-gpr-p breg))
     2841         (cnode (nx2-node-gpr-p creg))
     2842         (dnode (nx2-node-gpr-p dreg))
     2843         (atriv (or (null aform)
    28522844                    (and (ppc2-trivial-p bform)
    28532845                         (ppc2-trivial-p cform)
    2854                          (ppc2-trivial-p dform))))
     2846                         (ppc2-trivial-p dform)
     2847                         bnode
     2848                         cnode
     2849                         dnode)))
    28552850         (btriv (or (null bform)
    28562851                    (and (ppc2-trivial-p cform)
    2857                          (ppc2-trivial-p dform))))
     2852                         (ppc2-trivial-p dform)
     2853                         cnode
     2854                         dnode)))
    28582855         (ctriv (or (null cform)
    2859                     (ppc2-trivial-p dform)))
     2856                    (and (ppc2-trivial-p dform) dnode)))
    28602857         
    28612858         (aconst (and (not atriv)
     
    29082905
    29092906(defun ppc2-three-targeted-reg-forms (seg aform areg bform breg cform creg)
    2910   (unless (typep areg 'lreg)
    2911     (warn "~s is not an lreg (1/3)" areg))
    2912   (unless (typep breg 'lreg)
    2913     (warn "~s is not an lreg (2/3)" breg))
    2914   (unless (typep creg 'lreg)
    2915     (warn "~s is not an lreg (3/3)" creg))
    2916   (let* ((atriv (or (null aform)
     2907  (let* ((bnode (nx2-node-gpr-p breg))
     2908         (cnode (nx2-node-gpr-p creg))
     2909         (atriv (or (null aform)
    29172910                    (and (ppc2-trivial-p bform)
    2918                          (ppc2-trivial-p cform))))
     2911                         (ppc2-trivial-p cform)
     2912                         bnode
     2913                         cnode)))
    29192914         (btriv (or (null bform)
    2920                     (ppc2-trivial-p cform)))
     2915                    (and (ppc2-trivial-p cform)
     2916                         cnode)))
    29212917         (aconst (and (not atriv)
    29222918                      (or (ppc-side-effect-free-form-p aform)
     
    29532949(defun ppc2-three-untargeted-reg-forms (seg aform areg bform breg cform creg)
    29542950  (with-ppc-local-vinsn-macros (seg)
    2955     (let* ((atriv (or (null aform)
     2951    (let* ((bnode (nx2-node-gpr-p breg))
     2952           (cnode (nx2-node-gpr-p creg))
     2953           (atriv (or (null aform)
    29562954                      (and (ppc2-trivial-p bform)
    2957                            (ppc2-trivial-p cform))))
     2955                           (ppc2-trivial-p cform)
     2956                           bnode
     2957                           cnode)))
    29582958           (btriv (or (null bform)
    2959                       (ppc2-trivial-p cform)))
     2959                      (and (ppc2-trivial-p cform)
     2960                           cnode)))
    29602961           (aconst (and (not atriv)
    29612962                        (or (ppc-side-effect-free-form-p aform)
     
    29942995
    29952996(defun ppc2-four-untargeted-reg-forms (seg aform areg bform breg cform creg dform dreg)
    2996   (let* ((atriv (or (null aform)
     2997  (let* ((bnode (nx2-node-gpr-p breg))
     2998         (cnode (nx2-node-gpr-p creg))
     2999         (dnode (nx2-node-gpr-p dreg))
     3000         (atriv (or (null aform)
    29973001                    (and (ppc2-trivial-p bform)
    29983002                         (ppc2-trivial-p cform)
    2999                          (ppc2-trivial-p dform))))
     3003                         (ppc2-trivial-p dform)
     3004                         bnode
     3005                         cnode
     3006                         dnode)))
    30003007         (btriv (or (null bform)
    30013008                    (and (ppc2-trivial-p cform)
    3002                          (ppc2-trivial-p dform))))
     3009                         (ppc2-trivial-p dform)
     3010                         cnode
     3011                         dnode)))
    30033012         (ctriv (or (null cform)
    3004                     (ppc2-trivial-p dform)))
     3013                    (and (ppc2-trivial-p dform) dnode)))
    30053014         (aconst (and (not atriv)
    30063015                      (or (ppc-side-effect-free-form-p aform)
     
    51245133                      (tail head))
    51255134                 (declare (dynamic-extent head)
    5126                           (cons (head tail)))
     5135                          (cons head tail))
    51275136                 (dolist (op operands)
    51285137                   (rplaca tail (parse-operand-form op))
     
    84928501    (! alloc-c-frame (the fixnum
    84938502                       (+ (the fixnum (length argvals))
    8494                           (the fixnnum
     8503                          (the fixnum
    84958504                            (let* ((n 0))
    84968505                              (declare (fixnum n))
     
    87198728    (! alloc-c-frame (the fixnum
    87208729                       (+ (the fixnum (length argvals))
    8721                           (the fixnnum
     8730                          (the fixnum
    87228731                            (let* ((n 0))
    87238732                              (declare (fixnum n))
  • release/1.3/source/compiler/X86/x862.lisp

    r11982 r12087  
    873873(defun x862-digest-symbols ()
    874874  (when *x862-recorded-symbols*
     875    (setq *x862-recorded-symbols* (nx2-recorded-symbols-in-arglist-order *x862-recorded-symbols* *x862-cur-afunc*))
    875876    (let* ((symlist *x862-recorded-symbols*)
    876877           (len (length symlist))
     
    32183219;;; would vpop the first argument out of line.)
    32193220(defun x862-two-targeted-reg-forms (seg aform areg bform breg)
    3220   (unless (typep areg 'lreg)
    3221     (warn "~s is not an lreg (1/2)" areg))
    3222   (unless (typep breg 'lreg)
    3223     (warn "~s is not an lreg (2/2)" breg))
    32243221  (let* ((avar (nx2-lexical-reference-p aform))
    3225          (atriv (x862-trivial-p bform))
     3222         (atriv (and (x862-trivial-p bform) (nx2-node-gpr-p breg)))
    32263223         (aconst (and (not atriv) (or (x86-side-effect-free-form-p aform)
    32273224                                      (if avar (nx2-var-not-set-by-form-p avar bform)))))
     
    32453242           (adest areg)
    32463243           (bdest breg)
    3247            (atriv (x862-trivial-p bform))
     3244           (atriv (and (x862-trivial-p bform) (nx2-node-gpr-p breg)))
    32483245           (aconst (and (not atriv) (or (x86-side-effect-free-form-p aform)
    32493246                                        (if avar (nx2-var-not-set-by-form-p avar bform)))))
     
    32633260
    32643261(defun x862-three-targeted-reg-forms (seg aform areg bform breg cform creg)
    3265   (unless (typep areg 'lreg)
    3266     (warn "~s is not an lreg (1/3)" areg))
    3267   (unless (typep breg 'lreg)
    3268     (warn "~s is not an lreg (2/3)" breg))
    3269   (unless (typep creg 'lreg)
    3270     (warn "~s is not an lreg (3/3)" creg))
    3271   (let* ((atriv (or (null aform)
     3262  (let* ((bnode (nx2-node-gpr-p breg))
     3263         (cnode (nx2-node-gpr-p creg))
     3264         (atriv (or (null aform)
    32723265                    (and (x862-trivial-p bform)
    3273                          (x862-trivial-p cform))))
     3266                         (x862-trivial-p cform)
     3267                         bnode
     3268                         cnode)))
    32743269         (btriv (or (null bform)
    3275                     (x862-trivial-p cform)))
     3270                    (and (x862-trivial-p cform)
     3271                         cnode)))
    32763272         (aconst (and (not atriv)
    32773273                      (or (x86-side-effect-free-form-p aform)
     
    33073303
    33083304(defun x862-four-targeted-reg-forms (seg aform areg bform breg cform creg dform dreg)
    3309   (unless (typep areg 'lreg)
    3310     (warn "~s is not an lreg (1/4)" areg))
    3311   (unless (typep breg 'lreg)
    3312     (warn "~s is not an lreg (2/4)" breg))
    3313   (unless (typep creg 'lreg)
    3314     (warn "~s is not an lreg (3/4)" creg))
    3315   (unless (typep dreg 'lreg)
    3316     (warn "~s is not an lreg (4/4)" dreg))
    3317   (let* ((atriv (or (null aform)
     3305  (let* ((bnode (nx2-node-gpr-p breg))
     3306         (cnode (nx2-node-gpr-p creg))
     3307         (dnode (nx2-node-gpr-p dreg))
     3308         (atriv (or (null aform)
    33183309                    (and (x862-trivial-p bform)
    33193310                         (x862-trivial-p cform)
    3320                          (x862-trivial-p dform))))
     3311                         (x862-trivial-p dform)
     3312                         bnode
     3313                         cnode
     3314                         dnode)))
    33213315         (btriv (or (null bform)
    33223316                    (and (x862-trivial-p cform)
    3323                          (x862-trivial-p dform))))
     3317                         (x862-trivial-p dform)
     3318                         cnode
     3319                         dnode)))
    33243320         (ctriv (or (null cform)
    3325                     (x862-trivial-p dform)))
     3321                    (and (x862-trivial-p dform)
     3322                         dnode)))
    33263323         (aconst (and (not atriv)
    33273324                      (or (x86-side-effect-free-form-p aform)
     
    33713368        (x862-one-targeted-reg-form seg aform areg)
    33723369        (x862-elide-pushes seg apushed (x862-pop-register seg areg))))
    3373     (values areg breg creg)))
     3370    (values areg breg creg dreg)))
    33743371
    33753372(defun x862-three-untargeted-reg-forms (seg aform areg bform breg cform creg)
    33763373  (with-x86-local-vinsn-macros (seg)
    3377     (let* ((atriv (or (null aform)
     3374    (let* ((bnode (nx2-node-gpr-p breg))
     3375           (cnode (nx2-node-gpr-p creg))
     3376           (atriv (or (null aform)
    33783377                      (and (x862-trivial-p bform)
    3379                            (x862-trivial-p cform))))
     3378                           (x862-trivial-p cform)
     3379                           bnode
     3380                           cnode)))
    33803381           (btriv (or (null bform)
    3381                       (x862-trivial-p cform)))
     3382                      (and (x862-trivial-p cform)
     3383                           cnode)))
    33823384           (aconst (and (not atriv)
    33833385                        (or (x86-side-effect-free-form-p aform)
     
    34163418
    34173419(defun x862-four-untargeted-reg-forms (seg aform areg bform breg cform creg dform dreg)
    3418   (let* ((atriv (or (null aform)
     3420  (let* ((bnode (nx2-node-gpr-p breg))
     3421         (cnode (nx2-node-gpr-p creg))
     3422         (dnode (nx2-node-gpr-p dreg))
     3423         (atriv (or (null aform)
    34193424                    (and (x862-trivial-p bform)
    34203425                         (x862-trivial-p cform)
    3421                          (x862-trivial-p dform))))
     3426                         (x862-trivial-p dform)
     3427                         bnode
     3428                         cnode
     3429                         dnode)))
    34223430         (btriv (or (null bform)
    34233431                    (and (x862-trivial-p cform)
    3424                          (x862-trivial-p dform))))
     3432                         (x862-trivial-p dform)
     3433                         cnode
     3434                         dnode)))
    34253435         (ctriv (or (null cform)
    34263436                    (x862-trivial-p dform)))
     
    58125822                      (tail head))
    58135823                 (declare (dynamic-extent head)
    5814                           (cons (head tail)))
     5824                          (cons head tail))
    58155825                 (dolist (op operands)
    58165826                   (rplaca tail (parse-operand-form op))
Note: See TracChangeset for help on using the changeset viewer.