Fix substitution macros for CMOVcc.

git-svn-id: svn://kolibrios.org@5383 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2015-01-18 18:25:06 +00:00
parent 8c18445c6b
commit e7981db306

View File

@ -578,48 +578,55 @@ struct FILEINFO
Size dq ?
ends
if __CPU_type eq p5 ; CMOVcc isnt supported on the P5
cmove fix cmovz
macro cmovz reg1, reg2 {
local .jumpaddr
jnz .jumpaddr
if __CPU_type eq p5 ; CMOVcc isnt supported on the P5
jnz ..jumpaddr
mov reg1, reg2
.jumpaddr:
..jumpaddr:
else
cmovz reg1, reg2
end if
}
cmovne fix cmovnz
macro cmovnz reg1, reg2 {
local .jumpaddr
jz .jumpaddr
if __CPU_type eq p5 ; CMOVcc isnt supported on the P5
jz ..jumpaddr
mov reg1, reg2
.jumpaddr:
..jumpaddr:
else
cmovnz reg1, reg2
end if
}
macro cmovg reg1, reg2 {
local .jumpaddr
jle .jumpaddr
if __CPU_type eq p5 ; CMOVcc isnt supported on the P5
jle ..jumpaddr
mov reg1, reg2
.jumpaddr:
..jumpaddr:
else
cmovg reg1, reg2
end if
}
macro cmovl reg1, reg2 {
local .jumpaddr
jge .jumpaddr
if __CPU_type eq p5 ; CMOVcc isnt supported on the P5
jge ..jumpaddr
mov reg1, reg2
.jumpaddr:
}
..jumpaddr:
else
cmovl reg1, reg2
end if
}
; constants