Changeset 10367


Ignore:
Timestamp:
Aug 6, 2008, 9:00:41 AM (11 years ago)
Author:
gb
Message:

Define $DECL_FULL_SAFETY. Set that bit in p2 decls when (SAFETY 3) is
in effect. Bind *X862-FULL-SAFETY* in x86 backend based on setting
of that bit.

Location:
trunk/source/compiler
Files:
2 edited

Legend:

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

    r10333 r10367  
    7373          (*x862-reckless* *x862-reckless*)
    7474          (*x862-open-code-inline* *x862-open-code-inline*)
    75           (*x862-trust-declarations* *x862-trust-declarations*))
     75          (*x862-trust-declarations* *x862-trust-declarations*)
     76          (*x862-full-safety* *x862-full-safety*))
    7677     (x862-decls ,declsform)
    7778     ,@body))
     
    190191(defvar *x862-tail-allow* t)
    191192(defvar *x862-reckless* nil)
     193(defvar *x862-full-safety* nil)
    192194(defvar *x862-trust-declarations* nil)
    193195(defvar *x862-entry-vstack* nil)
     
    584586           (*x862-tail-allow* t)
    585587           (*x862-reckless* nil)
     588           (*x862-full-safety* nil)
    586589           (*x862-trust-declarations* t)
    587590           (*x862-entry-vstack* nil)
     
    821824      (setq *x862-tail-allow* (neq 0 (%ilogand2 $decl_tailcalls decls))
    822825            *x862-open-code-inline* (neq 0 (%ilogand2 $decl_opencodeinline decls))
     826            *x862-full-safety* (neq 0 (%ilogand2 $decl_full_safety decls))
    823827            *x862-reckless* (neq 0 (%ilogand2 $decl_unsafe decls))
    824828            *x862-trust-declarations* (neq 0 (%ilogand2 $decl_trustdecls decls))))))
     
    66886692    (^)))
    66896693
    6690 #+not-yet
     6694#+notyet
    66916695(defx862 x862-%valid-code-char %valid-code-char (seg vreg xfer c)
    6692   (let* ((reg (x862-one-untargeted-reg-form seg c *x862-arg-z*)))
    6693     ;; Typecheck even if result unused.
    6694     (unless *x862-reckless* (! require-char-code reg))
     6696  (let* ((reg (x862-one-untargeted-reg-form seg c x8664::arg_z)))
     6697    (when *x862-full-safety* (! require-char-code reg))
    66956698    (if vreg
    66966699      (ensuring-node-target (target vreg)
  • trunk/source/compiler/nx0.lisp

    r10318 r10367  
    705705      (unless (nx-allow-register-allocation env)
    706706        (nx-inhibit-register-allocation))
    707       (setq *nx-new-p2decls*
    708             (%ilogior
    709              (if (nx-tailcalls env) $decl_tailcalls 0)
    710              (if (nx-open-code-in-line env) $decl_opencodeinline 0)
    711              (if (nx-inhibit-safety-checking env) $decl_unsafe 0)
    712              (if (nx-trust-declarations env) $decl_trustdecls 0))))))
     707            (setq *nx-new-p2decls*
     708            (if (eql (safety-optimize-quantity env) 3)
     709              (logior $decl_full_safety
     710                      (if (nx-tailcalls env) $decl_tailcalls 0))
     711              (%ilogior
     712               (if (nx-tailcalls env) $decl_tailcalls 0)
     713               (if (nx-open-code-in-line env) $decl_opencodeinline 0)
     714               (if (nx-inhibit-safety-checking env) $decl_unsafe 0)
     715               (if (nx-trust-declarations env) $decl_trustdecls 0)))))))
    713716
    714717#|     
Note: See TracChangeset for help on using the changeset viewer.