forked from KolibriOS/kolibrios
Added CMOVcc replacements to kernel macros (for eBox)
git-svn-id: svn://kolibrios.org@2866 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
7aeabda91e
commit
96f1dd834c
@ -117,3 +117,83 @@ macro list_del entry
|
|||||||
mov [ecx+list_fd], edx
|
mov [ecx+list_fd], edx
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __CPU_type eq p5 ; CMOVcc isnt supported on the P5
|
||||||
|
|
||||||
|
cmove fix cmovz
|
||||||
|
macro cmovz reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
jnz .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
cmovne fix cmovnz
|
||||||
|
macro cmovnz reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
jz .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
macro cmovg reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
jle .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
macro cmovl reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
jge .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
macro cmova reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
jbe .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
macro cmovb reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
jae .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
macro cmovae reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
jb .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
macro cmovbe reg1, reg2 {
|
||||||
|
|
||||||
|
local .jumpaddr
|
||||||
|
|
||||||
|
ja .jumpaddr
|
||||||
|
mov reg1, reg2
|
||||||
|
.jumpaddr:
|
||||||
|
}
|
||||||
|
|
||||||
|
end if
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ include 'tcp_output.inc'
|
|||||||
;
|
;
|
||||||
; TCP_API
|
; TCP_API
|
||||||
;
|
;
|
||||||
; This function is called by system function 75
|
; This function is called by system function 76
|
||||||
;
|
;
|
||||||
; IN: subfunction number in bl
|
; IN: subfunction number in bl
|
||||||
; device number in bh
|
; device number in bh
|
||||||
|
@ -966,7 +966,7 @@ align 4
|
|||||||
|
|
||||||
mov eax, [ebx + TCP_SOCKET.SND_WND]
|
mov eax, [ebx + TCP_SOCKET.SND_WND]
|
||||||
cmp eax, [ebx + TCP_SOCKET.SND_CWND]
|
cmp eax, [ebx + TCP_SOCKET.SND_CWND]
|
||||||
cmovg eax, [ebx + TCP_SOCKET.SND_CWND]
|
cmova eax, [ebx + TCP_SOCKET.SND_CWND]
|
||||||
shr eax, 1
|
shr eax, 1
|
||||||
push edx
|
push edx
|
||||||
xor edx, edx
|
xor edx, edx
|
||||||
@ -1108,7 +1108,7 @@ align 4
|
|||||||
pop ecx
|
pop ecx
|
||||||
|
|
||||||
cmp esi, eax
|
cmp esi, eax
|
||||||
cmovg esi, eax
|
cmova esi, eax
|
||||||
mov [ebx + TCP_SOCKET.SND_CWND], esi
|
mov [ebx + TCP_SOCKET.SND_CWND], esi
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user