Rev 1055 | Rev 1276 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1055 | Rev 1220 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 1055 $ |
8 | $Revision: 1220 $ |
9 | 9 | ||
10 | 10 | ||
Line 172... | Line 172... | ||
172 | mov ecx, APPDATA.dir_table |
172 | mov ecx, APPDATA.dir_table |
173 | mov eax, [ebx+ecx] ;offset>0x7F |
173 | mov eax, [ebx+ecx] ;offset>0x7F |
174 | cmp eax, [esi+ecx] ;offset>0x7F |
174 | cmp eax, [esi+ecx] ;offset>0x7F |
175 | je @f |
175 | je @f |
176 | mov cr3, eax |
176 | mov cr3, eax |
- | 177 | @@: |
|
177 | @@: ; set tss.esp0 |
178 | ; set tss.esp0 |
- | 179 | ||
178 | Mov [tss._esp0],eax,[ebx+APPDATA.saved_esp0] |
180 | Mov [tss._esp0],eax,[ebx+APPDATA.saved_esp0] |
- | 181 | ||
- | 182 | mov edx, [ebx+APPDATA.tls_base] |
|
- | 183 | cmp edx, [esi+APPDATA.tls_base] |
|
- | 184 | je @f |
|
- | 185 | ||
- | 186 | mov [tls_data_l+2],dx |
|
- | 187 | shr edx,16 |
|
- | 188 | mov [tls_data_l+4],dl |
|
- | 189 | mov [tls_data_l+7],dh |
|
- | 190 | ||
- | 191 | mov dx, app_tls |
|
- | 192 | mov fs, dx |
|
- | 193 | @: |
|
179 | ; set gs selector unconditionally |
194 | ; set gs selector unconditionally |
180 | Mov gs,ax,graph_data |
195 | Mov gs,ax,graph_data |
181 | ; set CR0.TS |
196 | ; set CR0.TS |
182 | cmp bh, byte[fpu_owner] ;bh == incoming task (new) |
197 | cmp bh, byte[fpu_owner] ;bh == incoming task (new) |
183 | clts ;clear a task switch flag |
198 | clts ;clear a task switch flag |