Subversion Repositories Kolibri OS

Rev

Rev 164 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 164 Rev 168
Line 3... Line 3...
3
reg_eflags    equ ebp+12
3
reg_eflags    equ ebp+12
4
reg_esp       equ ebp+16
4
reg_esp       equ ebp+16
5
reg_ss        equ ebp+20
5
reg_ss        equ ebp+20
6
fpu_ctrl      equ ebp-28
6
;fpu_ctrl      equ ebp-28
7
 
7
 
8
align 4
8
align 4
Line 9... Line 9...
9
except_16:
9
except_16:
10
           push ebp
10
           push ebp
11
           mov ebp, esp
11
           mov ebp, esp
12
           sub esp, 28
12
;           sub esp, 28
13
 
13
 
Line 14... Line 14...
14
           push eax
14
           push eax
15
           push ebx
15
           push ebx
16
           push ecx
16
           push ecx
17
           push edx
17
           push edx
Line 39... Line 39...
39
           iretd
39
           iretd
40
 
40
 
Line 41... Line 41...
41
.default:
41
.default:
-
 
42
           pop edx
-
 
43
           pop ecx
-
 
44
           pop ebx
-
 
45
           pop eax
-
 
46
           leave
Line -... Line 47...
-
 
47
 
-
 
48
           save_ring3_context     ;debugger support
-
 
49
 
-
 
50
           mov bl, 16
-
 
51
           jmp exc_c
42
 
52
 
43
           fnstenv [fpu_ctrl]
53
;           fnstenv [fpu_ctrl]
44
           fnclex
54
;           fnclex
45
           or word [fpu_ctrl], 0111111b
55
;           or word [fpu_ctrl], 0111111b
-
 
56
;           fldenv [fpu_ctrl]
-
 
57
 
-
 
58
;          pop edx
-
 
59
;          pop ecx
-
 
60
;          pop ebx
-
 
61
;          pop eax
-
 
62
 
-
 
63
;           leave
-
 
64
;           iretd
-
 
65
 
-
 
66
align 16
-
 
67
except_19:
-
 
68
           push ebp
-
 
69
           mov ebp, esp
-
 
70
 
-
 
71
           push eax
-
 
72
           push ebx
-
 
73
           push ecx
-
 
74
           push edx
-
 
75
 
-
 
76
           mov ebx, [ss:CURRENT_TASK]
-
 
77
           shl ebx, 8
-
 
78
 
-
 
79
           mov eax, [ss:ebx+PROC_BASE+APPDATA.sse_handler]
-
 
80
           test eax, eax
-
 
81
           jz .default
-
 
82
 
-
 
83
           mov ecx, [reg_eip]
-
 
84
           mov edx, [reg_esp]
-
 
85
           sub edx, 4
-
 
86
           mov [ss:edx+new_app_base], ecx
-
 
87
           mov [reg_esp], edx
Line 46... Line 88...
46
           fldenv [fpu_ctrl]
88
           mov dword [reg_eip], eax
47
 
89
 
48
           pop edx
90
           pop edx
49
           pop ecx
91
           pop ecx
Line 50... Line 92...
50
           pop ebx
92
           pop ebx
51
           pop eax
93
           pop eax
Line -... Line 94...
-
 
94
 
-
 
95
           leave
-
 
96
           iretd
-
 
97
 
-
 
98
.default:
-
 
99
           pop edx
-
 
100
           pop ecx
-
 
101
           pop ebx
-
 
102
           pop eax
-
 
103
           leave
-
 
104
 
Line 52... Line 105...
52
 
105
           save_ring3_context     ;debugger support
53
           leave
106
 
54
           iretd
107
           mov bl, 19
55
 
108
           jmp exc_c
56
 
109
 
57
restore reg_eip
110
restore reg_eip