Changeset 8461
- Timestamp:
- Feb 10, 2008, 10:54:25 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/source/compiler/X86/x862.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/compiler/X86/x862.lisp
r8355 r8461 4939 4939 (cstack *x862-cstack*) 4940 4940 (vstack *x862-vstack*) 4941 (target-cstack)4942 4941 (target-vstack) 4943 4942 (lastcatch n) 4944 (i nil)4945 4943 (returning (eq xfer $backend-return)) 4946 4944 (junk1 nil) … … 4972 4970 (setq numnthrow 0) 4973 4971 (multiple-value-setq (junk1 cstack vstack) 4974 (x862-decode-stack (aref *x862-undo-stack* lastcatch)))))) 4972 (x862-decode-stack (aref *x862-undo-stack* lastcatch))))) 4973 (find-last-catch () 4974 (do* ((n n) 4975 (reasons *x862-undo-because*)) 4976 ((= n dest)) 4977 (declare (fixnum n)) 4978 (when (eql $undocatch (aref reasons (decf n))) 4979 (incf numnthrow) 4980 (setq lastcatch n))))) 4981 4982 (find-last-catch) 4983 (throw-through-numnthrow-catch-frames) 4984 (setq n lastcatch) 4975 4985 (while (%i> n dest) 4976 (cond ((eql $undocatch (setq reason (aref *x862-undo-because* (setq n (%i- n 1))))) 4977 (pop-temp-frames) 4978 (pop-c-frames) 4979 (setq numnthrow (%i+ numnthrow 1) lastcatch n)) 4980 ((eql $undostkblk reason) 4981 (throw-through-numnthrow-catch-frames) 4986 (setq reason (aref *x862-undo-because* (setq n (%i- n 1)))) 4987 (cond ((eql $undostkblk reason) 4982 4988 (incf num-temp-frames)) 4983 4989 ((eql $undo-x86-c-frame reason) 4984 (throw-through-numnthrow-catch-frames) 4985 (incf num-c-frames)))) 4986 (throw-through-numnthrow-catch-frames) 4987 (setq i lastcatch) 4988 (while (%i> i dest) 4989 (let ((reason (aref *x862-undo-because* (setq i (%i- i 1))))) 4990 (if (or (eql reason $undospecial) 4990 (incf num-c-frames)) 4991 ((or (eql reason $undospecial) 4991 4992 (eql reason $undointerruptlevel)) 4992 4993 (push reason unbind)))) … … 5008 5009 (! slide-values)) 5009 5010 (! adjust-vsp vdiff))))) 5010 (setq num-temp-frames 0 num-c-frames 0)5011 (while (%i> lastcatch dest)5012 (let ((reason (aref *x862-undo-because* (setq lastcatch (%i- lastcatch 1)))))5013 (setq target-cstack (nth-value 15014 (x862-decode-stack (aref *x862-undo-stack* lastcatch))))5015 (if (eq reason $undostkblk)5016 (incf num-temp-frames))5017 (if (eq reason $undo-x86-c-frame)5018 (incf num-c-frames))5019 (if (%i> cstack target-cstack)5020 (compiler-bug "bug: adjust foreign stack ??"))5021 ;; else what's going on? $sp-stkcons, for one thing5022 (setq cstack target-cstack)))5023 5011 (pop-temp-frames) 5024 5012 (pop-c-frames)))
Note:
See TracChangeset
for help on using the changeset viewer.
