Rev 419 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 419 | Rev 420 | ||
---|---|---|---|
Line 128... | Line 128... | ||
128 | align 4 |
128 | align 4 |
129 | e7: ;#NM exception handler |
129 | e7: ;#NM exception handler |
130 | save_ring3_context |
130 | save_ring3_context |
131 | clts |
131 | clts |
132 | mov ax, os_data |
132 | mov ax, app_data ; |
133 | mov ds, ax |
133 | mov ds, ax |
134 | mov es, ax |
134 | mov es, ax |
Line 135... | Line 135... | ||
135 | 135 | ||
136 | mov ebx, [fpu_owner] |
136 | mov ebx, [fpu_owner] |
Line 181... | Line 181... | ||
181 | push ebx |
181 | push ebx |
182 | push ecx |
182 | push ecx |
183 | push edx |
183 | push edx |
184 | 184 | ||
Line 185... | Line 185... | ||
185 | mov ebx, [ss:CURRENT_TASK] |
185 | mov ebx, [CURRENT_TASK] |
186 | shl ebx, 8 |
186 | shl ebx, 8 |
Line 187... | Line 187... | ||
187 | 187 | ||
188 | mov eax, [ss:ebx+SLOT_BASE+APPDATA.fpu_handler] |
188 | mov eax, [ebx+SLOT_BASE+APPDATA.fpu_handler] |
189 | test eax, eax |
189 | test eax, eax |
Line 190... | Line 190... | ||
190 | jz .default |
190 | jz .default |
191 | 191 | ||
192 | mov ecx, [reg_eip] |
192 | mov ecx, [reg_eip] |
193 | mov edx, [reg_esp] |
193 | mov edx, [reg_esp] |
194 | sub edx, 4 |
194 | sub edx, 4 |
195 | mov [ss:edx], ecx |
195 | mov [edx], ecx |
Line 196... | Line 196... | ||
196 | mov [reg_esp], edx |
196 | mov [reg_esp], edx |
197 | mov dword [reg_eip], eax |
197 | mov dword [reg_eip], eax |
Line 225... | Line 225... | ||
225 | push ebx |
225 | push ebx |
226 | push ecx |
226 | push ecx |
227 | push edx |
227 | push edx |
228 | 228 | ||
Line 229... | Line 229... | ||
229 | mov ebx, [ss:CURRENT_TASK] |
229 | mov ebx, [CURRENT_TASK] |
230 | shl ebx, 8 |
230 | shl ebx, 8 |
Line 231... | Line 231... | ||
231 | 231 | ||
232 | mov eax, [ss:ebx+SLOT_BASE+APPDATA.sse_handler] |
232 | mov eax, [ebx+SLOT_BASE+APPDATA.sse_handler] |
233 | test eax, eax |
233 | test eax, eax |
Line 234... | Line 234... | ||
234 | jz .default |
234 | jz .default |
235 | 235 | ||
236 | mov ecx, [reg_eip] |
236 | mov ecx, [reg_eip] |
237 | mov edx, [reg_esp] |
237 | mov edx, [reg_esp] |
238 | sub edx, 4 |
238 | sub edx, 4 |
239 | mov [ss:edx], ecx |
239 | mov [edx], ecx |
Line 240... | Line 240... | ||
240 | mov [reg_esp], edx |
240 | mov [reg_esp], edx |
241 | mov dword [reg_eip], eax |
241 | mov dword [reg_eip], eax |