Changeset 13538


Ignore:
Timestamp:
Mar 16, 2010, 8:33:11 PM (9 years ago)
Author:
rme
Message:

Push things around a bit in x862-vset1 to localize use of
with-addtional-imm-reg.

File:
1 edited

Legend:

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

    r13469 r13538  
    24002400               (progn
    24012401                 (if index-known-fixnum
    2402                    (x862-absolute-natural seg unscaled-idx nil (+ (arch::target-misc-data-offset arch) (ash index-known-fixnum *x862-target-node-shift*))))
     2402                   (x862-lri seg unscaled-idx (ash index-known-fixnum *x862-target-node-shift*)))
    24032403                 (if (typep constval '(signed-byte 32))
    24042404                   (! misc-set-immediate-node constval src unscaled-idx)
     
    24622462                            (! misc-set-u32 unboxed-val-reg src scaled-idx)))))))))
    24632463               (is-16-bit
    2464                 (with-additional-imm-reg (src unscaled-idx val-reg)
    2465                   (with-imm-target (unboxed-val-reg) scaled-idx
    2466                     (if (and index-known-fixnum
    2467                              (<= index-known-fixnum
    2468                                  (arch::target-max-16-bit-constant-index arch)))
    2469                       (if is-signed
    2470                         (! misc-set-c-s16 unboxed-val-reg src index-known-fixnum)
    2471                         (! misc-set-c-u16 unboxed-val-reg src index-known-fixnum))
    2472                       (progn
     2464                (if (and index-known-fixnum
     2465                         (<= index-known-fixnum
     2466                             (arch::target-max-16-bit-constant-index arch)))
     2467                  (if is-signed
     2468                    (! misc-set-c-s16 unboxed-val-reg src index-known-fixnum)
     2469                    (! misc-set-c-u16 unboxed-val-reg src index-known-fixnum))
     2470                  (progn
     2471                    (with-additional-imm-reg (src unscaled-idx val-reg)
     2472                      (with-imm-target (unboxed-val-reg) scaled-idx
    24732473                        (if index-known-fixnum
    24742474                          (x862-lri seg scaled-idx (ash index-known-fixnum 1))
     
    24782478                          (! misc-set-u16 unboxed-val-reg src scaled-idx)))))))
    24792479               (is-8-bit
    2480                 (with-additional-imm-reg (src unscaled-idx val-reg)
    2481                   (with-imm-target (unboxed-val-reg) scaled-idx
    2482                     (if (and index-known-fixnum
    2483                              (<= index-known-fixnum
    2484                                  (arch::target-max-8-bit-constant-index arch)))
    2485                       (if is-signed
    2486                         (! misc-set-c-s8 unboxed-val-reg src index-known-fixnum)
    2487                         (! misc-set-c-u8 unboxed-val-reg src index-known-fixnum))
    2488                       (progn
     2480                (if (and index-known-fixnum
     2481                         (<= index-known-fixnum
     2482                             (arch::target-max-8-bit-constant-index arch)))
     2483                  (if is-signed
     2484                    (! misc-set-c-s8 unboxed-val-reg src index-known-fixnum)
     2485                    (! misc-set-c-u8 unboxed-val-reg src index-known-fixnum))
     2486                  (progn
     2487                    (with-additional-imm-reg (src unscaled-idx val-reg)
     2488                      (with-imm-target (unboxed-val-reg) scaled-idx
    24892489                        (if index-known-fixnum
    24902490                          (x862-lri seg scaled-idx index-known-fixnum)
     
    24942494                          (! misc-set-u8 unboxed-val-reg src scaled-idx)))))))
    24952495               (is-1-bit
    2496                 (with-additional-imm-reg (src unscaled-idx val-reg)
    2497                   (with-imm-target (unboxed-val-reg) scaled-idx
    2498                     (if (and index-known-fixnum
    2499                              (<= index-known-fixnum (arch::target-max-1-bit-constant-index arch)))
    2500                       (if constval
    2501                         (if (zerop constval)
    2502                           (! set-constant-bit-to-zero src index-known-fixnum)
    2503                           (! set-constant-bit-to-one src index-known-fixnum))
    2504                         (progn
    2505                           (! set-constant-bit-to-variable-value src index-known-fixnum val-reg)))
    2506                       (progn
     2496                (if (and index-known-fixnum
     2497                         (<= index-known-fixnum (arch::target-max-1-bit-constant-index arch)))
     2498                  (if constval
     2499                    (if (zerop constval)
     2500                      (! set-constant-bit-to-zero src index-known-fixnum)
     2501                      (! set-constant-bit-to-one src index-known-fixnum))
     2502                    (! set-constant-bit-to-variable-value src index-known-fixnum val-reg))
     2503                  (progn
     2504                    (with-additional-imm-reg (src unscaled-idx val-reg)
     2505                      (with-imm-target (unboxed-val-reg) scaled-idx
    25072506                        (if index-known-fixnum
    25082507                          (x862-lri seg scaled-idx index-known-fixnum)
     
    25122511                            (! nset-variable-bit-to-zero src scaled-idx)
    25132512                            (! nset-variable-bit-to-one src scaled-idx))
    2514                           (progn
    2515                             (! nset-variable-bit-to-variable-value src scaled-idx val-reg)))))))))))
     2513                          (! nset-variable-bit-to-variable-value src scaled-idx val-reg))))))))))
    25162514      (when (and vreg val-reg) (<- val-reg))
    25172515      (^))))
Note: See TracChangeset for help on using the changeset viewer.