Changeset 16436


Ignore:
Timestamp:
Jun 28, 2015, 5:41:21 AM (4 years ago)
Author:
gb
Message:

call vinsns don't take logical-register pseudo-argumments anymore -
those were mostly decorative, and caused confusion about what got spilled
when.
something with the :call attribute should just deal with th mechanics of the
call and alignment/GC concerns, and params/results handled elsewhere.

File:
1 edited

Legend:

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

    r16432 r16436  
    11811181  (movdqu (:%xmm val) (:@ (:apply + 16 offset) (:% x8664::temp5))))
    11821182
    1183 (define-x8664-vinsn reload (((dest :lisp))
     1183(define-x8664-vinsn (reload) (((dest :lisp))
    11841184                           ((slot :stack-offset)))
    11851185 
     
    15271527  (movq (:%q header) (:@ x8664::misc-header-offset (:%q freeptr)))
    15281528  (andb (:$b (lognot x8664::fulltagmask)) (:rcontext x8664::tcr.save-allocptr))
    1529   ((:not (:pred = freeptr
     1529  ((:not (:pred eql freeptr
    15301530                (:apply %hard-regspec-value dest)))
    15311531   (movq (:%q freeptr) (:%q dest))))
     
    22282228    (jmp (:@ ,spno))))
    22292229
    2230 (define-x8664-vinsn (nthrowvalues :call :subprim) (()
    2231                                                         ((lab :label)))
    2232   (leaq (:@ (:^ lab) (:%q x8664::fn)) (:%q x8664::ra0))
     2230(define-x8664-vinsn (nthrowvalues :call :subprim) (() ())
    22332231  (jmp (:@ .SPnthrowvalues)))
    22342232
    2235 (define-x8664-vinsn (nthrow1value :call :subprim) (()
    2236                                                         ((lab :label)))
    2237   (leaq (:@ (:^ lab) (:%q x8664::fn)) (:%q x8664::ra0))
     2233(define-x8664-vinsn (nthrow1value :call :subprim) (() ())
    22382234  (jmp (:@ .SPnthrow1value)))
    22392235
     
    23062302  (ret))
    23072303
    2308 (define-x8664-vinsn (nmkcatchmv :call :subprim) (()
    2309                                                      ((lab :label))
    2310                                                      ((entry (:label 1))))
    2311   (leaq (:@ (:^ lab)  (:%q x8664::fn)) (:%q x8664::xfn))
    2312   (:talign 4)
    2313   (call (:@ .SPmkcatchmv))
    2314   :back
    2315   (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
    2316 
    2317 (define-x8664-vinsn (nmkcatch1v :call :subprim) (()
    2318                                                      ((lab :label))
    2319                                                      ((entry (:label 1))))
    2320   (leaq (:@ (:^ lab)  (:%q x8664::fn)) (:%q x8664::xfn))
    2321   (:talign 4)
    2322   (call (:@ .SPmkcatch1v))
    2323   :back
    2324   (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
    2325 
    2326 
    2327 (define-x8664-vinsn (make-simple-unwind :call :subprim) (()
    2328                                                      ((protform-lab :label)
    2329                                                       (cleanup-lab :label)))
    2330   (leaq (:@ (:^ protform-lab) (:%q x8664::fn)) (:%q x8664::ra0))
    2331   (leaq (:@ (:^ cleanup-lab)  (:%q x8664::fn)) (:%q x8664::xfn))
     2304(define-x8664-vinsn label-address (((dest :lisp))
     2305                                   ((lab :label)))
     2306 
     2307  (leaq (:@ (:^ lab)  (:%q x8664::fn)) (:%q dest)))                               
     2308
     2309
     2310(define-x8664-vinsn (mkunwind :call :subprim) (() ())
     2311  ; sic
    23322312  (jmp (:@ .SPmkunwind)))
    23332313
    2334 (define-x8664-vinsn (nmkunwind :call :subprim) (()
    2335                                                      ((protform-lab :label)
    2336                                                       (cleanup-lab :label)))
    2337   (leaq (:@ (:^ protform-lab) (:%q x8664::fn)) (:%q x8664::ra0))
    2338   (leaq (:@ (:^ cleanup-lab)  (:%q x8664::fn)) (:%q x8664::xfn))
     2314(define-x8664-vinsn (nmkunwind :call :subprim) (() ())
     2315
    23392316  (jmp (:@ .SPnmkunwind)))
    23402317
     
    23422319;;; on entry to the new mkunwind confuses the issue.
    23432320
    2344 (define-x8664-vinsn (mkunwind :call :subprim) (()
    2345                                                      ((protform-lab :label)
    2346                                                       (cleanup-lab :label)))
    2347   (leaq (:@ (:^ protform-lab) (:%q x8664::fn)) (:%q x8664::ra0))
    2348   (leaq (:@ (:^ cleanup-lab)  (:%q x8664::fn)) (:%q x8664::xfn))
    2349   (jmp (:@ .SPmkunwind)))
    23502321
    23512322(define-x8664-subprim-lea-jmp-vinsn (gvector) .SPgvector)
     
    25862557    (pushq (:$b 0)))
    25872558   ((:pred > (:apply  x8664-spill-area-needed) 5)
     2559    (uuo-error-debug-trap)
    25882560    (movl (:$l (:apply  x8664-spill-area-needed)) (:%l count))
     2561   (uuo-error-debug-trap)
    25892562    :loop
    25902563    (pushq (:$b 0))
     
    43454318(define-x8664-subprim-lea-jmp-vinsn (bind)  .SPbind)
    43464319
    4347 (define-x8664-vinsn (dpayback :call) (()
    4348                                       ((n :s16const))
    4349                                       ((temp (:u32 #.x8664::imm0))
    4350                                        (entry (:label 1))))
    4351   ((:pred > n 0)
    4352    ((:pred > n 1)
    4353     (movl (:$l n) (:%l temp))
    4354     (:talign 4)
    4355     (call (:@ .SPunbind-n)))
    4356    ((:pred = n 1)
    4357     (:talign 4)
    4358     (call (:@ .SPunbind)))
    4359    (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))) 
     4320 
    43604321
    43614322(define-x8664-subprim-jump-vinsn (tail-call-sym-gen) .SPtcallsymgen)
Note: See TracChangeset for help on using the changeset viewer.