- Timestamp:
- May 8, 2008, 8:25:06 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/level-1/x86-error-signal.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/level-1/x86-error-signal.lisp
r9402 r9409 27 27 (encoded-gpr-lisp xp target::nargs)) 28 28 29 29 #+x8664-target 30 30 (defun xp-argument-list (xp) 31 31 (let ((nargs (xp-argument-count xp)) … … 45 45 (push (%get-object sp (* i x8664::node-size)) args)) 46 46 args))))))) 47 47 48 #+x8632-target 49 (defun xp-argument-list (xp) 50 (let ((nargs (xp-argument-count xp)) 51 (arg-y (encoded-gpr-lisp xp x8632::arg_y)) 52 (arg-z (encoded-gpr-lisp xp x8632::arg_z))) 53 (cond ((eql nargs 0) nil) 54 ((eql nargs 1) (list arg-z)) 55 (t 56 (let ((args (list arg-y arg-z))) 57 (if (eql nargs 2) 58 args 59 (let ((sp (%inc-ptr (encoded-gpr-macptr xp x8632::esp) 60 (+ x8632::node-size x8632::xcf.size)))) 61 (dotimes (i (- nargs 2)) 62 (push (%get-object sp (* i x8632::node-size)) args)) 63 args))))))) 64 48 65 ;;; Making this be continuable is hard, because of the xcf on the 49 66 ;;; stack and the way that the kernel saves/restores rsp and rbp … … 59 76 (%kernel-restart-internal 60 77 $xudfcall 61 (list (encoded-gpr-lisp xp x8664::fname) args)78 (list (encoded-gpr-lisp xp target::fname) args) 62 79 frame-ptr))) 63 80 (f #'(lambda (values) (apply #'values values)))) 64 (setf (encoded-gpr-lisp xp x8664::arg_z) values65 (encoded-gpr-lisp xp x8664::fn) f)))81 (setf (encoded-gpr-lisp xp target::arg_z) values 82 (encoded-gpr-lisp xp target::fn) f))) 66 83 67 84 #+x8664-target
Note:
See TracChangeset
for help on using the changeset viewer.
