Changeset 11603


Ignore:
Timestamp:
01/29/09 22:30:47 (12 years ago)
Author:
ehuelsmann
Message:

Use generic representation conversions instead of enumerating in line.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r11602 r11603  
    75347534                ((eq (variable-representation variable) :int)
    75357535                 (aver (variable-register variable))
    7536                  (case representation
    7537                    (:int
    7538                     (emit 'iload (variable-register variable)))
    7539                    (:char
    7540                     (sys::%format t "compile-var-ref :char case~%")
    7541                     (aver nil))
    7542                    (:long
    7543                     (emit 'iload (variable-register variable))
    7544                     (emit 'i2l))
    7545                    (:boolean
    7546                     (emit 'iconst_1))
    7547                    (t
    7548         (new-fixnum)
    7549                     (emit 'iload (variable-register variable))
    7550                     (emit-invokespecial-init +lisp-fixnum-class+ '("I"))))
     7536                 (emit 'iload (variable-register variable))
     7537                 (convert-representation :int representation)
    75517538                 (emit-move-from-stack target representation))
    75527539                ((eq (variable-representation variable) :char)
    7553                  (case representation
    7554                    (:char
    7555                     (aver (variable-register variable))
    7556                     (emit 'iload (variable-register variable)))
    7557                    (:boolean
    7558                     (emit 'iconst_1))
    7559                    (t
    7560                     (emit 'new +lisp-character-class+)
    7561                     (emit 'dup)
    7562                     (aver (variable-register variable))
    7563                     (emit 'iload (variable-register variable))
    7564                     (emit-invokespecial-init +lisp-character-class+ '("C"))))
     7540                 (aver (variable-register variable))
     7541                 (emit 'iload (variable-register variable))
     7542                 (convert-representation :char representation)
    75657543                 (emit-move-from-stack target representation))
    75667544                ((eq (variable-representation variable) :long)
    75677545                 (aver (variable-register variable))
    7568                  (case representation
    7569                    (:int
    7570                     (emit 'lload (variable-register variable))
    7571                     (emit 'l2i))
    7572                    (:char
    7573                     (sys::%format t "compile-var-ref :char case 2~%")
    7574                     (aver nil))
    7575                    (:long
    7576                     (emit 'lload (variable-register variable)))
    7577                    (:boolean
    7578                     (emit 'iconst_1))
    7579                    (t
    7580                     (emit 'lload (variable-register variable))
    7581                     (convert-representation :long nil)))
     7546                 (emit 'lload (variable-register variable))
     7547                 (convert-representation :long representation)
    75827548                 (emit-move-from-stack target representation))
    75837549                ((eq (variable-representation variable) :boolean)
     
    75857551                 (aver (or (null representation) (eq representation :boolean)))
    75867552                 (emit 'iload (variable-register variable))
    7587                  (case representation
    7588                    (:boolean)
    7589                    (t
    7590                     (convert-representation :boolean nil)))
     7553                 (convert-representation :boolean representation)
    75917554                 (emit-move-from-stack target representation))
    75927555                ((variable-register variable)
Note: See TracChangeset for help on using the changeset viewer.