Changeset 16182


Ignore:
Timestamp:
Aug 31, 2014, 9:27:15 PM (7 years ago)
Author:
gb
Message:

ARM2-1D-VSET: preserve unboxed result so it isn't clobbered when type-dispatching. Fixes ticket:1223 in the trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/ARM/arm2.lisp

    r16177 r16182  
    26032603                                                    index unscaled-idx
    26042604                                                    value (arm2-target-reg-for-aset vreg type-keyword)))))
     2605          (let* ((*available-backend-imm-temps* *available-backend-imm-temps*)
     2606                 (value (if (eql (hard-regspec-class result-reg)
     2607                                 hard-reg-class-gpr)
     2608                          (hard-regspec-value result-reg))))
     2609            (when (and value (logbitp value *available-backend-imm-temps*))
     2610              (setq *available-backend-imm-temps* (bitclr value *available-backend-imm-temps*)))
    26052611        (with-crf-target () crf
    26062612          (! set-z-if-vector-header crf src)
     
    26222628
    26232629
    2624         (arm2-vset1 seg vreg xfer type-keyword src unscaled-idx index-known-fixnum result-reg (arm2-unboxed-reg-for-aset seg type-keyword result-reg safe constval) constval needs-memoization)))))
     2630        (arm2-vset1 seg vreg xfer type-keyword src unscaled-idx index-known-fixnum result-reg (arm2-unboxed-reg-for-aset seg type-keyword result-reg safe constval) constval needs-memoization))))))
    26252631
    26262632
Note: See TracChangeset for help on using the changeset viewer.