Changeset 8231
- Timestamp:
- Jan 21, 2008, 10:02:17 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp
r8211 r8231 502 502 ((:pred = (:apply %hard-regspec-value tag) x8632::eax) 503 503 ;; accumulator 504 (andb (:$b x8632::tagmask) (:%accb tag)) 505 (cmpb (:$b x8632::tag-misc) (:%accb tag))) 506 ((:and (:pred > (:apply %hard-regspec-value tag) x8632::eax) 507 (:pred <= (:apply %hard-regspec-value tag) x8632::ebx)) 508 ;; other register that can be treated as a byte 509 (andb (:$b x8632::tagmask) (:%b tag)) 510 (cmpb (:$b x8632::tag-misc) (:%b tag))) 511 ((:pred > (:apply %hard-regspec-value tag) x8632::ebx) 512 ;; non-byte register 513 (andl (:$l x8632::tagmask) (:%l tag)) 504 (andl (:$b x8632::tagmask) (:%accl tag)) 505 (cmpl (:$b x8632::tag-misc) (:%accl tag))) 506 ((:pred > (:apply %hard-regspec-value tag) x8632::eax) 507 (andl (:$b x8632::tagmask) (:%l tag)) 514 508 (cmpl (:$b x8632::tag-misc) (:%l tag))) 515 509 (jne :have-tag) 516 (mov l (:@ x8632::misc-subtag-offset (:%l object)) (:%ltag))510 (movb (:@ x8632::misc-subtag-offset (:%l object)) (:%b tag)) 517 511 :have-tag 518 (cmp l (:$b tagval) (:%ltag))512 (cmpb (:$b tagval) (:%b tag)) 519 513 (je.pt :ok) 520 514 (uuo-error-reg-not-tag (:%l object) (:$ub tagval)) … … 2950 2944 ((tag :u8) 2951 2945 (entry (:label 1)))) 2946 ;; tag is almost certainly going to be eax, which is 2947 ;; the same as nargs. we need to preserve nargs. 2948 (pushl (:%l x8632::nargs.l)) 2952 2949 (movl (:%l x8632::temp0) (:%l tag)) 2953 2950 ((:pred = (:apply %hard-regspec-value tag) x8632::eax) 2954 2951 ;; accumulator 2955 (andb (:$b x8632::tagmask) (:%accb tag)) 2956 (cmpb (:$b x8632::tag-misc) (:%accb tag))) 2957 ((:and (:pred > (:apply %hard-regspec-value tag) x8632::eax) 2958 (:pred <= (:apply %hard-regspec-value tag) x8632::ebx)) 2959 ;; other register that can be treated as a byte 2960 (andb (:$b x8632::tagmask) (:%b tag)) 2961 (cmpb (:$b x8632::tag-misc) (:%b tag))) 2962 ((:pred > (:apply %hard-regspec-value tag) x8632::ebx) 2963 ;; non-byte register 2964 (andl (:$l x8632::tagmask) (:%l tag)) 2952 (andl (:$b x8632::tagmask) (:%accl tag)) 2953 (cmpl (:$b x8632::tag-misc) (:%accl tag))) 2954 ((:pred > (:apply %hard-regspec-value tag) x8632::eax) 2955 (andl (:$b x8632::tagmask) (:%l tag)) 2965 2956 (cmpl (:$b x8632::tag-misc) (:%l tag))) 2966 2957 (jne :bad) 2967 (mov l (:@ x8632::misc-subtag-offset (:%l x8632::temp0)) (:%ltag))2968 (cmp l (:$b x8632::subtag-function) (:%ltag))2958 (movb (:@ x8632::misc-subtag-offset (:%l x8632::temp0)) (:%b tag)) 2959 (cmpb (:$b x8632::subtag-function) (:%b tag)) 2969 2960 (cmovel (:%l x8632::temp0) (:%l x8632::xfn)) 2970 2961 (je :call) 2971 (cmp l (:$b x8632::subtag-symbol) (:%ltag))2962 (cmpb (:$b x8632::subtag-symbol) (:%b tag)) 2972 2963 (cmovel (:%l x8632::symbol.fcell (:%l x8632::fname)) (:%l x8632::xfn)) 2973 2964 (jne :bad) 2974 2965 :call 2966 (popl (:%l x8632::nargs)) 2975 2967 (:talign 5) 2976 2968 (call (:%l x8632::xfn)) … … 2982 2974 () 2983 2975 ((tag :u8))) 2976 (pushl (:%l x8632::nargs.l)) 2984 2977 (movl (:%l x8632::temp0) (:%l tag)) 2985 2978 ((:pred = (:apply %hard-regspec-value tag) x8632::eax) 2986 ;; accumulator 2987 (andb (:$b x8632::tagmask) (:%accb tag)) 2988 (cmpb (:$b x8632::tag-misc) (:%accb tag))) 2989 ((:and (:pred > (:apply %hard-regspec-value tag) x8632::eax) 2990 (:pred <= (:apply %hard-regspec-value tag) x8632::ebx)) 2991 ;; other register that can be treated as a byte 2992 (andb (:$b x8632::tagmask) (:%b tag)) 2993 (cmpb (:$b x8632::tag-misc) (:%b tag))) 2994 ((:pred > (:apply %hard-regspec-value tag) x8632::ebx) 2995 ;; non-byte register 2996 (andl (:$l x8632::tagmask) (:%l tag)) 2979 (andl (:$b x8632::tagmask) (:%accl tag)) 2980 (cmpl (:$b x8632::tag-misc) (:%accl tag))) 2981 ((:pred > (:apply %hard-regspec-value tag) x8632::eax) 2982 (andl (:$b x8632::tagmask) (:%l tag)) 2997 2983 (cmpl (:$b x8632::tag-misc) (:%l tag))) 2998 2984 (jne :bad) 2999 (mov l (:@ x8632::misc-subtag-offset (:%l x8632::temp0)) (:%ltag))3000 (cmp l (:$b x8632::subtag-function) (:%ltag))2985 (movb (:@ x8632::misc-subtag-offset (:%l x8632::temp0)) (:%b tag)) 2986 (cmpb (:$b x8632::subtag-function) (:%b tag)) 3001 2987 (cmovel (:%l x8632::temp0) (:%l x8632::xfn)) 3002 2988 (je :go) 3003 (cmp l (:$b x8632::subtag-symbol) (:%ltag))2989 (cmpb (:$b x8632::subtag-symbol) (:%b tag)) 3004 2990 (cmovel (:%l x8632::symbol.fcell (:%l x8632::fname)) (:%l x8632::xfn)) 3005 2991 (jne :bad) 3006 2992 :go 2993 (popl (:%l x8632::nargs.l)) 3007 2994 (jmp (:%l x8632::xfn)) 3008 2995 :bad
Note:
See TracChangeset
for help on using the changeset viewer.
