aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog154
-rw-r--r--soft-fp/double.h72
-rw-r--r--soft-fp/extended.h82
-rw-r--r--soft-fp/op-1.h52
-rw-r--r--soft-fp/op-2.h72
-rw-r--r--soft-fp/op-4.h122
-rw-r--r--soft-fp/op-common.h125
-rw-r--r--soft-fp/quad.h72
-rw-r--r--soft-fp/single.h36
9 files changed, 482 insertions, 305 deletions
diff --git a/ChangeLog b/ChangeLog
index f8f2221d7c..d41aba674e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,159 @@
2014-10-09 Joseph Myers <joseph@codesourcery.com>
+ * soft-fp/double.h [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_RAW_D): Use
+ parentheses around macro arguments.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_RAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_RAW_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_RAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_DP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_SEMIRAW_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_SEMIRAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_DP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_SEMIRAW_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_SEMIRAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (_FP_SQRT_MEAT_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_EQ_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_UNORD_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_TO_INT_D): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_FROM_INT_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_RAW_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_RAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_RAW_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_RAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_DP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_SEMIRAW_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_SEMIRAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_DP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_SEMIRAW_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_SEMIRAW_DP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (_FP_SQRT_MEAT_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_EQ_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_UNORD_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_TO_INT_D): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_FROM_INT_D): Likewise.
+ * soft-fp/extended.h [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_E):
+ Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_EP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_SEMIRAW_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_SEMIRAW_EP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_EP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_SEMIRAW_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_SEMIRAW_EP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (_FP_SQRT_MEAT_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_EQ_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_UNORD_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_TO_INT_E): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_FROM_INT_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_EP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_SEMIRAW_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_SEMIRAW_EP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_EP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_SEMIRAW_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_SEMIRAW_EP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (_FP_SQRT_MEAT_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_EQ_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_UNORD_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_TO_INT_E): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_FROM_INT_E): Likewise.
+ * soft-fp/op-1.h (_FP_FRAC_SRST_1): Likewise.
+ (_FP_FRAC_SRS_1): Likewise.
+ (_FP_FRAC_CLZ_1): Likewise.
+ (_FP_MUL_MEAT_1_imm): Likewise.
+ (_FP_MUL_MEAT_1_wide): Likewise.
+ (_FP_MUL_MEAT_1_hard): Likewise.
+ (_FP_SQRT_MEAT_1): Likewise.
+ (_FP_FRAC_ASSEMBLE_1): Likewise.
+ (_FP_FRAC_DISASSEMBLE_1): Likewise.
+ * soft-fp/op-2.h (_FP_FRAC_CLZ_2): Likewise.
+ (__FP_CLZ_2): Likewise.
+ (_FP_MUL_MEAT_2_wide): Likewise.
+ (_FP_MUL_MEAT_2_wide_3mul): Likewise.
+ (_FP_MUL_MEAT_2_gmp): Likewise.
+ (_FP_MUL_MEAT_2_120_240_double): Likewise.
+ (_FP_SQRT_MEAT_2): Likewise.
+ (_FP_FRAC_ASSEMBLE_2): Likewise.
+ (_FP_FRAC_DISASSEMBLE_2): Likewise.
+ * soft-fp/op-4.h (_FP_FRAC_SRS_4): Likewise.
+ (_FP_FRAC_CLZ_4): Likewise.
+ (_FP_MUL_MEAT_4_wide): Likewise.
+ (_FP_MUL_MEAT_4_gmp): Likewise.
+ (_FP_SQRT_MEAT_4): Likewise.
+ (_FP_FRAC_ASSEMBLE_4): Likewise.
+ (_FP_FRAC_DISASSEMBLE_4): Likewise.
+ * soft-fp/op-common.h (_FP_CMP): Likewise.
+ (_FP_CMP_EQ): Likewise.
+ (_FP_CMP_UNORD): Likewise.
+ (_FP_TO_INT): Likewise.
+ (_FP_FROM_INT): Likewise.
+ [!__FP_CLZ] (__FP_CLZ): Likewise.
+ (_FP_DIV_HELP_imm): Likewise.
+ * soft-fp/quad.h [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_RAW_Q):
+ Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_RAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_RAW_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_RAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_QP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_SEMIRAW_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_SEMIRAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_QP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_SEMIRAW_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_PACK_SEMIRAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (_FP_SQRT_MEAT_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_EQ_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_CMP_UNORD_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_TO_INT_Q): Likewise.
+ [_FP_W_TYPE_SIZE < 64] (FP_FROM_INT_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_RAW_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_RAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_RAW_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_RAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_QP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_SEMIRAW_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_SEMIRAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_QP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_SEMIRAW_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_PACK_SEMIRAW_QP): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (_FP_SQRT_MEAT_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_EQ_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_CMP_UNORD_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_TO_INT_Q): Likewise.
+ [_FP_W_TYPE_SIZE >= 64] (FP_FROM_INT_Q): Likewise.
+ * soft-fp/single.h (FP_UNPACK_RAW_S): Likewise.
+ (FP_UNPACK_RAW_SP): Likewise.
+ (FP_PACK_RAW_S): Likewise.
+ (FP_PACK_RAW_SP): Likewise.
+ (FP_UNPACK_S): Likewise.
+ (FP_UNPACK_SP): Likewise.
+ (FP_UNPACK_SEMIRAW_S): Likewise.
+ (FP_UNPACK_SEMIRAW_SP): Likewise.
+ (FP_PACK_S): Likewise.
+ (FP_PACK_SP): Likewise.
+ (FP_PACK_SEMIRAW_S): Likewise.
+ (FP_PACK_SEMIRAW_SP): Likewise.
+ (_FP_SQRT_MEAT_S): Likewise.
+ (FP_CMP_S): Likewise.
+ (FP_CMP_EQ_S): Likewise.
+ (FP_CMP_UNORD_S): Likewise.
+ (FP_TO_INT_S): Likewise.
+ (FP_FROM_INT_S): Likewise.
+
* soft-fp/op-common.h (_FP_TO_INT): Handle rsigned == 2.
* soft-fp/soft-fp.h (FP_EX_INVALID_SNAN): New macro.
diff --git a/soft-fp/double.h b/soft-fp/double.h
index 1e6283e655..36a11a5452 100644
--- a/soft-fp/double.h
+++ b/soft-fp/double.h
@@ -90,21 +90,21 @@ union _FP_UNION_D
};
# define FP_DECL_D(X) _FP_DECL (2, X)
-# define FP_UNPACK_RAW_D(X, val) _FP_UNPACK_RAW_2 (D, X, val)
-# define FP_UNPACK_RAW_DP(X, val) _FP_UNPACK_RAW_2_P (D, X, val)
-# define FP_PACK_RAW_D(val, X) _FP_PACK_RAW_2 (D, val, X)
+# define FP_UNPACK_RAW_D(X, val) _FP_UNPACK_RAW_2 (D, X, (val))
+# define FP_UNPACK_RAW_DP(X, val) _FP_UNPACK_RAW_2_P (D, X, (val))
+# define FP_PACK_RAW_D(val, X) _FP_PACK_RAW_2 (D, (val), X)
# define FP_PACK_RAW_DP(val, X) \
do \
{ \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P (D, val, X); \
+ _FP_PACK_RAW_2_P (D, (val), X); \
} \
while (0)
# define FP_UNPACK_D(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2 (D, X, val); \
+ _FP_UNPACK_RAW_2 (D, X, (val)); \
_FP_UNPACK_CANONICAL (D, 2, X); \
} \
while (0)
@@ -112,7 +112,7 @@ union _FP_UNION_D
# define FP_UNPACK_DP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2_P (D, X, val); \
+ _FP_UNPACK_RAW_2_P (D, X, (val)); \
_FP_UNPACK_CANONICAL (D, 2, X); \
} \
while (0)
@@ -120,7 +120,7 @@ union _FP_UNION_D
# define FP_UNPACK_SEMIRAW_D(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2 (D, X, val); \
+ _FP_UNPACK_RAW_2 (D, X, (val)); \
_FP_UNPACK_SEMIRAW (D, 2, X); \
} \
while (0)
@@ -128,7 +128,7 @@ union _FP_UNION_D
# define FP_UNPACK_SEMIRAW_DP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2_P (D, X, val); \
+ _FP_UNPACK_RAW_2_P (D, X, (val)); \
_FP_UNPACK_SEMIRAW (D, 2, X); \
} \
while (0)
@@ -137,7 +137,7 @@ union _FP_UNION_D
do \
{ \
_FP_PACK_CANONICAL (D, 2, X); \
- _FP_PACK_RAW_2 (D, val, X); \
+ _FP_PACK_RAW_2 (D, (val), X); \
} \
while (0)
@@ -146,7 +146,7 @@ union _FP_UNION_D
{ \
_FP_PACK_CANONICAL (D, 2, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P (D, val, X); \
+ _FP_PACK_RAW_2_P (D, (val), X); \
} \
while (0)
@@ -154,7 +154,7 @@ union _FP_UNION_D
do \
{ \
_FP_PACK_SEMIRAW (D, 2, X); \
- _FP_PACK_RAW_2 (D, val, X); \
+ _FP_PACK_RAW_2 (D, (val), X); \
} \
while (0)
@@ -163,7 +163,7 @@ union _FP_UNION_D
{ \
_FP_PACK_SEMIRAW (D, 2, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P (D, val, X); \
+ _FP_PACK_RAW_2_P (D, (val), X); \
} \
while (0)
@@ -174,15 +174,15 @@ union _FP_UNION_D
# define FP_MUL_D(R, X, Y) _FP_MUL (D, 2, R, X, Y)
# define FP_DIV_D(R, X, Y) _FP_DIV (D, 2, R, X, Y)
# define FP_SQRT_D(R, X) _FP_SQRT (D, 2, R, X)
-# define _FP_SQRT_MEAT_D(R, S, T, X, Q) _FP_SQRT_MEAT_2 (R, S, T, X, Q)
+# define _FP_SQRT_MEAT_D(R, S, T, X, Q) _FP_SQRT_MEAT_2 (R, S, T, X, (Q))
# define FP_FMA_D(R, X, Y, Z) _FP_FMA (D, 2, 4, R, X, Y, Z)
-# define FP_CMP_D(r, X, Y, un, ex) _FP_CMP (D, 2, r, X, Y, un, ex)
-# define FP_CMP_EQ_D(r, X, Y, ex) _FP_CMP_EQ (D, 2, r, X, Y, ex)
-# define FP_CMP_UNORD_D(r, X, Y, ex) _FP_CMP_UNORD (D, 2, r, X, Y, ex)
+# define FP_CMP_D(r, X, Y, un, ex) _FP_CMP (D, 2, (r), X, Y, (un), (ex))
+# define FP_CMP_EQ_D(r, X, Y, ex) _FP_CMP_EQ (D, 2, (r), X, Y, (ex))
+# define FP_CMP_UNORD_D(r, X, Y, ex) _FP_CMP_UNORD (D, 2, (r), X, Y, (ex))
-# define FP_TO_INT_D(r, X, rsz, rsg) _FP_TO_INT (D, 2, r, X, rsz, rsg)
-# define FP_FROM_INT_D(X, r, rs, rt) _FP_FROM_INT (D, 2, X, r, rs, rt)
+# define FP_TO_INT_D(r, X, rsz, rsg) _FP_TO_INT (D, 2, (r), X, (rsz), (rsg))
+# define FP_FROM_INT_D(X, r, rs, rt) _FP_FROM_INT (D, 2, X, (r), (rs), rt)
# define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_2 (X)
# define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_2 (X)
@@ -209,21 +209,21 @@ union _FP_UNION_D
};
# define FP_DECL_D(X) _FP_DECL (1, X)
-# define FP_UNPACK_RAW_D(X, val) _FP_UNPACK_RAW_1 (D, X, val)
-# define FP_UNPACK_RAW_DP(X, val) _FP_UNPACK_RAW_1_P (D, X, val)
-# define FP_PACK_RAW_D(val, X) _FP_PACK_RAW_1 (D, val, X)
+# define FP_UNPACK_RAW_D(X, val) _FP_UNPACK_RAW_1 (D, X, (val))
+# define FP_UNPACK_RAW_DP(X, val) _FP_UNPACK_RAW_1_P (D, X, (val))
+# define FP_PACK_RAW_D(val, X) _FP_PACK_RAW_1 (D, (val), X)
# define FP_PACK_RAW_DP(val, X) \
do \
{ \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P (D, val, X); \
+ _FP_PACK_RAW_1_P (D, (val), X); \
} \
while (0)
# define FP_UNPACK_D(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1 (D, X, val); \
+ _FP_UNPACK_RAW_1 (D, X, (val)); \
_FP_UNPACK_CANONICAL (D, 1, X); \
} \
while (0)
@@ -231,7 +231,7 @@ union _FP_UNION_D
# define FP_UNPACK_DP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1_P (D, X, val); \
+ _FP_UNPACK_RAW_1_P (D, X, (val)); \
_FP_UNPACK_CANONICAL (D, 1, X); \
} \
while (0)
@@ -239,7 +239,7 @@ union _FP_UNION_D
# define FP_UNPACK_SEMIRAW_D(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1 (D, X, val); \
+ _FP_UNPACK_RAW_1 (D, X, (val)); \
_FP_UNPACK_SEMIRAW (D, 1, X); \
} \
while (0)
@@ -247,7 +247,7 @@ union _FP_UNION_D
# define FP_UNPACK_SEMIRAW_DP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1_P (D, X, val); \
+ _FP_UNPACK_RAW_1_P (D, X, (val)); \
_FP_UNPACK_SEMIRAW (D, 1, X); \
} \
while (0)
@@ -256,7 +256,7 @@ union _FP_UNION_D
do \
{ \
_FP_PACK_CANONICAL (D, 1, X); \
- _FP_PACK_RAW_1 (D, val, X); \
+ _FP_PACK_RAW_1 (D, (val), X); \
} \
while (0)
@@ -265,7 +265,7 @@ union _FP_UNION_D
{ \
_FP_PACK_CANONICAL (D, 1, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P (D, val, X); \
+ _FP_PACK_RAW_1_P (D, (val), X); \
} \
while (0)
@@ -273,7 +273,7 @@ union _FP_UNION_D
do \
{ \
_FP_PACK_SEMIRAW (D, 1, X); \
- _FP_PACK_RAW_1 (D, val, X); \
+ _FP_PACK_RAW_1 (D, (val), X); \
} \
while (0)
@@ -282,7 +282,7 @@ union _FP_UNION_D
{ \
_FP_PACK_SEMIRAW (D, 1, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P (D, val, X); \
+ _FP_PACK_RAW_1_P (D, (val), X); \
} \
while (0)
@@ -293,18 +293,18 @@ union _FP_UNION_D
# define FP_MUL_D(R, X, Y) _FP_MUL (D, 1, R, X, Y)
# define FP_DIV_D(R, X, Y) _FP_DIV (D, 1, R, X, Y)
# define FP_SQRT_D(R, X) _FP_SQRT (D, 1, R, X)
-# define _FP_SQRT_MEAT_D(R, S, T, X, Q) _FP_SQRT_MEAT_1 (R, S, T, X, Q)
+# define _FP_SQRT_MEAT_D(R, S, T, X, Q) _FP_SQRT_MEAT_1 (R, S, T, X, (Q))
# define FP_FMA_D(R, X, Y, Z) _FP_FMA (D, 1, 2, R, X, Y, Z)
/* The implementation of _FP_MUL_D and _FP_DIV_D should be chosen by
the target machine. */
-# define FP_CMP_D(r, X, Y, un, ex) _FP_CMP (D, 1, r, X, Y, un, ex)
-# define FP_CMP_EQ_D(r, X, Y, ex) _FP_CMP_EQ (D, 1, r, X, Y, ex)
-# define FP_CMP_UNORD_D(r, X, Y, ex) _FP_CMP_UNORD (D, 1, r, X, Y, ex)
+# define FP_CMP_D(r, X, Y, un, ex) _FP_CMP (D, 1, (r), X, Y, (un), (ex))
+# define FP_CMP_EQ_D(r, X, Y, ex) _FP_CMP_EQ (D, 1, (r), X, Y, (ex))
+# define FP_CMP_UNORD_D(r, X, Y, ex) _FP_CMP_UNORD (D, 1, (r), X, Y, (ex))
-# define FP_TO_INT_D(r, X, rsz, rsg) _FP_TO_INT (D, 1, r, X, rsz, rsg)
-# define FP_FROM_INT_D(X, r, rs, rt) _FP_FROM_INT (D, 1, X, r, rs, rt)
+# define FP_TO_INT_D(r, X, rsz, rsg) _FP_TO_INT (D, 1, (r), X, (rsz), (rsg))
+# define FP_FROM_INT_D(X, r, rs, rt) _FP_FROM_INT (D, 1, X, (r), (rs), rt)
# define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_1 (X)
# define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_1 (X)
diff --git a/soft-fp/extended.h b/soft-fp/extended.h
index 0dd6a87083..d16fa66174 100644
--- a/soft-fp/extended.h
+++ b/soft-fp/extended.h
@@ -162,7 +162,7 @@ union _FP_UNION_E
# define FP_UNPACK_E(X, val) \
do \
{ \
- FP_UNPACK_RAW_E (X, val); \
+ FP_UNPACK_RAW_E (X, (val)); \
_FP_UNPACK_CANONICAL (E, 4, X); \
} \
while (0)
@@ -170,7 +170,7 @@ union _FP_UNION_E
# define FP_UNPACK_EP(X, val) \
do \
{ \
- FP_UNPACK_RAW_EP (X, val); \
+ FP_UNPACK_RAW_EP (X, (val)); \
_FP_UNPACK_CANONICAL (E, 4, X); \
} \
while (0)
@@ -178,7 +178,7 @@ union _FP_UNION_E
# define FP_UNPACK_SEMIRAW_E(X, val) \
do \
{ \
- FP_UNPACK_RAW_E (X, val); \
+ FP_UNPACK_RAW_E (X, (val)); \
_FP_UNPACK_SEMIRAW (E, 4, X); \
} \
while (0)
@@ -186,7 +186,7 @@ union _FP_UNION_E
# define FP_UNPACK_SEMIRAW_EP(X, val) \
do \
{ \
- FP_UNPACK_RAW_EP (X, val); \
+ FP_UNPACK_RAW_EP (X, (val)); \
_FP_UNPACK_SEMIRAW (E, 4, X); \
} \
while (0)
@@ -195,7 +195,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_CANONICAL (E, 4, X); \
- FP_PACK_RAW_E (val, X); \
+ FP_PACK_RAW_E ((val), X); \
} \
while (0)
@@ -203,7 +203,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_CANONICAL (E, 4, X); \
- FP_PACK_RAW_EP (val, X); \
+ FP_PACK_RAW_EP ((val), X); \
} \
while (0)
@@ -211,7 +211,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_SEMIRAW (E, 4, X); \
- FP_PACK_RAW_E (val, X); \
+ FP_PACK_RAW_E ((val), X); \
} \
while (0)
@@ -219,7 +219,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_SEMIRAW (E, 4, X); \
- FP_PACK_RAW_EP (val, X); \
+ FP_PACK_RAW_EP ((val), X); \
} \
while (0)
@@ -244,36 +244,36 @@ union _FP_UNION_E
# define _FP_SQRT_MEAT_E(R, S, T, X, q) \
do \
{ \
- q = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
+ (q) = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
_FP_FRAC_SRL_4 (X, (_FP_WORKBITS)); \
while (q) \
{ \
- T##_f[1] = S##_f[1] + q; \
+ T##_f[1] = S##_f[1] + (q); \
if (T##_f[1] <= X##_f[1]) \
{ \
- S##_f[1] = T##_f[1] + q; \
+ S##_f[1] = T##_f[1] + (q); \
X##_f[1] -= T##_f[1]; \
- R##_f[1] += q; \
+ R##_f[1] += (q); \
} \
_FP_FRAC_SLL_2 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
- q = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
+ (q) = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
while (q) \
{ \
- T##_f[0] = S##_f[0] + q; \
+ T##_f[0] = S##_f[0] + (q); \
T##_f[1] = S##_f[1]; \
if (T##_f[1] < X##_f[1] \
|| (T##_f[1] == X##_f[1] \
&& T##_f[0] <= X##_f[0])) \
{ \
- S##_f[0] = T##_f[0] + q; \
+ S##_f[0] = T##_f[0] + (q); \
S##_f[1] += (T##_f[0] > S##_f[0]); \
_FP_FRAC_DEC_2 (X, T); \
- R##_f[0] += q; \
+ R##_f[0] += (q); \
} \
_FP_FRAC_SLL_2 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
_FP_FRAC_SLL_4 (R, (_FP_WORKBITS)); \
if (X##_f[0] | X##_f[1]) \
@@ -287,12 +287,12 @@ union _FP_UNION_E
} \
while (0)
-# define FP_CMP_E(r, X, Y, un, ex) _FP_CMP (E, 4, r, X, Y, un, ex)
-# define FP_CMP_EQ_E(r, X, Y, ex) _FP_CMP_EQ (E, 4, r, X, Y, ex)
-# define FP_CMP_UNORD_E(r, X, Y, ex) _FP_CMP_UNORD (E, 4, r, X, Y, ex)
+# define FP_CMP_E(r, X, Y, un, ex) _FP_CMP (E, 4, (r), X, Y, (un), (ex))
+# define FP_CMP_EQ_E(r, X, Y, ex) _FP_CMP_EQ (E, 4, (r), X, Y, (ex))
+# define FP_CMP_UNORD_E(r, X, Y, ex) _FP_CMP_UNORD (E, 4, (r), X, Y, (ex))
-# define FP_TO_INT_E(r, X, rsz, rsg) _FP_TO_INT (E, 4, r, X, rsz, rsg)
-# define FP_FROM_INT_E(X, r, rs, rt) _FP_FROM_INT (E, 4, X, r, rs, rt)
+# define FP_TO_INT_E(r, X, rsz, rsg) _FP_TO_INT (E, 4, (r), X, (rsz), (rsg))
+# define FP_FROM_INT_E(X, r, rs, rt) _FP_FROM_INT (E, 4, X, (r), (rs), rt)
# define _FP_FRAC_HIGH_E(X) (X##_f[2])
# define _FP_FRAC_HIGH_RAW_E(X) (X##_f[1])
@@ -386,7 +386,7 @@ union _FP_UNION_E
# define FP_UNPACK_E(X, val) \
do \
{ \
- FP_UNPACK_RAW_E (X, val); \
+ FP_UNPACK_RAW_E (X, (val)); \
_FP_UNPACK_CANONICAL (E, 2, X); \
} \
while (0)
@@ -394,7 +394,7 @@ union _FP_UNION_E
# define FP_UNPACK_EP(X, val) \
do \
{ \
- FP_UNPACK_RAW_EP (X, val); \
+ FP_UNPACK_RAW_EP (X, (val)); \
_FP_UNPACK_CANONICAL (E, 2, X); \
} \
while (0)
@@ -402,7 +402,7 @@ union _FP_UNION_E
# define FP_UNPACK_SEMIRAW_E(X, val) \
do \
{ \
- FP_UNPACK_RAW_E (X, val); \
+ FP_UNPACK_RAW_E (X, (val)); \
_FP_UNPACK_SEMIRAW (E, 2, X); \
} \
while (0)
@@ -410,7 +410,7 @@ union _FP_UNION_E
# define FP_UNPACK_SEMIRAW_EP(X, val) \
do \
{ \
- FP_UNPACK_RAW_EP (X, val); \
+ FP_UNPACK_RAW_EP (X, (val)); \
_FP_UNPACK_SEMIRAW (E, 2, X); \
} \
while (0)
@@ -419,7 +419,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_CANONICAL (E, 2, X); \
- FP_PACK_RAW_E (val, X); \
+ FP_PACK_RAW_E ((val), X); \
} \
while (0)
@@ -427,7 +427,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_CANONICAL (E, 2, X); \
- FP_PACK_RAW_EP (val, X); \
+ FP_PACK_RAW_EP ((val), X); \
} \
while (0)
@@ -435,7 +435,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_SEMIRAW (E, 2, X); \
- FP_PACK_RAW_E (val, X); \
+ FP_PACK_RAW_E ((val), X); \
} \
while (0)
@@ -443,7 +443,7 @@ union _FP_UNION_E
do \
{ \
_FP_PACK_SEMIRAW (E, 2, X); \
- FP_PACK_RAW_EP (val, X); \
+ FP_PACK_RAW_EP ((val), X); \
} \
while (0)
@@ -465,19 +465,19 @@ union _FP_UNION_E
# define _FP_SQRT_MEAT_E(R, S, T, X, q) \
do \
{ \
- q = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
+ (q) = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
_FP_FRAC_SRL_2 (X, (_FP_WORKBITS)); \
while (q) \
{ \
- T##_f0 = S##_f0 + q; \
+ T##_f0 = S##_f0 + (q); \
if (T##_f0 <= X##_f0) \
{ \
- S##_f0 = T##_f0 + q; \
+ S##_f0 = T##_f0 + (q); \
X##_f0 -= T##_f0; \
- R##_f0 += q; \
+ R##_f0 += (q); \
} \
_FP_FRAC_SLL_1 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
_FP_FRAC_SLL_2 (R, (_FP_WORKBITS)); \
if (X##_f0) \
@@ -489,12 +489,12 @@ union _FP_UNION_E
} \
while (0)
-# define FP_CMP_E(r, X, Y, un, ex) _FP_CMP (E, 2, r, X, Y, un, ex)
-# define FP_CMP_EQ_E(r, X, Y, ex) _FP_CMP_EQ (E, 2, r, X, Y, ex)
-# define FP_CMP_UNORD_E(r, X, Y, ex) _FP_CMP_UNORD (E, 2, r, X, Y, ex)
+# define FP_CMP_E(r, X, Y, un, ex) _FP_CMP (E, 2, (r), X, Y, (un), (ex))
+# define FP_CMP_EQ_E(r, X, Y, ex) _FP_CMP_EQ (E, 2, (r), X, Y, (ex))
+# define FP_CMP_UNORD_E(r, X, Y, ex) _FP_CMP_UNORD (E, 2, (r), X, Y, (ex))
-# define FP_TO_INT_E(r, X, rsz, rsg) _FP_TO_INT (E, 2, r, X, rsz, rsg)
-# define FP_FROM_INT_E(X, r, rs, rt) _FP_FROM_INT (E, 2, X, r, rs, rt)
+# define FP_TO_INT_E(r, X, rsz, rsg) _FP_TO_INT (E, 2, (r), X, (rsz), (rsg))
+# define FP_FROM_INT_E(X, r, rs, rt) _FP_FROM_INT (E, 2, X, (r), (rs), rt)
# define _FP_FRAC_HIGH_E(X) (X##_f1)
# define _FP_FRAC_HIGH_RAW_E(X) (X##_