Changeset 8750


Ignore:
Timestamp:
Mar 13, 2008, 4:05:51 AM (12 years ago)
Author:
rme
Message:

Corrections to init-nclosure vinsn.

Add vinsns: syscall, set-c-arg-from-mm0 (which is a pretty big crock,
thank you very much.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp

    r8687 r8750  
    16401640(define-x8632-subprim-call-vinsn (ff-call)  .SPffcall)
    16411641
     1642(define-x8632-subprim-call-vinsn (syscall)  .SPsyscall)
     1643
    16421644(define-x8632-subprim-call-vinsn (gets64) .SPgets64)
    16431645
     
    30873089(define-x8632-vinsn init-nclosure (()
    30883090                                   ((closure :lisp)))
    3089   (movb (:$b 4) (:@ x8632::misc-data-offset (:%l closure))) ;imm word count
     3091  (movb (:$b 6) (:@ x8632::misc-data-offset (:%l closure))) ;imm word count
    30903092  (movb (:$b #xbf) (:@ (+ x8632::misc-data-offset 2) (:%l closure))) ;movl $self, %fn
    30913093  (movl (:%l closure) (:@ (+ x8632::misc-data-offset 3) (:%l closure)))
     
    30933095  (movl (:$l #x0050b425) (:@ (+ x8632::misc-data-offset 8) (:%l closure))) ;.SPcall-closure
    30943096  ;; already aligned
     3097  ;; (movl ($ 0) (:@ (+ x8632::misc-data-offset 12))) ;"end" of self-references
    30953098  (movl (:%l closure) (:@ (+ x8632::misc-data-offset 16) (:%l closure))) ;self-reference entry
    30963099  (movb (:$b x8632::function-boundary-marker) (:@ (+ x8632::misc-data-offset 20) (:%l closure))))
     
    34773480  (movl (:%l arg) (:@ (:apply + 4 (:apply ash offset 2)) (:%l temp))))
    34783481
     3482;;; This is a pretty big crock.
     3483(define-x8632-vinsn set-c-arg-from-mm0 (()
     3484                                        ((offset :u32const))
     3485                                        ((temp :imm)))
     3486  (movl (:@ (:%seg :rcontext) x8632::tcr.foreign-sp) (:%l temp))
     3487  (movd (:%mmx x8632::mm0) (:@ (:apply + 4 (:apply ash offset 2)) (:%l temp))))
     3488
    34793489(define-x8632-vinsn eep.address (((dest t))
    34803490                                 ((src (:lisp (:ne dest )))))
Note: See TracChangeset for help on using the changeset viewer.