Changeset 8004
- Timestamp:
- Jan 5, 2008, 11:54:55 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/working-0711/ccl/lisp-kernel/x86-exceptions.c
r7868 r8004 315 315 316 316 LispObj 317 create_exception_callback_frame(ExceptionInformation *xp )317 create_exception_callback_frame(ExceptionInformation *xp, TCR *tcr) 318 318 { 319 319 LispObj containing_uvector = 0, … … 370 370 relative_pc = abs_pc << fixnumshift; 371 371 } 372 372 push_on_lisp_stack(xp,(LispObj)(tcr->xframe->prev)); 373 push_on_lisp_stack(xp,(LispObj)(tcr->foreign_sp)); 373 374 push_on_lisp_stack(xp,tra); 374 375 push_on_lisp_stack(xp,(LispObj)xp); … … 408 409 409 410 { 410 LispObj xcf = create_exception_callback_frame(xp ),411 LispObj xcf = create_exception_callback_frame(xp, tcr), 411 412 cmain = nrs_CMAIN.vcell; 412 413 int skip; … … 458 459 *save_vsp = (LispObj *)xpGPR(xp,Isp), 459 460 word_beyond_vsp = save_vsp[-1], 460 xcf = create_exception_callback_frame(xp );461 xcf = create_exception_callback_frame(xp, tcr); 461 462 int save_errno = errno; 462 463 … … 483 484 finish_function_entry(xp); 484 485 } 485 xcf0 = create_exception_callback_frame(xp );486 xcf0 = create_exception_callback_frame(xp, tcr); 486 487 skip = callback_to_lisp(tcr, errdisp, xp, xcf0, 0, 0, 0, 0); 487 488 if (skip == -1) { … … 591 592 soft = a->softprot; 592 593 unprotect_area(soft); 593 xcf = create_exception_callback_frame(xp );594 xcf = create_exception_callback_frame(xp, tcr); 594 595 skip = callback_to_lisp(tcr, nrs_CMAIN.vcell, xp, xcf, SIGSEGV, on_TSP, 0, 0); 595 596 xpGPR(xp,Irbp) = save_rbp; … … 642 643 if ((fulltag_of(cmain) == fulltag_misc) && 643 644 (header_subtag(header_of(cmain)) == subtag_macptr)) { 644 xcf = create_exception_callback_frame(xp );645 xcf = create_exception_callback_frame(xp, tcr); 645 646 callback_to_lisp(tcr, cmain, xp, xcf, SIGBUS, is_write_fault(xp,info), (natural)addr, 0); 646 647 } … … 660 661 if ((fulltag_of(cmain) == fulltag_misc) && 661 662 (header_subtag(header_of(cmain)) == subtag_macptr)) { 662 xcf = create_exception_callback_frame(xp );663 xcf = create_exception_callback_frame(xp, tcr); 663 664 skip = callback_to_lisp(tcr, cmain, xp, xcf, SIGFPE, code, 0, 0); 664 665 xpPC(xp) += skip;
Note:
See TracChangeset
for help on using the changeset viewer.
