Changeset 14768


Ignore:
Timestamp:
May 1, 2011, 12:27:53 PM (9 years ago)
Author:
gb
Message:

!ALLOC-EABI-C-FRAME: can save a few instructions, since the size
of the frame is a constant.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/ARM/arm-vinsns.lisp

    r14762 r14768  
    20402040     ((n-c-args :u16const))
    20412041     ((header :u32)
    2042       (size :imm)
    20432042      (prevsp :imm)))
    2044   (mov header (:$ (:apply ash (:apply + 1 (:apply logandc2 (:apply + 4 4 1 n-c-args) 1)) arm::num-subtag-bits)))
    2045   (mov size (:lsr header (:$ (- arm::num-subtag-bits arm::word-shift))))
    2046   (orr header header (:$ arm::subtag-u32-vector))
     2043  (movw header (:$ (:apply logior (:apply ash (:apply + 1 (:apply logandc2 (:apply + 4 4 1 n-c-args) 1)) arm::num-subtag-bits) arm::subtag-u32-vector)))
    20472044  (mov prevsp sp)
    2048   (add size size (:$ arm::node-size))
    2049   (str header (:-@! sp size))
     2045  (str header (:@! sp (:$ (:apply - (:apply ash (:apply + 2 (:apply logandc2 (:apply + 4 4 1 n-c-args) 1)) arm::word-shift)))))
    20502046  (str prevsp (:@ sp (:$ 4))))
    20512047
Note: See TracChangeset for help on using the changeset viewer.