From ef9d48da598691ca97bb3588f8bf625717f65418 Mon Sep 17 00:00:00 2001 From: "Edgar E. Iglesias" Date: Thu, 9 Sep 2010 22:05:48 +0200 Subject: microblaze: Add support for fcmp.un Signed-off-by: Edgar E. Iglesias --- target-microblaze/op_helper.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'target-microblaze') diff --git a/target-microblaze/op_helper.c b/target-microblaze/op_helper.c index 294e08c253..3d2b313fb3 100644 --- a/target-microblaze/op_helper.c +++ b/target-microblaze/op_helper.c @@ -297,8 +297,22 @@ uint32_t helper_fdiv(uint32_t a, uint32_t b) uint32_t helper_fcmp_un(uint32_t a, uint32_t b) { - cpu_abort(env, "Unsupported fcmp.un\n"); - return 0; + CPU_FloatU fa, fb; + uint32_t r = 0; + + fa.l = a; + fb.l = b; + + if (float32_is_signaling_nan(fa.f) || float32_is_signaling_nan(fb.f)) { + update_fpu_flags(float_flag_invalid); + r = 1; + } + + if (float32_is_nan(fa.f) || float32_is_nan(fb.f)) { + r = 1; + } + + return r; } uint32_t helper_fcmp_lt(uint32_t a, uint32_t b) -- cgit v1.2.3