From: Edgar E. Iglesias Date: Thu, 9 Sep 2010 20:05:48 +0000 (+0200) Subject: microblaze: Add support for fcmp.un X-Git-Tag: v0.14.0-rc0~693 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ef9d48da598691ca97bb3588f8bf625717f65418;p=thirdparty%2Fqemu.git microblaze: Add support for fcmp.un Signed-off-by: Edgar E. Iglesias --- diff --git a/target-microblaze/op_helper.c b/target-microblaze/op_helper.c index 294e08c2532..3d2b313fb35 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)