Changeset 7114
- Timestamp:
- Aug 30, 2007, 1:50:01 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp
r7112 r7114 44 44 (movl (:@ x8632::misc-data-offset (:%l v) (:%l scaled-idx)) (:%l dest))) 45 45 46 (define-x8632-vinsn (push-misc-ref-node :push :node :vsp) 47 48 46 (define-x8632-vinsn (push-misc-ref-node :push :node :vsp) (() 47 ((v :lisp) 48 (scaled-idx :imm))) 49 49 (pushl (:@ x8632::misc-data-offset (:%l v) (:%l scaled-idx)))) 50 50 … … 180 180 (:talign x8632::fulltag-tra) 181 181 (call (:@ x8632::symbol.fcell (:% x8632::fname))) 182 (movl (:self) ( %l x8632::fn)))182 (movl (:self) (:%l x8632::fn))) 183 183 184 184 (define-x8632-vinsn set-nargs (() … … 233 233 (pushl (:%l x8632::arg_y))) 234 234 ((:pred >= min 1) 235 (pushl ( %l x8632::arg_z)))235 (pushl (:%l x8632::arg_z))) 236 236 (movl (:$l x8632::nil-value) (:%l x8632::arg_y)) 237 237 (jmp :last) … … 266 266 ((nbytes-pushed :s32const))) 267 267 (movl (:%l x8632::ebp) (:@ (:apply + nbytes-pushed x8632::node-size) (:%l x8632::esp))) 268 (leal (:@ (:apply + nbytes-pushed x8632::node-size) (:% q x8632::esp)) (:%qx8632::ebp))269 (popl (:@ x8632::node-size (:% qx8632::ebp))))268 (leal (:@ (:apply + nbytes-pushed x8632::node-size) (:%l x8632::esp)) (:%l x8632::ebp)) 269 (popl (:@ x8632::node-size (:%l x8632::ebp)))) 270 270 271 271 (define-x8632-vinsn save-lisp-context-variable-arg-count (() … … 291 291 (movzwl (:%w x8632::nargs) (:%l temp)) 292 292 (subl (:$b (* $numx8632argregs x8632::node-size)) (:%l temp)) 293 (movl (:%l x8632::ebp) (:@ x8632::node-size (:%l x8632:: rsp) (:%l temp)))293 (movl (:%l x8632::ebp) (:@ x8632::node-size (:%l x8632::esp) (:%l temp))) 294 294 (leal (:@ x8632::node-size (:%l x8632::esp) (:%l temp)) (:%l x8632::ebp)) 295 295 (popl (:@ x8632::node-size (:%l x8632::ebp)))) … … 331 331 ((frame-offset :u16const) 332 332 (cur-vsp :u16const))) 333 (pushl (:@ (:apply - (:apply + frame-offset x8632::word-size-in-bytes)) (:%l x8632:: rbp))))333 (pushl (:@ (:apply - (:apply + frame-offset x8632::word-size-in-bytes)) (:%l x8632::ebp)))) 334 334 335 335 (define-x8632-vinsn vframe-store (() … … 414 414 (movw (:%w object) (:%w tag)) 415 415 (andw (:$w x8632::fulltagmask) (:%w tag)) 416 (cmp b (:$bx8632::fulltag-cons) (:%w tag))416 (cmpw (:$w x8632::fulltag-cons) (:%w tag)) 417 417 (je.pt :ok) 418 418 (uuo-error-reg-not-list (:%l object)) … … 423 423 ((tag :u16))) 424 424 ;; check for NIL 425 (cmpl (:$l x8632::nil-value) ( %l object))425 (cmpl (:$l x8632::nil-value) (:%l object)) 426 426 (je.pn :bad) 427 427 (movw (:%w object) (:%w tag)) … … 430 430 (je.pt :ok) 431 431 :bad 432 (uuo-error-reg-not-tag (:% qobject) (:$ub x8632::fulltag-cons))432 (uuo-error-reg-not-tag (:%l object) (:$ub x8632::fulltag-cons)) 433 433 :ok) 434 434 … … 525 525 (movl (:@ x8632::misc-header-offset (:%l v)) (:%l temp)) 526 526 (andw (:$w #xff00) (:%w temp)) 527 (shr q(:$ub (- x8632::num-subtag-bits x8632::fixnumshift)) (:%l temp))528 (rcmp q(:%l idx) (:%l temp))527 (shrl (:$ub (- x8632::num-subtag-bits x8632::fixnumshift)) (:%l temp)) 528 (rcmpl (:%l idx) (:%l temp)) 529 529 (jb.pt :ok) 530 530 (uuo-error-vector-bounds (:%l idx) (:%l v)) … … 554 554 ()) 555 555 (shll (:$ub x8632::charcode-shift) (:%l src)) 556 (lea q(:@ x8632::subtag-character (:%l src)) (:%l dest)))556 (leal (:@ x8632::subtag-character (:%l src)) (:%l dest))) 557 557 558 558 (define-x8632-vinsn (load-nil :constant-ref) (((dest t)) … … 570 570 ((object :lisp))) 571 571 (movl (:%l object) (:%l tag)) 572 ((:pred <= (:apply %hard-regspec-value a) x8632::ebx)572 ((:pred <= (:apply %hard-regspec-value tag) x8632::ebx) 573 573 (andb (:$b x8632::tagmask) (:%b tag))) 574 ((:pred > (:apply %hard-regspec-value a) x8632::ebx)574 ((:pred > (:apply %hard-regspec-value tag) x8632::ebx) 575 575 (andl (:$l x8632::tagmask) (:%l tag)))) 576 576 … … 587 587 (define-x8632-vinsn extract-fulltag-fixnum (((tag :imm)) 588 588 ((object :lisp))) 589 (leal (:@ (:% qobject) 4) (:%l tag))589 (leal (:@ (:%l object) 4) (:%l tag)) 590 590 (andw (:$w (ash x8632::fulltagmask x8632::fixnumshift)) (:%w tag))) 591 591 … … 598 598 ((:pred <= (:apply %hard-regspec-value tag) x8632::ebx) 599 599 (movb (:@ x8632::misc-subtag-offset (:%l object)) (:%b tag))) 600 ((:pred > (:apply %hard-regspec-value a) x8632::ebx)600 ((:pred > (:apply %hard-regspec-value tag) x8632::ebx) 601 601 (movw (:@ x8632::misc-subtag-offset (:%l object)) (:%w tag))) 602 602 :have-tag) … … 626 626 ((temp :u32))) 627 627 (movl (:$l x8632::t-value) (:%l temp)) 628 (lea q(:@ (- x8632::t-offset) (:%l temp)) (:%l dest))628 (leal (:@ (- x8632::t-offset) (:%l temp)) (:%l dest)) 629 629 (cmovccl (:$ub crbit) (:%l temp) (:%l dest))) 630 630 … … 673 673 (uuo-error-reg-not-type (:%l src) (:$ub arch::error-object-not-unsigned-byte-8)) 674 674 :ok 675 (mov q(:%l src) (:%l dest))676 (shr q(:$ub x8632::fixnumshift) (:%l dest)))675 (movl (:%l src) (:%l dest)) 676 (shrl (:$ub x8632::fixnumshift) (:%l dest))) 677 677 678 678 (define-x8632-vinsn %unbox-u8 (((dest :u8)) … … 743 743 (cmpw (:$w x8632::tag-misc) (:%w dest)) 744 744 (jne :have-tag) 745 (movw (:@ x8632::misc-subtag-offset (:% wsrc)) (:%w dest))746 (andw (:$w #xff) ( %w dest))745 (movw (:@ x8632::misc-subtag-offset (:%l src)) (:%w dest)) 746 (andw (:$w #xff) (:%w dest)) 747 747 :have-tag 748 (cmpw (:$ bx8632::subtag-bignum) (:%w dest))748 (cmpw (:$w x8632::subtag-bignum) (:%w dest)) 749 749 (jne :bad) 750 750 (movl (:@ x8632::misc-header-offset (:%l src)) (:%l dest)) … … 753 753 (cmpl (:$l x8632::two-digit-bignum-header) (:%l dest)) 754 754 (jne :bad) 755 (mov q(:@ x8632::misc-data-offset (:%l src)) (:%l dest))755 (movl (:@ x8632::misc-data-offset (:%l src)) (:%l dest)) 756 756 (testl (:%l dest) (:%l dest)) 757 757 (jns :done) … … 791 791 ;; (movsbl (:%b temp) (:%l dest)) 792 792 (movl (:%l src) (:%l dest)) 793 (s all (:$ub 24) (:%l dest))793 (shll (:$ub 24) (:%l dest)) 794 794 (sarl (:$ub 24) (:%l dest))) 795 795 796 796 (define-x8632-vinsn sign-extend-s16 (((dest :s32)) 797 797 ((src :s16))) 798 (movsw q(:%w src) (:%l dest)))798 (movswl (:%w src) (:%l dest))) 799 799 800 800 ;;; xxx -- sigh... … … 819 819 (:talign x8632::fulltag-tra) 820 820 (call (:@ spno)) 821 (movl (:self) ( % x8632::fn)))821 (movl (:self) (:% x8632::fn))) 822 822 823 823 (define-x8632-vinsn fixnum-subtract-from (((dest t)
Note: See TracChangeset
for help on using the changeset viewer.