Changeset 5973
- Timestamp:
- Mar 2, 2007, 4:05:35 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lisp-kernel/x86-exceptions.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/x86-exceptions.c
r5965 r5973 1486 1486 if ((state == ID_unrecognized_alloc_instruction) || 1487 1487 ((state == ID_set_allocptr_header_instruction) && 1488 (allocptr_tag == fulltag_cons))) {1489 Bug( NULL, "Can't determine state of thread 0x%lx, interrupted during memory allocation", tcr);1488 (allocptr_tag != fulltag_misc))) { 1489 Bug(xp, "Can't determine state of thread 0x%lx, interrupted during memory allocation", tcr); 1490 1490 } 1491 1491 switch(state) { … … 1511 1511 if (interrupt_displacement == NULL) { 1512 1512 xpGPR(xp,Iallocptr) = VOID_ALLOCPTR - disp; 1513 tcr->save_allocptr = (void *)(VOID_ALLOCPTR - disp); 1513 1514 } else { 1514 1515 /* Back out, and tell the caller how to resume the allocation attempt */ 1515 1516 *interrupt_displacement = disp; 1517 xpGPR(xp,Iallocptr) = VOID_ALLOCPTR; 1518 tcr->save_allocptr += disp; 1516 1519 xpPC(xp) -= (sizeof(branch_around_alloc_trap_instruction)+ 1517 1520 sizeof(compare_allocptr_reg_to_tcr_save_allocbase_instruction) + … … 1545 1548 sizeof(load_allocptr_reg_from_tcr_save_allocptr_instruction)); 1546 1549 xpGPR(xp,Iallocptr) = VOID_ALLOCPTR; 1547 tcr->save_allocptr = (void *)(VOID_ALLOCPTR-disp); 1550 if (interrupt_displacement) { 1551 *interrupt_displacement = disp; 1552 tcr->save_allocptr += disp; 1553 } else { 1554 tcr->save_allocptr = (void *)(VOID_ALLOCPTR-disp); 1555 } 1548 1556 } 1549 1557 }
Note:
See TracChangeset
for help on using the changeset viewer.
