microblaze: Add support for fcmp.un

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
diff --git a/target-microblaze/op_helper.c b/target-microblaze/op_helper.c
index 294e08c..3d2b313 100644
--- a/target-microblaze/op_helper.c
+++ b/target-microblaze/op_helper.c
@@ -297,8 +297,22 @@
 
 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)