Changeset 8459


Ignore:
Timestamp:
02/04/05 04:26:34 (17 years ago)
Author:
piso
Message:

Work in progress (untested).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/jvm.lisp

    r8458 r8459  
    22;;;
    33;;; Copyright (C) 2003-2005 Peter Graves
    4 ;;; $Id: jvm.lisp,v 1.389 2005-02-03 23:16:43 piso Exp $
     4;;; $Id: jvm.lisp,v 1.390 2005-02-04 04:26:34 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    17651765        (setf pending-label (instruction-label instruction))))
    17661766    ht))
    1767 
    1768 ;; (defun optimize-2a ()
    1769 ;;   (let* ((code (coerce *code* 'list))
    1770 ;;          (tail code)
    1771 ;;          (changed nil))
    1772 ;;     (dolist (instruction code)
    1773 ;;       (when (and instruction (= (instruction-opcode instruction) 167)) ; GOTO
    1774 ;;         (let* ((target-label (car (instruction-args instruction)))
    1775 ;;                (target-instruction nil)
    1776 ;;                (next-instruction nil))
    1777 ;;           (dolist (instr code)
    1778 ;;             (when target-instruction
    1779 ;;               (setf next-instruction instr)
    1780 ;;               (return))
    1781 ;;             (when (and instr
    1782 ;;                        (label-p instr)
    1783 ;;                        (eq (car (instruction-args instr)) target-label))
    1784 ;;               (setf target-instruction instr)))
    1785 ;;           (when next-instruction
    1786 ;;             (case (instruction-opcode next-instruction)
    1787 ;;               (167 ; GOTO
    1788 ;;                (setf (instruction-args instruction)
    1789 ;;                      (instruction-args next-instruction)
    1790 ;;                      changed t))
    1791 ;;               (176 ; ARETURN
    1792 ;;                (setf (instruction-opcode instruction) 176
    1793 ;;                      (instruction-args instruction) nil
    1794 ;;                      changed t)))))))
    1795 ;;     (when changed
    1796 ;;       (setf *code* (delete nil code))
    1797 ;;       t)))
    17981767
    17991768(defun optimize-2b ()
     
    47924761           (when target
    47934762             (emit-move-from-stack target)))
    4794           (t (compile-form value-form :target :stack)
    4795              (maybe-emit-clear-values value-form)
    4796              (when target
    4797                (emit 'dup))
    4798              (emit 'var-set variable)
    4799              (when target
    4800                (when (eq representation :unboxed-fixnum)
    4801                  (emit-unbox-fixnum))
    4802                (emit-move-from-stack target))))))
     4763          (t
     4764           (compile-form value-form :target :stack)
     4765           (maybe-emit-clear-values value-form)
     4766           (when target
     4767             (emit 'dup))
     4768           (emit 'var-set variable)
     4769           (when target
     4770             (when (eq representation :unboxed-fixnum)
     4771               (emit-unbox-fixnum))
     4772             (emit-move-from-stack target))))))
    48034773
    48044774(defun p2-the (form &key (target :stack) representation)
Note: See TracChangeset for help on using the changeset viewer.