Changeset 16458


Ignore:
Timestamp:
Jul 10, 2015, 1:38:38 AM (4 years ago)
Author:
gb
Message:

redefine :late vinsn attribute. use it for nfp spilling as well. (safe in old backend ?)

Location:
branches/lscan/source/compiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/lscan/source/compiler/X86/X8664/x8664-vinsns.lisp

    r16456 r16458  
    624624
    625625       
    626 (define-x8664-vinsn (popj :lispcontext :pop :vsp  :jumpLR)
     626(define-x8664-vinsn (popj :lispcontext :pop :vsp  :lrrestore :jumpLR)
    627627    (()
    628628     ())
     
    630630  (ret))
    631631
    632 (define-x8664-vinsn (popj-via-jump :lispcontext :pop :vsp  :jumpLR)
     632(define-x8664-vinsn (popj-via-jump :lispcontext :pop :vsp  :lrrestore  :jumpLR)
    633633    (()
    634634     ((lab :label)))
     
    11331133  )
    11341134
    1135 (define-x8664-vinsn (spill :late) (()
     1135(define-x8664-vinsn (spill ) (()
    11361136                           ((src :lisp)
    11371137                            (slot :stack-offset)))
    11381138  (movq (:%q src) (:@ (:apply - (:apply ash (:apply 1+ slot) 3)) (:%q x8664::rbp))))
    11391139
    1140 (define-x8664-vinsn (spill-natural :nfp :set) (()
     1140(define-x8664-vinsn (spill-natural :late :nfp :set) (()
    11411141                                                        ((val :u64)
    11421142                                                         (offset :u16const)
     
    11481148
    11491149
    1150 (define-x8664-vinsn (spill-single-float :nfp :set) (()
     1150(define-x8664-vinsn (spill-single-float :late :nfp :set) (()
    11511151                                                        ((val :single-float)
    11521152                                                         (offset :u16const)
     
    11581158
    11591159
    1160 (define-x8664-vinsn (spill-double-float :nfp :set) (()
     1160(define-x8664-vinsn (spill-double-float :late :nfp :set) (()
    11611161                                            ((val :double-float)
    11621162                                             (offset :u16const)
     
    11681168
    11691169
    1170 (define-x8664-vinsn (spill-complex-single-float :nfp :set) (()
     1170(define-x8664-vinsn (spill-complex-single-float :late :nfp :set) (()
    11711171                                                   ((val :complex-single-float)
    11721172                                                    (offset :u16const)
     
    11751175  (movq (:%xmm val) (:@ (:apply + 16 offset) (:%q x8664::temp5))))
    11761176
    1177 (define-x8664-vinsn (spill-complex-double-float :nfp :set) (()
     1177(define-x8664-vinsn (spill-complex-double-float :late :nfp :set) (()
    11781178                                                                ((val :complex-double-float)
    11791179                                                                 (offset :u16const)))
     
    26352635
    26362636
    2637 (define-x8664-vinsn (reload-natural :nfp :ref) (((val :u64))
     2637(define-x8664-vinsn (reload-natural :late :nfp :ref) (((val :u64))
    26382638                                                       ((offset :u16const)))
    26392639  (movq (:rcontext x8664::tcr.nfp) (:%q x8664::temp5))
     
    26432643
    26442644
    2645 (define-x8664-vinsn (reload-double-float :nfp :ref) (((val :double-float))
     2645(define-x8664-vinsn (reload-double-float :late :nfp :ref) (((val :double-float))
    26462646                                                       ((offset :u16const)))
    26472647  (movq (:rcontext x8664::tcr.nfp) (:%q x8664::temp5))
     
    26542654
    26552655
    2656 (define-x8664-vinsn (reload-single-float :nfp :ref) (((val :single-float))
     2656(define-x8664-vinsn (reload-single-float :late :nfp :ref) (((val :single-float))
    26572657                                           ((offset :u16const)
    26582658                                            ))
     
    26632663
    26642664
    2665 (define-x8664-vinsn (reload-complex-single-float :nfp :ref) (((val :complex-single-float))
     2665(define-x8664-vinsn (reload-complex-single-float :late :nfp :ref) (((val :complex-single-float))
    26662666                                                               ((offset :u16const)
    26672667                                                                (nfp :imm)))
     
    26722672
    26732673
    2674 (define-x8664-vinsn (reload-complex-double-float :nfp :ref) (((val :complex-double-float))
     2674(define-x8664-vinsn (reload-complex-double-float :late :nfp :ref) (((val :complex-double-float))
    26752675                                                               ((offset :u16const)
    26762676                                                                ))
  • branches/lscan/source/compiler/vinsn.lisp

    r16456 r16458  
    277277    :branch                             ; a conditional branch
    278278    :call                               ; a jump that returns
    279     :align                              ; aligns FOLLOWING label
     279    :align                              ; :
    280280    :subprim                            ; first argument is a subprim address
    281281    :jumpLR                             ; Jumps to the LR, possibly stopping off at a function along the way.
    282282    :extended-call                      ; extend call interval
    283     :late                               ; suppress ref/def tracking
     283    :lrrestore                               ; suppress ref/def tracking
    284284    :lispcontext                        ; references lisp frame LOC-PC, FN, and entry VSP
    285285    :node                               ; saves/restores a node value in stack-like memory
    286286    :word                               ; saves/restores an unboxed word in stack-like memory
    287     :doubleword                         ; saves/restores an unboxed doubleword (fp-reg) in stack-like memory
     287    :late
    288288    :vsp                                ; uses the vsp to save/restore
    289289    :tsp                                ; uses the tsp to save/restore
     
    295295    :set                                ; sets memory
    296296    :uses-frame-pointer                 ; uses frame pointer
    297     :needs=frame-pointer                ; needs to use frame pointer
     297    :needs-frame-pointer                ; needs to use frame pointer
    298298    :jump-unknown                       ; Jumps, but we don't know where ...
    299299    :constant-ref
Note: See TracChangeset for help on using the changeset viewer.