Handbook
Glossary
(%compare-float) ( dst src1 src2 cc temp compare -- )
Vocabulary
cpu
.
x86
Inputs
dst
an
object
src1
an
object
src2
an
object
cc
an
object
temp
an
object
compare
an
object
Outputs
None
Definition
USING:
combinators
compiler.cfg.comparisons
cpu.x86.assembler
;
IN:
cpu.x86
::
(%compare-float)
( dst src1 src2 cc temp compare -- )
cc
{
{
cc<
[
src2 src1 compare ( a b -- )
call-effect
dst temp
\
CMOVA
(%boolean)
]
}
{
cc<=
[
src2 src1 compare ( a b -- )
call-effect
dst temp
\
CMOVAE
(%boolean)
]
}
{
cc>
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVA
(%boolean)
]
}
{
cc>=
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVAE
(%boolean)
]
}
{
cc=
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
%cmov-float=
(%boolean)
]
}
{
cc<>
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVNE
(%boolean)
]
}
{
cc<>=
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVNP
(%boolean)
]
}
{
cc/<
[
src2 src1 compare ( a b -- )
call-effect
dst temp
\
CMOVBE
(%boolean)
]
}
{
cc/<=
[
src2 src1 compare ( a b -- )
call-effect
dst temp
\
CMOVB
(%boolean)
]
}
{
cc/>
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVBE
(%boolean)
]
}
{
cc/>=
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVB
(%boolean)
]
}
{
cc/=
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
%cmov-float/=
(%boolean)
]
}
{
cc/<>
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVE
(%boolean)
]
}
{
cc/<>=
[
src1 src2 compare ( a b -- )
call-effect
dst temp
\
CMOVP
(%boolean)
]
}
}
case
;
inline