Changeset 5224
- Timestamp:
- Sep 20, 2006, 3:14:40 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/X86/X8664/x8664-vinsns.lisp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/X86/X8664/x8664-vinsns.lisp
r5213 r5224 2559 2559 (movq (:%q object) (:%q tag)) 2560 2560 (shlq (:$ub (- x8664::nbits-in-word (+ 8 x8664::fixnumshift))) (:%q tag)) 2561 (sarq (:$ub (- x8664::nbits-in-word (+ 8 x8664::fixnumshift))) (:%q tag)) 2561 (sarq (:$ub (- x8664::nbits-in-word 8)) (:%q tag)) 2562 (shlq (:$ub x8664::fixnumshift) (:%q tag)) 2562 2563 (cmpq (:%q object) (:%q tag)) 2563 (jne.pn :bad) 2564 (testb (:$b x8664::fixnummask) (:%b object)) 2565 (je.pt :bad) 2564 (je.pt :ok) 2566 2565 :bad 2567 2566 (uuo-error-reg-not-type (:%q object) (:$ub arch::error-object-not-signed-byte-8)) … … 2573 2572 ((tag :u32))) 2574 2573 :again 2575 (mov l (:$l (lognot (ash #xff x8664::fixnumshift))) (:%ltag))2574 (movq (:$l (lognot (ash #xff x8664::fixnumshift))) (:%q tag)) 2576 2575 (andq (:% object) (:% tag)) 2577 2576 (je.pt :ok) … … 2586 2585 (movq (:%q object) (:%q tag)) 2587 2586 (shlq (:$ub (- x8664::nbits-in-word (+ 16 x8664::fixnumshift))) (:%q tag)) 2588 (sarq (:$ub (- x8664::nbits-in-word (+ 16 x8664::fixnumshift))) (:%q tag)) 2587 (sarq (:$ub (- x8664::nbits-in-word 16)) (:%q tag)) 2588 (shlq (:$ub x8664::fixnumshift) (:%q tag)) 2589 2589 (cmpq (:%q object) (:%q tag)) 2590 (jne.pn :bad) 2591 (testb (:$b x8664::fixnummask) (:%b object)) 2592 (je.pt :bad) 2590 (je.pt :ok) 2593 2591 :bad 2594 2592 (uuo-error-reg-not-type (:%q object) (:$ub arch::error-object-not-signed-byte-16)) … … 2600 2598 ((tag :u32))) 2601 2599 :again 2602 (mov l (:$l (lognot (ash #xffff x8664::fixnumshift))) (:%ltag))2600 (movq (:$l (lognot (ash #xffff x8664::fixnumshift))) (:%q tag)) 2603 2601 (andq (:% object) (:% tag)) 2604 2602 (je.pt :ok) … … 2613 2611 (movq (:%q object) (:%q tag)) 2614 2612 (shlq (:$ub (- x8664::nbits-in-word (+ 32 x8664::fixnumshift))) (:%q tag)) 2615 (sarq (:$ub (- x8664::nbits-in-word (+ 32 x8664::fixnumshift))) (:%q tag)) 2613 (sarq (:$ub (- x8664::nbits-in-word 32)) (:%q tag)) 2614 (shlq (:$ub x8664::fixnumshift) (:%q tag)) 2616 2615 (cmpq (:%q object) (:%q tag)) 2617 2616 (jne.pn :bad) … … 2651 2650 :ok) 2652 2651 2653 (define-x8664-vinsn require- s64 (()2652 (define-x8664-vinsn require-u64 (() 2654 2653 ((object :lisp)) 2655 2654 ((tag :s64))) … … 2664 2663 (je :two) 2665 2664 (cmpq (:$l x8664::three-digit-bignum-header) (:@ x8664::misc-header-offset (:%q object))) 2666 (j e.pn :bad)2665 (jne.pn :bad) 2667 2666 (cmpl (:$b 0) (:@ (+ x8664::misc-data-offset 8) (:%q object))) 2668 2667 (je :ok) … … 2674 2673 :ok-if-non-negative 2675 2674 (testq (:%q tag) (:%q tag)) 2676 (j l:bad)2675 (js :bad) 2677 2676 :ok) 2678 2677
Note:
See TracChangeset
for help on using the changeset viewer.
