aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/fminm_d.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/insns/fminm_d.h')
-rw-r--r--riscv/insns/fminm_d.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/riscv/insns/fminm_d.h b/riscv/insns/fminm_d.h
new file mode 100644
index 0000000..a60d3e8
--- /dev/null
+++ b/riscv/insns/fminm_d.h
@@ -0,0 +1,10 @@
+require_extension('D');
+require_extension(EXT_ZFA);
+require_fp;
+bool less = f64_lt_quiet(FRS1_D, FRS2_D) ||
+ (f64_eq(FRS2_D, FRS1_D) && (FRS1_D.v & F64_SIGN));
+if (isNaNF64UI(FRS1_D.v) || isNaNF64UI(FRS2_D.v))
+ WRITE_FRD_D(f64(defaultNaNF64UI));
+else
+ WRITE_FRD_D(less ? FRS1_D : FRS2_D);
+set_fp_exceptions;