target-alpha: Implement fp branch/cmov inline.

The old fcmov implementation had a typo:
-        tcg_gen_mov_i64(cpu_fir[rc], cpu_fir[ra]);
which moved the condition, not the second source, to the destination.

But it's also easy to implement the simplified fp comparison inline.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
Richard Henderson 2009-12-13 17:46:17 -08:00 committed by Aurelien Jarno
parent fe57ca82b0
commit dbb30fe6ef
3 changed files with 112 additions and 127 deletions

View file

@ -884,37 +884,6 @@ uint64_t helper_cmpglt(uint64_t a, uint64_t b)
return 0;
}
uint64_t helper_cmpfeq (uint64_t a)
{
return !(a & 0x7FFFFFFFFFFFFFFFULL);
}
uint64_t helper_cmpfne (uint64_t a)
{
return (a & 0x7FFFFFFFFFFFFFFFULL);
}
uint64_t helper_cmpflt (uint64_t a)
{
return (a & 0x8000000000000000ULL) && (a & 0x7FFFFFFFFFFFFFFFULL);
}
uint64_t helper_cmpfle (uint64_t a)
{
return (a & 0x8000000000000000ULL) || !(a & 0x7FFFFFFFFFFFFFFFULL);
}
uint64_t helper_cmpfgt (uint64_t a)
{
return !(a & 0x8000000000000000ULL) && (a & 0x7FFFFFFFFFFFFFFFULL);
}
uint64_t helper_cmpfge (uint64_t a)
{
return !(a & 0x8000000000000000ULL) || !(a & 0x7FFFFFFFFFFFFFFFULL);
}
/* Floating point format conversion */
uint64_t helper_cvtts (uint64_t a)
{