Changeset 5873
- Timestamp:
- Feb 10, 2007, 9:15:01 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/X86/x862.lisp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/X86/x862.lisp
r5774 r5873 4862 4862 (with-x86-local-vinsn-macros (seg) 4863 4863 (when (neq 0 nlevels) 4864 (let* ((numnlispareas 0)) 4865 (declare (fixnum numnlispareas)) 4866 (flet ((popnlispareas () 4867 (dotimes (i numnlispareas) 4864 (let* ((num-temp-frames 0) 4865 (num-c-frames 0)) 4866 (declare (fixnum numnlispareas num-c-frames)) 4867 (flet ((pop-temp-frames () 4868 (dotimes (i num-temp-frames) 4868 4869 (! discard-temp-frame))) 4870 (pop-c-frames () 4871 (dotimes (i num-c-frames) 4872 (! discard-c-frame))) 4869 4873 (throw-through-numnthrow-catch-frames () 4870 4874 (when (neq 0 numnthrow) … … 4881 4885 (while (%i> n dest) 4882 4886 (cond ((eql $undocatch (setq reason (aref *x862-undo-because* (setq n (%i- n 1))))) 4883 (popnlispareas) 4887 (pop-temp-frames) 4888 (pop-c-frames) 4884 4889 (setq numnthrow (%i+ numnthrow 1) lastcatch n)) 4885 4890 ((eql $undostkblk reason) 4886 4891 (throw-through-numnthrow-catch-frames) 4887 (incf num nlispareas))4892 (incf num-temp-frames)) 4888 4893 ((eql $undo-x86-c-frame reason) 4889 (! discard-c-frame)))) 4894 (throw-through-numnthrow-catch-frames) 4895 (incf num-c-frames)))) 4890 4896 (throw-through-numnthrow-catch-frames) 4891 4897 (setq i lastcatch) … … 4910 4916 (! slide-values)) 4911 4917 (! adjust-vsp vdiff))))) 4912 (setq num nlispareas 0)4918 (setq num-temp-frames 0 num-c-frames 0) 4913 4919 (while (%i> lastcatch dest) 4914 4920 (let ((reason (aref *x862-undo-because* (setq lastcatch (%i- lastcatch 1))))) … … 4916 4922 (x862-decode-stack (aref *x862-undo-stack* lastcatch)))) 4917 4923 (if (eq reason $undostkblk) 4918 (incf numnlispareas)) 4924 (incf num-temp-frames)) 4925 (if (eq reason $undo-x86-c-frame) 4926 (incf num-c-frames)) 4919 4927 (if (%i> cstack target-cstack) 4920 4928 (error "bug: adjust foreign stack ??")) 4921 4929 ;; else what's going on? $sp-stkcons, for one thing 4922 4930 (setq cstack target-cstack))) 4923 (popnlispareas))) 4931 (pop-temp-frames) 4932 (pop-c-frames))) 4924 4933 vstack)))) 4925 4934 … … 8307 8316 (when (zerop total-words) 8308 8317 (setq simple-foreign-args nil)) 8309 (! alloc-c-frame (ash (+ 8 (logandc2 (1+ total-words) 1)) 8310 *x862-target-fixnum-shift*))) 8318 (! alloc-c-frame total-words)) 8311 8319 (x862-open-undo $undo-x86-c-frame) 8312 8320 (setq ngpr-args 0) … … 8421 8429 (when (null argspecs) 8422 8430 (setq simple-foreign-args t)) 8423 (! alloc-c-frame (ash (+ 8 (logandc2 (1+ total-words) 1)) 8424 *x862-target-fixnum-shift*))) 8431 (! alloc-c-frame total-words)) 8425 8432 (x862-open-undo $undo-x86-c-frame) 8426 8433 (setq single-float-offset (+ other-offset nother-words))
Note:
See TracChangeset
for help on using the changeset viewer.
