Changeset 11824


Ignore:
Timestamp:
Mar 18, 2009, 11:55:35 PM (10 years ago)
Author:
gz
Message:

Use type predicate for typechecking when possible, this is just so can handle basic typechecking before TYPEP is defined

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/compiler/X86/x862.lisp

    r11819 r11824  
    90799079          (x862-form seg vreg xfer form)
    90809080          (let* ((ok (backend-get-next-label)))
    9081             (x862-one-targeted-reg-form seg form ($ *x862-arg-y*))
    9082             (x862-store-immediate seg typespec ($ *x862-arg-z*))
    9083             (x862-store-immediate seg 'typep ($ *x862-fname*))
    9084             (x862-set-nargs seg 2)
    9085             (x862-vpush-register seg ($ *x862-arg-y*))
     9081            (if (and (symbolp typespec) (type-predicate typespec))
     9082              ;; Do this so can compile the lisp with typechecking even though typep
     9083              ;; doesn't get defined til fairly late.
     9084              (progn
     9085                (x862-one-targeted-reg-form seg form ($ *x862-arg-z*))
     9086                (x862-store-immediate seg (type-predicate typespec) ($ *x862-fname*))
     9087                (x862-set-nargs seg 1)
     9088                (x862-vpush-register seg ($ *x862-arg-z*)))
     9089              (progn
     9090                (x862-one-targeted-reg-form seg form ($ *x862-arg-y*))
     9091                (x862-store-immediate seg typespec ($ *x862-arg-z*))
     9092                (x862-store-immediate seg 'typep ($ *x862-fname*))
     9093                (x862-set-nargs seg 2)
     9094                (x862-vpush-register seg ($ *x862-arg-y*))))
    90869095            (! call-known-symbol ($ *x862-arg-z*))
    90879096            (! compare-to-nil ($ *x862-arg-z*))
Note: See TracChangeset for help on using the changeset viewer.