Changeset 15380


Ignore:
Timestamp:
May 25, 2012, 4:52:43 AM (13 years ago)
Author:
Gary Byers
Message:

In various things that do vector reference/assignment, reject negative
constant indices. (Vinsns may not be consistent about whether constant
indices are signed or unsigned, and the error may not be intelligible
if constraints aren't met.)

File:
1 edited

Legend:

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

    r15353 r15380  
    20142014             (unscaled-idx nil)
    20152015             (src nil))
     2016        (when index-known-fixnum
     2017          (unless (>= index-known-fixnum 0)
     2018            (setq index-known-fixnum nil)))
    20162019        (if (or safe (not index-known-fixnum))
    20172020          (multiple-value-setq (src unscaled-idx)
     
    22862289           (src nil)
    22872290           (unscaled-idx nil))
     2291      (when (and index-known-fixnum (< index-known-fixnum 0))
     2292        (setq index-known-fixnum nil))
    22882293      (with-imm-target () (target :natural)
    22892294        (if (or safe (not index-known-fixnum))
     
    27192724           (needs-memoization (and is-node (x862-acode-needs-memoization value)))
    27202725           (index-known-fixnum (acode-fixnum-form-p index)))
     2726      (when (and index-known-fixnum (< index-known-fixnum 0))
     2727        (setq index-known-fixnum nil))
    27212728      (let* ((src (target-arch-case
    27222729                   (:x8632 ($ x8632::temp0))
Note: See TracChangeset for help on using the changeset viewer.