Rev 281 | Rev 391 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 281 | Rev 309 | ||
---|---|---|---|
Line 107... | Line 107... | ||
107 | } |
107 | } |
108 | 108 | ||
109 | 109 | ||
110 | void nm_fault(__u8 n, __native stack[]) |
110 | void nm_fault(__u8 n, __native stack[]) |
111 | { |
111 | { |
112 | reset_TS_flag(); |
- | |
113 | if (CPU->fpu_owner != NULL) { |
112 | #ifdef FPU_LAZY |
114 | fpu_lazy_context_save(&((CPU->fpu_owner)->saved_fpu_context)); |
- | |
115 | CPU->fpu_owner->fpu_context_engaged=0; /* don't prevent migration */ |
- | |
116 | } |
- | |
117 | if (THREAD->fpu_context_exists) |
113 | scheduler_fpu_lazy_request(); |
118 | fpu_lazy_context_restore(&(THREAD->saved_fpu_context)); |
- | |
119 | else { |
114 | #else |
120 | fpu_init(); |
115 | panic("fpu fault"); |
121 | THREAD->fpu_context_exists=1; |
- | |
122 | } |
116 | #endif |
123 | CPU->fpu_owner=THREAD; |
- | |
124 | } |
117 | } |
125 | 118 | ||
126 | 119 | ||
127 | 120 | ||
128 | void page_fault(__u8 n, __native stack[]) |
121 | void page_fault(__u8 n, __native stack[]) |