Rev 435 | Rev 709 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 435 | Rev 465 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | $Revision: 435 $ |
1 | $Revision: 465 $ |
2 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;; ;; |
3 | ;; ;; |
4 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
4 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
6 | ;; ;; |
6 | ;; ;; |
Line 141... | Line 141... | ||
141 | 141 | ||
142 | align 4 |
142 | align 4 |
143 | e7: ;#NM exception handler |
143 | e7: ;#NM exception handler |
144 | save_ring3_context |
144 | save_ring3_context |
145 | clts |
145 | clts |
146 | mov ax, os_data |
146 | mov ax, app_data ; |
147 | mov ds, ax |
147 | mov ds, ax |
Line 148... | Line 148... | ||
148 | mov es, ax |
148 | mov es, ax |
149 | 149 | ||
Line 194... | Line 194... | ||
194 | push eax |
194 | push eax |
195 | push ebx |
195 | push ebx |
196 | push ecx |
196 | push ecx |
197 | push edx |
197 | push edx |
Line 198... | Line 198... | ||
198 | 198 | ||
199 | mov ebx, [ss:CURRENT_TASK] |
199 | mov ebx, [CURRENT_TASK] |
Line 200... | Line 200... | ||
200 | shl ebx, 8 |
200 | shl ebx, 8 |
201 | 201 | ||
202 | mov eax, [ss:ebx+SLOT_BASE+APPDATA.fpu_handler] |
202 | mov eax, [ebx+SLOT_BASE+APPDATA.fpu_handler] |
Line 203... | Line 203... | ||
203 | test eax, eax |
203 | test eax, eax |
204 | jz .default |
204 | jz .default |
205 | 205 | ||
206 | mov ecx, [reg_eip] |
206 | mov ecx, [reg_eip] |
207 | mov edx, [reg_esp] |
207 | mov edx, [reg_esp] |
208 | sub edx, 4 |
208 | sub edx, 4 |
Line 209... | Line 209... | ||
209 | mov [ss:edx+new_app_base], ecx |
209 | mov [edx], ecx |
210 | mov [reg_esp], edx |
210 | mov [reg_esp], edx |
Line 238... | Line 238... | ||
238 | push eax |
238 | push eax |
239 | push ebx |
239 | push ebx |
240 | push ecx |
240 | push ecx |
241 | push edx |
241 | push edx |
Line 242... | Line 242... | ||
242 | 242 | ||
243 | mov ebx, [ss:CURRENT_TASK] |
- | |
Line 244... | Line 243... | ||
244 | shl ebx, 8 |
243 | mov ebx, [current_slot] |
245 | 244 | ||
246 | mov eax, [ss:ebx+SLOT_BASE+APPDATA.sse_handler] |
245 | mov eax, [ebx+APPDATA.sse_handler] |
Line 247... | Line 246... | ||
247 | test eax, eax |
246 | test eax, eax |
248 | jz .default |
247 | jz .default |
249 | 248 | ||
250 | mov ecx, [reg_eip] |
249 | mov ecx, [reg_eip] |
251 | mov edx, [reg_esp] |
250 | mov edx, [reg_esp] |
252 | sub edx, 4 |
251 | sub edx, 4 |
Line 253... | Line 252... | ||
253 | mov [ss:edx+new_app_base], ecx |
252 | mov [edx], ecx |
254 | mov [reg_esp], edx |
253 | mov [reg_esp], edx |