Changeset 11614


Ignore:
Timestamp:
01/31/09 22:43:40 (15 years ago)
Author:
ehuelsmann
Message:

Inline all compiled subtractions instead of only the 2 and 3 argument cases.

File:
1 edited

Legend:

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

    r11613 r11614  
    69066906(defun p2-minus (form target representation)
    69076907  (case (length form)
     6908    (1
     6909     ;; generates "Insufficient arguments" error
     6910     (compile-function-call form target representation))
    69086911    (2
    69096912     (let* ((arg (%cadr form))
     
    69686971             (t
    69696972              (compile-binary-operation "subtract" args target representation)))))
    6970     (4
    6971      ;; (- a b c) => (- (- a b) c)
    6972      (let ((new-form `(- (- ,(second form) ,(third form)) ,(fourth form))))
    6973        (p2-minus new-form target representation)))
    69746973    (t
    6975      (compile-function-call form target representation))))
     6974     (let ((new-form `(- (- ,(second form) ,(third form)) ,@(nthcdr 3 form))))
     6975       (p2-minus new-form target representation)))))
    69766976
    69776977;; char/schar string index => character
Note: See TracChangeset for help on using the changeset viewer.