Changeset 15706 for release/1.9/source/lisp-kernel/x86-exceptions.c
- Timestamp:
- Feb 15, 2013, 7:24:29 AM (7 years ago)
- Location:
- release/1.9/source/lisp-kernel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
release/1.9/source/lisp-kernel
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
/branches/new-random/lisp-kernel merged eligible /branches/qres/ccl/lisp-kernel merged eligible /branches/rme-fpe/lisp-kernel merged eligible /branches/rme-logops/lisp-kernel merged eligible /release/1.5/source/lisp-kernel merged eligible /trunk/source/lisp-kernel merged eligible /branches/working-0711/ccl/lisp-kernel 7970-13192,13197-13198,13202,13208,13214,13235-13236,13239,13263,13277-13278,13290,13293-13294,13302-13306,13331-13332,13339,13361-13364,13379,13383,13386,13388,13409,13435-13436,13438,13440-13442,13460-13461,13465,13467,13476,13487,13490,13492-13493,13502-13528,13545-13547,13549,13557-13558
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
-
release/1.9/source/lisp-kernel/x86-exceptions.c
r15572 r15706 1506 1506 #endif 1507 1507 1508 1509 #ifdef FREEBSD 1510 typedef void *FPREGS; 1511 1512 1513 LispObj * 1514 copy_avx(ExceptionInformation *xp, LispObj *current, FPREGS *destptr) 1515 { 1516 natural sp; 1517 1518 *destptr = (FPREGS)AVX_CONTEXT_PTR(xp); 1519 1520 if (AVX_CONTEXT_PRESENT(xp)) { 1521 sp = (natural)current; 1522 sp -= AVX_CONTEXT_SIZE(xp); 1523 sp = truncate_to_power_of_2(sp,6); 1524 memcpy((void *)sp,(void *)AVX_CONTEXT_PTR(xp),AVX_CONTEXT_SIZE(xp)); 1525 current = (LispObj *)sp; 1526 *destptr = (FPREGS)current; 1527 } 1528 return current; 1529 } 1530 #endif 1531 1508 1532 #ifdef DARWIN 1509 1533 LispObj * … … 1552 1576 #ifdef LINUX 1553 1577 dest->uc_mcontext.fpregs = (fpregset_t)fp; 1578 #endif 1579 #ifdef FREEBSD 1580 if (AVX_CONTEXT_PRESENT(context)) { 1581 AVX_CONTEXT_PTR(context) = (natural)fp; 1582 } 1554 1583 #endif 1555 1584 dest->uc_stack.ss_sp = 0; … … 1664 1693 #ifdef LINUX 1665 1694 foreign_rsp = copy_fpregs(context, foreign_rsp, &fpregs); 1695 #endif 1696 #ifdef FREEBSD 1697 foreign_rsp = copy_avx(context, foreign_rsp, &fpregs); 1666 1698 #endif 1667 1699 #ifdef DARWIN … … 2345 2377 stack.ss_size = SIGSTKSZ*8; 2346 2378 stack.ss_flags = 0; 2347 #ifdef SEPARATE_ALTSTACK2348 2379 stack.ss_sp = mmap(NULL,stack.ss_size, PROT_READ|PROT_WRITE|PROT_EXEC,MAP_ANON|MAP_PRIVATE,-1,0); 2349 #else2350 stack.ss_sp = a->low;2351 a->low += SIGSTKSZ*8;2352 mmap(stack.ss_sp,stack.ss_size, PROT_READ|PROT_WRITE|PROT_EXEC,MAP_FIXED|MAP_ANON|MAP_PRIVATE,-1,0);2353 #endif2354 2380 #ifdef LINUX 2355 2381 /* The ucontext pushed on the altstack may not contain the (largish)
Note: See TracChangeset
for help on using the changeset viewer.