Changeset 6217
- Timestamp:
- Apr 7, 2007, 9:47:46 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lisp-kernel/ppc-exceptions.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/ppc-exceptions.c
r5951 r6217 2065 2065 } 2066 2066 #ifdef DARWIN 2067 #if 02068 /*2069 No, I'm not proud of this.2070 We have to use DarwinSigReturn to work around an OSX G5 bug.2071 To make matters worse, Darwin loses track of the MSR[FE0,FE1]2072 bits in a thread's context when it receives a signal via2073 pthread_kill. We can at least fix it in this case by returning2074 to code which uses a UUO to set the MSR[FE0,FE1] bits, and2075 make the handler for -that- UUO return to the real address that2076 was interrupted via pthread_kill.2077 2078 I'm so ashamed.2079 */2080 #endif2081 {2082 #if 02083 lisp_frame *cur_frame = ((lisp_frame *)xpGPR(context,sp)),2084 *new_frame = cur_frame-1;2085 xpGPR(context,sp) = (LispObj)new_frame;2086 new_frame->backlink = cur_frame;2087 new_frame->savevsp=0;2088 new_frame->savefn=0;2089 new_frame->savelr = (LispObj)xpPC(context);2090 xpPC(context) = (pc)enable_fp_exceptions;2091 #endif2092 2067 DarwinSigReturn(context); 2093 }2094 2068 #endif 2095 2069 }
Note:
See TracChangeset
for help on using the changeset viewer.
