Changeset 14099 for branches


Ignore:
Timestamp:
Aug 1, 2010, 5:22:37 AM (9 years ago)
Author:
gb
Message:

Register usage in ARM2-ASET2; subprim changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/compiler/ARM/arm2.lisp

    r14080 r14099  
    448448                          (arm::*lap-labels* nil)
    449449                          (arm::*last-constant-pool-origin* nil)
    450                           (arm::*called-subprim-jmp-labels* nil)
    451450                          debug-info)
    452451                     (declare (dynamic-extent sections))
     
    16071606              (progn
    16081607                (arm2-four-targeted-reg-forms seg
    1609                                                 array ($ arm::temp0)
    1610                                                 i ($ arm::arg_x)
    1611                                                 j ($ arm::arg_y)
    1612                                                 new val-reg)
     1608                                              array ($ arm::temp0)
     1609                                              i ($ arm::arg_x)
     1610                                              j ($ arm::arg_y)
     1611                                              new val-reg)
    16131612                (values ($ arm::temp0) ($ arm::arg_x) ($ arm::arg_y) ($ arm::arg_z)))
    1614             (arm2-four-untargeted-reg-forms seg
    1615                                             array ($ arm::temp0)
    1616                                             i ($ arm::arg_x)
    1617                                             j ($ arm::arg_y)
    1618                                             new val-reg))))
     1613              (arm2-four-untargeted-reg-forms seg
     1614                                              array ($ arm::temp0)
     1615                                              i ($ arm::arg_x)
     1616                                              j ($ arm::arg_y)
     1617                                              new val-reg))))
    16191618        (let* ((*available-backend-imm-temps* *available-backend-imm-temps*))
    16201619          (when (and (= (hard-regspec-class val-reg) hard-reg-class-gpr)
     
    16241623          (when safe     
    16251624            (when (typep safe 'fixnum)
    1626               (with-node-target (src unscaled-i unscaled-j val-reg) expected
    1627                 (! lri expected
    1628                    (ash (dpb safe target::arrayH.flags-cell-subtag-byte
    1629                              (ash 1 $arh_simple_bit))
    1630                         arm::fixnumshift))
    1631                 (! trap-unless-simple-array-2 src expected)))
     1625              (let* ((*available-backend-node-temps* *available-backend-node-temps*))
     1626                (when unscaled-i
     1627                  (use-node-temp (hard-regspec-value unscaled-i)))
     1628                (when unscaled-j
     1629                  (use-node-temp (hard-regspec-value unscaled-j)))
     1630                (with-node-target (src val-reg) expected
     1631                  (! lri expected
     1632                     (ash (dpb safe target::arrayH.flags-cell-subtag-byte
     1633                               (ash 1 $arh_simple_bit))
     1634                          arm::fixnumshift))
     1635                  (! trap-unless-simple-array-2 src expected))))
    16321636            (unless i-known-fixnum
    16331637              (! trap-unless-fixnum unscaled-i))
     
    49954999        (arm2-restore-full-lisp-context seg))
    49965000      (if tail-p
    4997         (! jump-subprim subprim)
     5001        (! jump-subprim subprim ($ arm::imm0))
    49985002        (progn
    49995003          (! call-subprim subprim)
     
    59085912         (subprim
    59095913          (or idx-subprim
     5914              (compiler-bug "Isn't this code long since unused ?")
     5915              #+nil
    59105916              (case nargs
    59115917                (0 (subprim-name->offset '.SPcallbuiltin0))
     
    59165922    (when tail-p
    59175923      (arm2-restore-full-lisp-context seg))
     5924    #+nil
    59185925    (unless idx-subprim
    59195926      (! lri arm::imm0 (ash idx *arm2-target-fixnum-shift*))
     
    59215928        (arm2-set-nargs seg nargs)))
    59225929    (if tail-p
    5923       (! jump-subprim subprim)
     5930      (! jump-subprim subprim ($ arm::imm0))
    59245931      (progn
    59255932        (! call-subprim subprim)
Note: See TracChangeset for help on using the changeset viewer.