Changeset 14457


Ignore:
Timestamp:
Nov 25, 2010, 1:09:37 AM (9 years ago)
Author:
rme
Message:

Explicitly list x8664::allocptr (aka temp0) as a temporary in the cons
vinsn.

Without this, the compiler won't realize that temp0 gets clobbered.

File:
1 edited

Legend:

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

    r14374 r14457  
    959959(define-x8664-vinsn cons (((dest :lisp))
    960960                          ((car :lisp)
    961                            (cdr :lisp)))
     961                           (cdr :lisp))
     962                          ((allocptr (:lisp #.x8664::allocptr))))
    962963  (subq (:$b (- x8664::cons.size x8664::fulltag-cons)) (:rcontext x8664::tcr.save-allocptr))
    963   (movq (:rcontext x8664::tcr.save-allocptr) (:%q x8664::allocptr))
    964   (rcmpq (:%q x8664::allocptr) (:rcontext x8664::tcr.save-allocbase))
     964  (movq (:rcontext x8664::tcr.save-allocptr) (:%q allocptr))
     965  (rcmpq (:%q allocptr) (:rcontext x8664::tcr.save-allocbase))
    965966  (:byte #x77) (:byte #x02) ;(ja :no-trap)
    966967  (uuo-alloc)
    967968  :no-trap
    968969  (andb (:$b (lognot x8664::fulltagmask)) (:rcontext x8664::tcr.save-allocptr))
    969   (movq (:%q car) (:@ x8664::cons.car (:%q x8664::allocptr)))
    970   (movq (:%q cdr) (:@ x8664::cons.cdr (:%q x8664::allocptr)))
    971   (movq (:%q x8664::allocptr) (:%q dest)))
     970  (movq (:%q car) (:@ x8664::cons.car (:%q allocptr)))
     971  (movq (:%q cdr) (:@ x8664::cons.cdr (:%q allocptr)))
     972  (movq (:%q allocptr) (:%q dest)))
    972973
    973974(define-x8664-vinsn unbox-u8 (((dest :u8))
Note: See TracChangeset for help on using the changeset viewer.