(%compare-float) ( dst src1 src2 cc temp compare -- )


Vocabulary
cpu.x86

Inputs
dstan object
src1an object
src2an object
ccan object
tempan object
comparean object


Outputs
None

Definition


:: (%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