home *** CD-ROM | disk | FTP | other *** search
-
- If (vseti vector index expression) gets open coded by the compiler,
- the resulting value is the value of index, not the value of expression.
- This also holds for vseti-byte and vseti-word.
-
- The problem is in d_vset in vector.l. The code which builds the return
- value for immediate vectors assumes that the value of expression is in
- index-reg, but it never gets put there.
-
- One solution would be to change the lines
-
- (if g-loc
- then (if (eq type 'byte)
-
- (occuring about 3/4 of the way through d_vset) to
- (if g-loc
- then (setq temp (cadr (assq type '((byte cvtbl)
- (word cvtwl)
- (long movl)))))
- (e-write3 temp vect-val index-reg)
-
- (if (eq type 'byte)
-
- Mark Bromley
- bromley@cornell
-
-
-