Rev 183 | Rev 214 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 183 | Rev 203 | ||
---|---|---|---|
Line 234... | Line 234... | ||
234 | 234 | ||
235 | mov eax, [ebx+PROC_BASE+APPDATA.fpu_state] |
235 | mov eax, [ebx+PROC_BASE+APPDATA.fpu_state] |
236 | frstor [eax] |
236 | frstor [eax] |
237 | restore_ring3_context |
237 | restore_ring3_context |
238 | iret |
- | |
239 | 238 | iret |
|
240 | .init: |
239 | .init: |
241 | fninit ; ¬ ¥ ã¦ë ¥¬ ᪨஢ ë¥ ¨áª«î票ï |
240 | fninit ; ¬ ¥ ã¦ë ¥¬ ᪨஢ ë¥ ¨áª«î票ï |
242 | .ready: |
241 | .ready: |
243 | mov dword [ebx+PROC_BASE+APPDATA.fpu_init], 1 |
242 | mov dword [ebx+PROC_BASE+APPDATA.fpu_init], 1 |
Line 691... | Line 690... | ||
691 | stdcall destroy_app_space, eax |
690 | stdcall destroy_app_space, eax |
692 | popad |
691 | popad |
Line 693... | Line 692... | ||
693 | 692 | ||
694 | cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
693 | cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
- | 694 | jne fpu_ok_1 |
|
695 | jne fpu_ok_1 |
695 | |
- | 696 | mov [fpu_owner],1 |
|
- | 697 | mov eax, [256+PROC_BASE+0x10] |
|
- | 698 | bt [cpu_caps], CAPS_FXSR |
|
- | 699 | jnc .no_SSE |
|
- | 700 | fxrstor [eax] |
|
- | 701 | jmp fpu_ok_1 |
|
- | 702 | .no_SSE: |
|
- | 703 | fnclex |
|
696 | mov [fpu_owner],1 |
704 | frstor [eax] |
Line 697... | Line 705... | ||
697 | fpu_ok_1: |
705 | fpu_ok_1: |
698 | 706 |