forked from KolibriOS/kolibrios
new sys_sheduler, small optimization
git-svn-id: svn://kolibrios.org@1271 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
c72ef7ec9e
commit
d97477fba6
@ -1,6 +1,6 @@
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;
|
;;
|
||||||
;; Copyright (C) KolibriOS team 2004-2008. All rights reserved.
|
;; Copyright (C) KolibriOS team 2004-2009. All rights reserved.
|
||||||
;; PROGRAMMING:
|
;; PROGRAMMING:
|
||||||
;; Ivan Poddubny
|
;; Ivan Poddubny
|
||||||
;; Marat Zakiyanov (Mario79)
|
;; Marat Zakiyanov (Mario79)
|
||||||
@ -18,6 +18,7 @@
|
|||||||
;; Johnny_B
|
;; Johnny_B
|
||||||
;; SPraid (simba)
|
;; SPraid (simba)
|
||||||
;; Hidnplayr
|
;; Hidnplayr
|
||||||
|
;; Alexey Teplov (<Lrz>)
|
||||||
;;
|
;;
|
||||||
;; Data in this file was originally part of MenuetOS project which is
|
;; Data in this file was originally part of MenuetOS project which is
|
||||||
;; distributed under the terms of GNU GPL. It is modified and redistributed as
|
;; distributed under the terms of GNU GPL. It is modified and redistributed as
|
||||||
@ -3380,26 +3381,40 @@ endg
|
|||||||
;3 - rdmsr. Counter in edx. (edx:eax) [esi:edi, edx] => [edx:esi, ecx]. Ret in ebx:eax. Block. ok.
|
;3 - rdmsr. Counter in edx. (edx:eax) [esi:edi, edx] => [edx:esi, ecx]. Ret in ebx:eax. Block. ok.
|
||||||
;4 - wrmsr. Counter in edx. (edx:eax) [esi:edi, edx] => [edx:esi, ecx]. Ret in ebx:eax. Block. ok.
|
;4 - wrmsr. Counter in edx. (edx:eax) [esi:edi, edx] => [edx:esi, ecx]. Ret in ebx:eax. Block. ok.
|
||||||
;---------------------------------------------------------------------------------------------
|
;---------------------------------------------------------------------------------------------
|
||||||
sys_sheduler: ;noname & halyavin
|
sys_sheduler:
|
||||||
cmp eax,0
|
;rewroterd by <Lrz> 15.11.2009
|
||||||
je shed_counter
|
test eax,eax
|
||||||
cmp eax,2
|
jz shed_counter ;eax=0
|
||||||
je perf_control
|
dec eax
|
||||||
cmp eax,3
|
jz not_supported ;eax=1
|
||||||
je rdmsr_instr
|
dec eax
|
||||||
cmp eax,4
|
jz perf_control ;eax=2
|
||||||
je wrmsr_instr
|
dec eax
|
||||||
cmp eax,1
|
jz rdmsr_instr ;eax=3
|
||||||
jne not_supported
|
dec eax
|
||||||
call change_task ;delay,0
|
jz wrmsr_instr ;eax=4
|
||||||
|
; old sys_sheduler ;noname & halyavin
|
||||||
|
; cmp eax,0
|
||||||
|
; je shed_counter
|
||||||
|
; cmp eax,2
|
||||||
|
; je perf_control
|
||||||
|
; cmp eax,3
|
||||||
|
; je rdmsr_instr
|
||||||
|
; cmp eax,4
|
||||||
|
; je wrmsr_instr
|
||||||
|
; cmp eax,1
|
||||||
|
; jne not_supported
|
||||||
|
; call change_task ;delay,0
|
||||||
|
not_supported:
|
||||||
ret
|
ret
|
||||||
shed_counter:
|
shed_counter:
|
||||||
mov eax,[context_counter]
|
mov eax,[context_counter]
|
||||||
mov [esp+36],eax
|
mov [esp+36],eax
|
||||||
not_supported:
|
;not_supported:
|
||||||
ret
|
ret
|
||||||
perf_control:
|
perf_control:
|
||||||
inc eax ;now eax=3
|
; inc eax ;now eax=3
|
||||||
|
add eax,3 ;
|
||||||
cmp ebx,eax
|
cmp ebx,eax
|
||||||
je cache_disable
|
je cache_disable
|
||||||
dec eax
|
dec eax
|
||||||
|
Loading…
Reference in New Issue
Block a user