summaryrefslogtreecommitdiffstats
path: root/include/fpu
diff options
context:
space:
mode:
authorRichard Henderson2021-05-08 03:40:28 +0200
committerRichard Henderson2021-06-03 23:09:02 +0200
commitfeaf2e9c063001a5f9afac0cc1af4ed9dc2af9bc (patch)
tree442222bdbe23b4cb8cee756320173e9d8a6e600d /include/fpu
parentsoftfloat: Move floatN_log2 to softfloat-parts.c.inc (diff)
downloadqemu-feaf2e9c063001a5f9afac0cc1af4ed9dc2af9bc.tar.gz
qemu-feaf2e9c063001a5f9afac0cc1af4ed9dc2af9bc.tar.xz
qemu-feaf2e9c063001a5f9afac0cc1af4ed9dc2af9bc.zip
softfloat: Convert modrem operations to FloatParts
Rename to parts$N_modrem. This was the last use of a lot of the legacy infrastructure, so remove it as required. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/fpu')
-rw-r--r--include/fpu/softfloat-macros.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/fpu/softfloat-macros.h b/include/fpu/softfloat-macros.h
index ec4e27a595..81c3fe8256 100644
--- a/include/fpu/softfloat-macros.h
+++ b/include/fpu/softfloat-macros.h
@@ -745,4 +745,38 @@ static inline bool ne128(uint64_t a0, uint64_t a1, uint64_t b0, uint64_t b1)
return a0 != b0 || a1 != b1;
}
+/*
+ * Similarly, comparisons of 192-bit values.
+ */
+
+static inline bool eq192(uint64_t a0, uint64_t a1, uint64_t a2,
+ uint64_t b0, uint64_t b1, uint64_t b2)
+{
+ return ((a0 ^ b0) | (a1 ^ b1) | (a2 ^ b2)) == 0;
+}
+
+static inline bool le192(uint64_t a0, uint64_t a1, uint64_t a2,
+ uint64_t b0, uint64_t b1, uint64_t b2)
+{
+ if (a0 != b0) {
+ return a0 < b0;
+ }
+ if (a1 != b1) {
+ return a1 < b1;
+ }
+ return a2 <= b2;
+}
+
+static inline bool lt192(uint64_t a0, uint64_t a1, uint64_t a2,
+ uint64_t b0, uint64_t b1, uint64_t b2)
+{
+ if (a0 != b0) {
+ return a0 < b0;
+ }
+ if (a1 != b1) {
+ return a1 < b1;
+ }
+ return a2 < b2;
+}
+
#endif