Changeset 15883


Ignore:
Timestamp:
Aug 24, 2013, 10:17:55 PM (6 years ago)
Author:
gb
Message:

When CASE via jump table clauses return multiple values, force
stack cleanup.

Fixes ticket:1107 in the trunk.

Location:
trunk/source/compiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/ARM/arm2.lisp

    r15882 r15883  
    49444944    (declare (fixnum numundo))
    49454945    (with-arm-local-vinsn-macros (seg vreg xfer)
    4946       (if (eq current-stack old-stack)
     4946      (if (arm2-equal-encodings-p current-stack old-stack)
    49474947        (arm2-form seg vreg xfer body)
    49484948        (if (eq xfer $backend-return)
     
    66286628                                                  *arm2-top-vstack-lcell*)
    66296629                              (arm2-decode-stack entry-stack))
     6630                            (when (arm2-mvpass-p xfer)
     6631                              (arm2-open-undo $undomvexpect))
    66306632                            (arm2-undo-body seg vreg target form entry-stack)))
    66316633                        (@ defaultlabel)
     
    66356637                                              *arm2-top-vstack-lcell*)
    66366638                          (arm2-decode-stack entry-stack))
     6639                        (when (arm2-mvpass-p xfer)
     6640                          (arm2-open-undo $undomvexpect))
    66376641                        (arm2-undo-body seg vreg target otherwise entry-stack)
    66386642                        (@ endlabel)
  • trunk/source/compiler/X86/x862.lisp

    r15606 r15883  
    77567756                                              *x862-top-vstack-lcell*)
    77577757                          (x862-decode-stack entry-stack))
     7758                        (when (x862-mvpass-p xfer)
     7759                          (x862-open-undo $undomvexpect))
    77587760                        (x862-undo-body seg vreg target form entry-stack)))
    77597761                    (if single-clause
     
    77657767                                          *x862-top-vstack-lcell*)
    77667768                      (x862-decode-stack entry-stack))
     7769                    (when (x862-mvpass-p xfer)
     7770                      (x862-open-undo $undomvexpect))
    77677771                    (x862-undo-body seg vreg target otherwise entry-stack)
    77687772                    (@ endlabel)
Note: See TracChangeset for help on using the changeset viewer.