Changeset 11276


Ignore:
Timestamp:
Oct 31, 2008, 4:12:39 AM (11 years ago)
Author:
gz
Message:

In x862-vref, if full safety, do typechecks even if don't use value (propagated from r9413). In x862-prog1, better handling for (prog1 form nil) (propagated from r9936)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/X86/x862.lisp

    r11212 r11276  
    18951895(defun x862-vref (seg vreg xfer type-keyword vector index safe)
    18961896  (with-x86-local-vinsn-macros (seg vreg xfer)
     1897    (when *x862-full-safety*
     1898      (unless vreg (setq vreg *x862-arg-z*)))
    18971899    (if (null vreg)
    18981900      (progn
     
    63286330                       (= (get-regspec-mode vreg) hard-reg-class-gpr-mode-node)))
    63296331             (first (pop forms)))
    6330         (x862-push-register seg
    6331                             (if (or node-p crf-p)
    6332                               (x862-one-untargeted-reg-form seg first *x862-arg-z*)
    6333                               (x862-one-targeted-reg-form seg first vreg)))
    6334         (dolist (form forms)
    6335           (x862-form seg nil nil form))
    6336         (if crf-p
     6332        (if (and node-p
     6333                 (nx-null (car forms))
     6334                 (null (cdr forms)))
     6335          (x862-form seg vreg xfer first)
    63376336          (progn
    6338             (x862-vpop-register seg *x862-arg-z*)
    6339             (<- *x862-arg-z*))
    6340           (x862-pop-register seg vreg))
    6341         (^)))))
     6337            (x862-push-register seg
     6338                                (if (or node-p crf-p)
     6339                                  (x862-one-untargeted-reg-form seg first *x862-arg-z*)
     6340                                  (x862-one-targeted-reg-form seg first vreg)))
     6341            (dolist (form forms)
     6342              (x862-form seg nil nil form))
     6343            (if crf-p
     6344              (progn
     6345                (x862-vpop-register seg *x862-arg-z*)
     6346                (<- *x862-arg-z*))
     6347              (x862-pop-register seg vreg))
     6348            (^)))))))
    63426349
    63436350(defx862 x862-free-reference free-reference (seg vreg xfer sym)
Note: See TracChangeset for help on using the changeset viewer.