forked from KolibriOS/kolibrios
small optimization for get_event_for_app
git-svn-id: svn://kolibrios.org@2534 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
7da22254e8
commit
c38b67dd40
@ -497,12 +497,21 @@ align 4
|
|||||||
btr ecx, eax ; ñáðàñûâàåì ïðîâåðÿåìûé áèò ìàñêè
|
btr ecx, eax ; ñáðàñûâàåì ïðîâåðÿåìûé áèò ìàñêè
|
||||||
; ïåðåõîäèì íà îáðàáîò÷èê ýòîãî (eax) áèòà
|
; ïåðåõîäèì íà îáðàáîò÷èê ýòîãî (eax) áèòà
|
||||||
cmp eax, 9
|
cmp eax, 9
|
||||||
jae .loop ; eax=[9..31], ignored
|
jae .loop ; eax=[9..31], ignored (event 10...32)
|
||||||
|
|
||||||
cmp eax, 3
|
cmp eax, 3
|
||||||
je .loop ; eax=3, ignored
|
je .loop ; eax=3, ignored (event 4)
|
||||||
ja .FlagAutoReset ; eax=[4..8], retvals=eax+1
|
|
||||||
|
cmp eax, 4
|
||||||
|
je .FlagAutoReset ; eax=4, retvals=eax+1 (event 5)
|
||||||
|
|
||||||
|
cmp eax, 5
|
||||||
|
je .mouse_check ; eax=5, retvals=eax+1 (event 6)
|
||||||
|
|
||||||
|
ja .FlagAutoReset ; eax=[6..8], retvals=eax+1 (event 7...9)
|
||||||
|
|
||||||
cmp eax, 1
|
cmp eax, 1
|
||||||
jae .BtKy ; eax=[1,2], retvals=eax+1
|
jae .BtKy ; eax=[1,2], retvals=eax+1 (event 2,3)
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
.WndRedraw: ; eax=0, retval WndRedraw=1
|
.WndRedraw: ; eax=0, retval WndRedraw=1
|
||||||
@ -516,16 +525,14 @@ align 4
|
|||||||
ret
|
ret
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
.FlagAutoReset: ; retvals: BgrRedraw=5, Mouse=6, IPC=7, Stack=8, Debug=9
|
.mouse_check: ; Mouse 5+1=6
|
||||||
cmp eax, 5; Mouse 5+1=6
|
|
||||||
jne .no_mouse_check
|
|
||||||
push eax
|
push eax
|
||||||
mov eax, [TASK_BASE]
|
mov eax, [TASK_BASE]
|
||||||
mov eax, [eax + TASKDATA.event_mask]
|
mov eax, [eax + TASKDATA.event_mask]
|
||||||
test eax, 0x80000000 ; bit 31: active/inactive filter f.40
|
test eax, 0x80000000 ; bit 31: active/inactive filter f.40
|
||||||
jz @f
|
jz @f
|
||||||
pop eax
|
pop eax
|
||||||
jmp .no_mouse_check
|
jmp .FlagAutoReset
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
@@:
|
@@:
|
||||||
@ -537,7 +544,7 @@ align 4
|
|||||||
jnz .loop
|
jnz .loop
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
.no_mouse_check:
|
.FlagAutoReset: ; retvals: BgrRedraw=5, IPC=7, Stack=8, Debug=9
|
||||||
btr [ebx+APPDATA.event_mask], eax
|
btr [ebx+APPDATA.event_mask], eax
|
||||||
jnc .loop
|
jnc .loop
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user