aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-10-09 17:05:26 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-10-09 17:05:26 +0000
commit5c0508a318af0a6c8be2a4cb2e3b76896218bf35 (patch)
treebb4d0c9b22bad8ba022828c8a36dfeb69f511244
parenta736ec370a05e4b37e6101eb3168bf8dc4c5af13 (diff)
downloadtermbaud-5c0508a318af0a6c8be2a4cb2e3b76896218bf35.tar.gz
termbaud-5c0508a318af0a6c8be2a4cb2e3b76896218bf35.tar.xz
termbaud-5c0508a318af0a6c8be2a4cb2e3b76896218bf35.zip
soft-fp: Use parentheses around macro arguments.
This patch cleans up the soft-fp code to use parentheses around macro arguments (where possible; many macro arguments are identifiers used with ## rather than arbitrary expressions, so cannot be put in parentheses). (I'm not aware of any bugs caused by the lack of parentheses, but this is generally good practice. The patch is not exhaustive regarding internal macros where the arguments always come directly from the mantissa of a floating-point number, although probably those should be cleaned up in this regard as well.) Tested for powerpc-nofpu that the installed shared libraries are unchanged by this patch. * 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.
-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 f8f2221d7c0..d41aba674e6 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 1e6283e6554..36a11a54524 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 0dd6a87083e..d16fa66174d 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##_f0)
diff --git a/soft-fp/op-1.h b/soft-fp/op-1.h
index fa682699108..177705caa32 100644
--- a/soft-fp/op-1.h
+++ b/soft-fp/op-1.h
@@ -50,8 +50,8 @@
#define _FP_FRAC_SRL_1(X, N) (X##_f >>= N)
/* Right shift with sticky-lsb. */
-#define _FP_FRAC_SRST_1(X, S, N, sz) __FP_FRAC_SRST_1 (X##_f, S, N, sz)
-#define _FP_FRAC_SRS_1(X, N, sz) __FP_FRAC_SRS_1 (X##_f, N, sz)
+#define _FP_FRAC_SRST_1(X, S, N, sz) __FP_FRAC_SRST_1 (X##_f, S, (N), (sz))
+#define _FP_FRAC_SRS_1(X, N, sz) __FP_FRAC_SRS_1 (X##_f, (N), (sz))
#define __FP_FRAC_SRST_1(X, S, N, sz) \
do \
@@ -71,7 +71,7 @@
#define _FP_FRAC_ADD_1(R, X, Y) (R##_f = X##_f + Y##_f)
#define _FP_FRAC_SUB_1(R, X, Y) (R##_f = X##_f - Y##_f)
#define _FP_FRAC_DEC_1(X, Y) (X##_f -= Y##_f)
-#define _FP_FRAC_CLZ_1(z, X) __FP_CLZ (z, X##_f)
+#define _FP_FRAC_CLZ_1(z, X) __FP_CLZ ((z), X##_f)
/* Predicates. */
#define _FP_FRAC_NEGP_1(X) ((_FP_WS_TYPE) X##_f < 0)
@@ -157,11 +157,11 @@
#define _FP_MUL_MEAT_1_imm(wfracbits, R, X, Y) \
do \
{ \
- _FP_MUL_MEAT_DW_1_imm (wfracbits, R, X, Y); \
+ _FP_MUL_MEAT_DW_1_imm ((wfracbits), R, X, Y); \
/* Normalize since we know where the msb of the multiplicands \
were (bit B), we know that the msb of the of the product is \
at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_1 (R, wfracbits-1, 2*wfracbits); \
+ _FP_FRAC_SRS_1 (R, (wfracbits)-1, 2*(wfracbits)); \
} \
while (0)
@@ -178,12 +178,13 @@
do \
{ \
_FP_FRAC_DECL_2 (_FP_MUL_MEAT_1_wide_Z); \
- _FP_MUL_MEAT_DW_1_wide (wfracbits, _FP_MUL_MEAT_1_wide_Z, \
+ _FP_MUL_MEAT_DW_1_wide ((wfracbits), _FP_MUL_MEAT_1_wide_Z, \
X, Y, doit); \
/* Normalize since we know where the msb of the multiplicands \
were (bit B), we know that the msb of the of the product is \
at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_2 (_FP_MUL_MEAT_1_wide_Z, wfracbits-1, 2*wfracbits); \
+ _FP_FRAC_SRS_2 (_FP_MUL_MEAT_1_wide_Z, (wfracbits)-1, \
+ 2*(wfracbits)); \
R##_f = _FP_MUL_MEAT_1_wide_Z_f0; \
} \
while (0)
@@ -225,17 +226,18 @@
} \
while (0)
-#define _FP_MUL_MEAT_1_hard(wfracbits, R, X, Y) \
- do \
- { \
- _FP_FRAC_DECL_2 (_FP_MUL_MEAT_1_hard_z); \
- _FP_MUL_MEAT_DW_1_hard (wfracbits, _FP_MUL_MEAT_1_hard_z, X, Y); \
- \
- /* Normalize. */ \
- _FP_FRAC_SRS_2 (_FP_MUL_MEAT_1_hard_z, \
- wfracbits - 1, 2*wfracbits); \
- R##_f = _FP_MUL_MEAT_1_hard_z_f0; \
- } \
+#define _FP_MUL_MEAT_1_hard(wfracbits, R, X, Y) \
+ do \
+ { \
+ _FP_FRAC_DECL_2 (_FP_MUL_MEAT_1_hard_z); \
+ _FP_MUL_MEAT_DW_1_hard ((wfracbits), \
+ _FP_MUL_MEAT_1_hard_z, X, Y); \
+ \
+ /* Normalize. */ \
+ _FP_FRAC_SRS_2 (_FP_MUL_MEAT_1_hard_z, \
+ (wfracbits) - 1, 2*(wfracbits)); \
+ R##_f = _FP_MUL_MEAT_1_hard_z_f0; \
+ } \
while (0)
@@ -329,17 +331,17 @@
#define _FP_SQRT_MEAT_1(R, S, T, X, q) \
do \
{ \
- while (q != _FP_WORK_ROUND) \
+ while ((q) != _FP_WORK_ROUND) \
{ \
- T##_f = S##_f + q; \
+ T##_f = S##_f + (q); \
if (T##_f <= X##_f) \
{ \
- S##_f = T##_f + q; \
+ S##_f = T##_f + (q); \
X##_f -= T##_f; \
- R##_f += q; \
+ R##_f += (q); \
} \
_FP_FRAC_SLL_1 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
if (X##_f) \
{ \
@@ -353,8 +355,8 @@
/* Assembly/disassembly for converting to/from integral types.
No shifting or overflow handled here. */
-#define _FP_FRAC_ASSEMBLE_1(r, X, rsize) (r = X##_f)
-#define _FP_FRAC_DISASSEMBLE_1(X, r, rsize) (X##_f = r)
+#define _FP_FRAC_ASSEMBLE_1(r, X, rsize) ((r) = X##_f)
+#define _FP_FRAC_DISASSEMBLE_1(X, r, rsize) (X##_f = (r))
/* Convert FP values between word sizes. */
diff --git a/soft-fp/op-2.h b/soft-fp/op-2.h
index 6a6f93876b0..50028f72d29 100644
--- a/soft-fp/op-2.h
+++ b/soft-fp/op-2.h
@@ -122,11 +122,11 @@
do \
{ \
if (X##_f1) \
- __FP_CLZ (R, X##_f1); \
+ __FP_CLZ ((R), X##_f1); \
else \
{ \
- __FP_CLZ (R, X##_f0); \
- R += _FP_W_TYPE_SIZE; \
+ __FP_CLZ ((R), X##_f0); \
+ (R) += _FP_W_TYPE_SIZE; \
} \
} \
while (0)
@@ -156,11 +156,11 @@
do \
{ \
if (xh) \
- __FP_CLZ (R, xh); \
+ __FP_CLZ ((R), xh); \
else \
{ \
- __FP_CLZ (R, xl); \
- R += _FP_W_TYPE_SIZE; \
+ __FP_CLZ ((R), xl); \
+ (R) += _FP_W_TYPE_SIZE; \
} \
} \
while (0)
@@ -302,13 +302,14 @@
{ \
_FP_FRAC_DECL_4 (_FP_MUL_MEAT_2_wide_z); \
\
- _FP_MUL_MEAT_DW_2_wide (wfracbits, _FP_MUL_MEAT_2_wide_z, \
+ _FP_MUL_MEAT_DW_2_wide ((wfracbits), _FP_MUL_MEAT_2_wide_z, \
X, Y, doit); \
\
/* Normalize since we know where the msb of the multiplicands \
were (bit B), we know that the msb of the of the product is \
at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_4 (_FP_MUL_MEAT_2_wide_z, wfracbits-1, 2*wfracbits); \
+ _FP_FRAC_SRS_4 (_FP_MUL_MEAT_2_wide_z, (wfracbits)-1, \
+ 2*(wfracbits)); \
R##_f0 = _FP_FRAC_WORD_4 (_FP_MUL_MEAT_2_wide_z, 0); \
R##_f1 = _FP_FRAC_WORD_4 (_FP_MUL_MEAT_2_wide_z, 1); \
} \
@@ -375,7 +376,7 @@
{ \
_FP_FRAC_DECL_4 (_FP_MUL_MEAT_2_wide_3mul_z); \
\
- _FP_MUL_MEAT_DW_2_wide_3mul (wfracbits, \
+ _FP_MUL_MEAT_DW_2_wide_3mul ((wfracbits), \
_FP_MUL_MEAT_2_wide_3mul_z, \
X, Y, doit); \
\
@@ -383,7 +384,7 @@
were (bit B), we know that the msb of the of the product is \
at either 2B or 2B-1. */ \
_FP_FRAC_SRS_4 (_FP_MUL_MEAT_2_wide_3mul_z, \
- wfracbits-1, 2*wfracbits); \
+ (wfracbits)-1, 2*(wfracbits)); \
R##_f0 = _FP_FRAC_WORD_4 (_FP_MUL_MEAT_2_wide_3mul_z, 0); \
R##_f1 = _FP_FRAC_WORD_4 (_FP_MUL_MEAT_2_wide_3mul_z, 1); \
} \
@@ -409,12 +410,13 @@
{ \
_FP_FRAC_DECL_4 (_FP_MUL_MEAT_2_gmp_z); \
\
- _FP_MUL_MEAT_DW_2_gmp (wfracbits, _FP_MUL_MEAT_2_gmp_z, X, Y); \
+ _FP_MUL_MEAT_DW_2_gmp ((wfracbits), _FP_MUL_MEAT_2_gmp_z, X, Y); \
\
/* Normalize since we know where the msb of the multiplicands \
were (bit B), we know that the msb of the of the product is \
at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_4 (_FP_MUL_MEAT_2_gmp_z, wfracbits-1, 2*wfracbits); \
+ _FP_FRAC_SRS_4 (_FP_MUL_MEAT_2_gmp_z, (wfracbits)-1, \
+ 2*(wfracbits)); \
R##_f0 = _FP_MUL_MEAT_2_gmp_z_f[0]; \
R##_f1 = _FP_MUL_MEAT_2_gmp_z_f[1]; \
} \
@@ -452,7 +454,7 @@
_p240, _q240, _r240, _s240; \
UDItype _t240, _u240, _v240, _w240, _x240, _y240 = 0; \
\
- if (wfracbits < 106 || wfracbits > 120) \
+ if ((wfracbits) < 106 || (wfracbits) > 120) \
abort (); \
\
setfetz; \
@@ -629,31 +631,31 @@
{ \
while (q) \
{ \
- T##_f1 = S##_f1 + q; \
+ T##_f1 = S##_f1 + (q); \
if (T##_f1 <= X##_f1) \
{ \
- S##_f1 = T##_f1 + q; \
+ S##_f1 = T##_f1 + (q); \
X##_f1 -= T##_f1; \
- R##_f1 += q; \
+ R##_f1 += (q); \
} \
_FP_FRAC_SLL_2 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
- q = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
- while (q != _FP_WORK_ROUND) \
+ (q) = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
+ while ((q) != _FP_WORK_ROUND) \
{ \
- T##_f0 = S##_f0 + q; \
+ T##_f0 = S##_f0 + (q); \
T##_f1 = S##_f1; \
if (T##_f1 < X##_f1 \
|| (T##_f1 == X##_f1 && T##_f0 <= X##_f0)) \
{ \
- S##_f0 = T##_f0 + q; \
+ S##_f0 = T##_f0 + (q); \
S##_f1 += (T##_f0 > S##_f0); \
_FP_FRAC_DEC_2 (X, T); \
- R##_f0 += q; \
+ R##_f0 += (q); \
} \
_FP_FRAC_SLL_2 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
if (X##_f0 | X##_f1) \
{ \
@@ -670,20 +672,22 @@
No shifting or overflow handled here. */
#define _FP_FRAC_ASSEMBLE_2(r, X, rsize) \
- (void) ((rsize <= _FP_W_TYPE_SIZE) \
- ? ({ r = X##_f0; }) \
+ (void) (((rsize) <= _FP_W_TYPE_SIZE) \
+ ? ({ (r) = X##_f0; }) \
: ({ \
- r = X##_f1; \
- r <<= _FP_W_TYPE_SIZE; \
- r += X##_f0; \
+ (r) = X##_f1; \
+ (r) <<= _FP_W_TYPE_SIZE; \
+ (r) += X##_f0; \
}))
-#define _FP_FRAC_DISASSEMBLE_2(X, r, rsize) \
- do \
- { \
- X##_f0 = r; \
- X##_f1 = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
- } \
+#define _FP_FRAC_DISASSEMBLE_2(X, r, rsize) \
+ do \
+ { \
+ X##_f0 = (r); \
+ X##_f1 = ((rsize) <= _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) >> _FP_W_TYPE_SIZE); \
+ } \
while (0)
/* Convert FP values between word sizes. */
diff --git a/soft-fp/op-4.h b/soft-fp/op-4.h
index 12731e2e78e..d65c08afcce 100644
--- a/soft-fp/op-4.h
+++ b/soft-fp/op-4.h
@@ -151,7 +151,7 @@
do \
{ \
int _FP_FRAC_SRS_4_sticky; \
- _FP_FRAC_SRST_4 (X, _FP_FRAC_SRS_4_sticky, N, size); \
+ _FP_FRAC_SRST_4 (X, _FP_FRAC_SRS_4_sticky, (N), (size)); \
X##_f[0] |= _FP_FRAC_SRS_4_sticky; \
} \
while (0)
@@ -211,21 +211,21 @@
do \
{ \
if (X##_f[3]) \
- __FP_CLZ (R, X##_f[3]); \
+ __FP_CLZ ((R), X##_f[3]); \
else if (X##_f[2]) \
{ \
- __FP_CLZ (R, X##_f[2]); \
- R += _FP_W_TYPE_SIZE; \
+ __FP_CLZ ((R), X##_f[2]); \
+ (R) += _FP_W_TYPE_SIZE; \
} \
else if (X##_f[1]) \
{ \
- __FP_CLZ (R, X##_f[1]); \
- R += _FP_W_TYPE_SIZE*2; \
+ __FP_CLZ ((R), X##_f[1]); \
+ (R) += _FP_W_TYPE_SIZE*2; \
} \
else \
{ \
- __FP_CLZ (R, X##_f[0]); \
- R += _FP_W_TYPE_SIZE*3; \
+ __FP_CLZ ((R), X##_f[0]); \
+ (R) += _FP_W_TYPE_SIZE*3; \
} \
} \
while (0)
@@ -425,13 +425,14 @@
{ \
_FP_FRAC_DECL_8 (_FP_MUL_MEAT_4_wide_z); \
\
- _FP_MUL_MEAT_DW_4_wide (wfracbits, _FP_MUL_MEAT_4_wide_z, \
+ _FP_MUL_MEAT_DW_4_wide ((wfracbits), _FP_MUL_MEAT_4_wide_z, \
X, Y, doit); \
\
/* Normalize since we know where the msb of the multiplicands \
were (bit B), we know that the msb of the of the product is \
at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_8 (_FP_MUL_MEAT_4_wide_z, wfracbits-1, 2*wfracbits); \
+ _FP_FRAC_SRS_8 (_FP_MUL_MEAT_4_wide_z, (wfracbits)-1, \
+ 2*(wfracbits)); \
__FP_FRAC_SET_4 (R, _FP_FRAC_WORD_8 (_FP_MUL_MEAT_4_wide_z, 3), \
_FP_FRAC_WORD_8 (_FP_MUL_MEAT_4_wide_z, 2), \
_FP_FRAC_WORD_8 (_FP_MUL_MEAT_4_wide_z, 1), \
@@ -451,12 +452,13 @@
{ \
_FP_FRAC_DECL_8 (_FP_MUL_MEAT_4_gmp_z); \
\
- _FP_MUL_MEAT_DW_4_gmp (wfracbits, _FP_MUL_MEAT_4_gmp_z, X, Y); \
+ _FP_MUL_MEAT_DW_4_gmp ((wfracbits), _FP_MUL_MEAT_4_gmp_z, X, Y); \
\
/* Normalize since we know where the msb of the multiplicands \
were (bit B), we know that the msb of the of the product is \
at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_8 (_FP_MUL_MEAT_4_gmp_z, wfracbits-1, 2*wfracbits); \
+ _FP_FRAC_SRS_8 (_FP_MUL_MEAT_4_gmp_z, (wfracbits)-1, \
+ 2*(wfracbits)); \
__FP_FRAC_SET_4 (R, _FP_FRAC_WORD_8 (_FP_MUL_MEAT_4_gmp_z, 3), \
_FP_FRAC_WORD_8 (_FP_MUL_MEAT_4_gmp_z, 2), \
_FP_FRAC_WORD_8 (_FP_MUL_MEAT_4_gmp_z, 1), \
@@ -570,37 +572,37 @@
{ \
while (q) \
{ \
- T##_f[3] = S##_f[3] + q; \
+ T##_f[3] = S##_f[3] + (q); \
if (T##_f[3] <= X##_f[3]) \
{ \
- S##_f[3] = T##_f[3] + q; \
+ S##_f[3] = T##_f[3] + (q); \
X##_f[3] -= T##_f[3]; \
- R##_f[3] += q; \
+ R##_f[3] += (q); \
} \
_FP_FRAC_SLL_4 (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[2] = S##_f[2] + q; \
+ T##_f[2] = S##_f[2] + (q); \
T##_f[3] = S##_f[3]; \
if (T##_f[3] < X##_f[3] \
|| (T##_f[3] == X##_f[3] && T##_f[2] <= X##_f[2])) \
{ \
- S##_f[2] = T##_f[2] + q; \
+ S##_f[2] = T##_f[2] + (q); \
S##_f[3] += (T##_f[2] > S##_f[2]); \
__FP_FRAC_DEC_2 (X##_f[3], X##_f[2], \
T##_f[3], T##_f[2]); \
- R##_f[2] += q; \
+ R##_f[2] += (q); \
} \
_FP_FRAC_SLL_4 (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[1] = S##_f[1] + q; \
+ T##_f[1] = S##_f[1] + (q); \
T##_f[2] = S##_f[2]; \
T##_f[3] = S##_f[3]; \
if (T##_f[3] < X##_f[3] \
@@ -609,34 +611,34 @@
|| (T##_f[2] == X##_f[2] \
&& T##_f[1] <= X##_f[1])))) \
{ \
- S##_f[1] = T##_f[1] + q; \
+ S##_f[1] = T##_f[1] + (q); \
S##_f[2] += (T##_f[1] > S##_f[1]); \
S##_f[3] += (T##_f[2] > S##_f[2]); \
__FP_FRAC_DEC_3 (X##_f[3], X##_f[2], X##_f[1], \
T##_f[3], T##_f[2], T##_f[1]); \
- R##_f[1] += q; \
+ R##_f[1] += (q); \
} \
_FP_FRAC_SLL_4 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
- q = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
- while (q != _FP_WORK_ROUND) \
+ (q) = (_FP_W_TYPE) 1 << (_FP_W_TYPE_SIZE - 1); \
+ while ((q) != _FP_WORK_ROUND) \
{ \
- T##_f[0] = S##_f[0] + q; \
+ T##_f[0] = S##_f[0] + (q); \
T##_f[1] = S##_f[1]; \
T##_f[2] = S##_f[2]; \
T##_f[3] = S##_f[3]; \
if (_FP_FRAC_GE_4 (X, T)) \
{ \
- S##_f[0] = T##_f[0] + q; \
+ S##_f[0] = T##_f[0] + (q); \
S##_f[1] += (T##_f[0] > S##_f[0]); \
S##_f[2] += (T##_f[1] > S##_f[1]); \
S##_f[3] += (T##_f[2] > S##_f[2]); \
_FP_FRAC_DEC_4 (X, T); \
- R##_f[0] += q; \
+ R##_f[0] += (q); \
} \
_FP_FRAC_SLL_4 (X, 1); \
- q >>= 1; \
+ (q) >>= 1; \
} \
if (!_FP_FRAC_ZEROP_4 (X)) \
{ \
@@ -797,25 +799,33 @@
#define _FP_FRAC_ASSEMBLE_4(r, X, rsize) \
do \
{ \
- if (rsize <= _FP_W_TYPE_SIZE) \
- r = X##_f[0]; \
- else if (rsize <= 2*_FP_W_TYPE_SIZE) \
+ if ((rsize) <= _FP_W_TYPE_SIZE) \
+ (r) = X##_f[0]; \
+ else if ((rsize) <= 2*_FP_W_TYPE_SIZE) \
{ \
- r = X##_f[1]; \
- r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \
- r += X##_f[0]; \
+ (r) = X##_f[1]; \
+ (r) = ((rsize) <= _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) << _FP_W_TYPE_SIZE); \
+ (r) += X##_f[0]; \
} \
else \
{ \
/* I'm feeling lazy so we deal with int == 3words \
(implausible) and int == 4words as a single case. */ \
- r = X##_f[3]; \
- r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \
- r += X##_f[2]; \
- r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \
- r += X##_f[1]; \
- r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \
- r += X##_f[0]; \
+ (r) = X##_f[3]; \
+ (r) = ((rsize) <= _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) << _FP_W_TYPE_SIZE); \
+ (r) += X##_f[2]; \
+ (r) = ((rsize) <= _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) << _FP_W_TYPE_SIZE); \
+ (r) += X##_f[1]; \
+ (r) = ((rsize) <= _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) << _FP_W_TYPE_SIZE); \
+ (r) += X##_f[0]; \
} \
} \
while (0)
@@ -824,14 +834,20 @@
/* Move an integer of size rsize into X's fractional part. We rely on
the _f[] array consisting of words of size _FP_W_TYPE_SIZE to avoid
having to mask the values we store into it. */
-#define _FP_FRAC_DISASSEMBLE_4(X, r, rsize) \
- do \
- { \
- X##_f[0] = r; \
- X##_f[1] = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
- X##_f[2] = (rsize <= 2*_FP_W_TYPE_SIZE ? 0 : r >> 2*_FP_W_TYPE_SIZE); \
- X##_f[3] = (rsize <= 3*_FP_W_TYPE_SIZE ? 0 : r >> 3*_FP_W_TYPE_SIZE); \
- } \
+#define _FP_FRAC_DISASSEMBLE_4(X, r, rsize) \
+ do \
+ { \
+ X##_f[0] = (r); \
+ X##_f[1] = ((rsize) <= _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) >> _FP_W_TYPE_SIZE); \
+ X##_f[2] = ((rsize) <= 2*_FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) >> 2*_FP_W_TYPE_SIZE); \
+ X##_f[3] = ((rsize) <= 3*_FP_W_TYPE_SIZE \
+ ? 0 \
+ : (r) >> 3*_FP_W_TYPE_SIZE); \
+ } \
while (0)
#define _FP_FRAC_COPY_4_1(D, S) \
diff --git a/soft-fp/op-common.h b/soft-fp/op-common.h
index 3591c47efbf..73fbe7af25f 100644
--- a/soft-fp/op-common.h
+++ b/soft-fp/op-common.h
@@ -1259,8 +1259,8 @@
if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
|| (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (Y))) \
{ \
- ret = un; \
- _FP_CMP_CHECK_NAN (fs, wc, X, Y, ex); \
+ (ret) = (un); \
+ _FP_CMP_CHECK_NAN (fs, wc, X, Y, (ex)); \
} \
else \
{ \
@@ -1276,23 +1276,23 @@
= (!Y##_e && _FP_FRAC_ZEROP_##wc (Y)) ? 1 : 0; \
\
if (_FP_CMP_is_zero_x && _FP_CMP_is_zero_y) \
- ret = 0; \
+ (ret) = 0; \
else if (_FP_CMP_is_zero_x) \
- ret = Y##_s ? 1 : -1; \
+ (ret) = Y##_s ? 1 : -1; \
else if (_FP_CMP_is_zero_y) \
- ret = X##_s ? -1 : 1; \
+ (ret) = X##_s ? -1 : 1; \
else if (X##_s != Y##_s) \
- ret = X##_s ? -1 : 1; \
+ (ret) = X##_s ? -1 : 1; \
else if (X##_e > Y##_e) \
- ret = X##_s ? -1 : 1; \
+ (ret) = X##_s ? -1 : 1; \
else if (X##_e < Y##_e) \
- ret = X##_s ? 1 : -1; \
+ (ret) = X##_s ? 1 : -1; \
else if (_FP_FRAC_GT_##wc (X, Y)) \
- ret = X##_s ? -1 : 1; \
+ (ret) = X##_s ? -1 : 1; \
else if (_FP_FRAC_GT_##wc (Y, X)) \
- ret = X##_s ? 1 : -1; \
+ (ret) = X##_s ? 1 : -1; \
else \
- ret = 0; \
+ (ret) = 0; \
} \
} \
while (0)
@@ -1307,17 +1307,18 @@
if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
|| (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (Y))) \
{ \
- ret = 1; \
- _FP_CMP_CHECK_NAN (fs, wc, X, Y, ex); \
+ (ret) = 1; \
+ _FP_CMP_CHECK_NAN (fs, wc, X, Y, (ex)); \
} \
else \
{ \
_FP_CHECK_FLUSH_ZERO (fs, wc, X); \
_FP_CHECK_FLUSH_ZERO (fs, wc, Y); \
\
- ret = !(X##_e == Y##_e \
- && _FP_FRAC_EQ_##wc (X, Y) \
- && (X##_s == Y##_s || (!X##_e && _FP_FRAC_ZEROP_##wc (X)))); \
+ (ret) = !(X##_e == Y##_e \
+ && _FP_FRAC_EQ_##wc (X, Y) \
+ && (X##_s == Y##_s \
+ || (!X##_e && _FP_FRAC_ZEROP_##wc (X)))); \
} \
} \
while (0)
@@ -1327,10 +1328,10 @@
#define _FP_CMP_UNORD(fs, wc, ret, X, Y, ex) \
do \
{ \
- ret = ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
- || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (Y))); \
+ (ret) = ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
+ || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (Y))); \
if (ret) \
- _FP_CMP_CHECK_NAN (fs, wc, X, Y, ex); \
+ _FP_CMP_CHECK_NAN (fs, wc, X, Y, (ex)); \
} \
while (0)
@@ -1409,7 +1410,7 @@
{ \
if (X##_e < _FP_EXPBIAS_##fs) \
{ \
- r = 0; \
+ (r) = 0; \
if (X##_e == 0) \
{ \
if (!_FP_FRAC_ZEROP_##wc (X)) \
@@ -1422,15 +1423,15 @@
else \
FP_SET_EXCEPTION (FP_EX_INEXACT); \
} \
- else if (rsigned == 2 \
+ else if ((rsigned) == 2 \
&& (X##_e \
>= ((_FP_EXPMAX_##fs \
- < _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs + rsize - 1) \
+ < _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs + (rsize) - 1) \
? _FP_EXPMAX_##fs \
- : _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs + rsize - 1))) \
+ : _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs + (rsize) - 1))) \
{ \
/* Overflow resulting in 0. */ \
- r = 0; \
+ (r) = 0; \
FP_SET_EXCEPTION (FP_EX_INVALID \
| FP_EX_INVALID_CVI \
| ((FP_EX_INVALID_SNAN \
@@ -1438,39 +1439,39 @@
? FP_EX_INVALID_SNAN \
: 0)); \
} \
- else if (rsigned != 2 \
- && (X##_e >= (_FP_EXPMAX_##fs < _FP_EXPBIAS_##fs + rsize \
+ else if ((rsigned) != 2 \
+ && (X##_e >= (_FP_EXPMAX_##fs < _FP_EXPBIAS_##fs + (rsize) \
? _FP_EXPMAX_##fs \
- : (_FP_EXPBIAS_##fs + rsize \
- - (rsigned > 0 || X##_s))) \
- || (!rsigned && X##_s))) \
+ : (_FP_EXPBIAS_##fs + (rsize) \
+ - ((rsigned) > 0 || X##_s))) \
+ || (!(rsigned) && X##_s))) \
{ \
/* Overflow or converting to the most negative integer. */ \
if (rsigned) \
{ \
- r = 1; \
- r <<= rsize - 1; \
- r -= 1 - X##_s; \
+ (r) = 1; \
+ (r) <<= (rsize) - 1; \
+ (r) -= 1 - X##_s; \
} \
else \
{ \
- r = 0; \
+ (r) = 0; \
if (!X##_s) \
- r = ~r; \
+ (r) = ~(r); \
} \
\
- if (_FP_EXPBIAS_##fs + rsize - 1 < _FP_EXPMAX_##fs \
- && rsigned \
+ if (_FP_EXPBIAS_##fs + (rsize) - 1 < _FP_EXPMAX_##fs \
+ && (rsigned) \
&& X##_s \
- && X##_e == _FP_EXPBIAS_##fs + rsize - 1) \
+ && X##_e == _FP_EXPBIAS_##fs + (rsize) - 1) \
{ \
/* Possibly converting to most negative integer; check the \
mantissa. */ \
int _FP_TO_INT_inexact = 0; \
- (void) ((_FP_FRACBITS_##fs > rsize) \
+ (void) ((_FP_FRACBITS_##fs > (rsize)) \
? ({ \
_FP_FRAC_SRST_##wc (X, _FP_TO_INT_inexact, \
- _FP_FRACBITS_##fs - rsize, \
+ _FP_FRACBITS_##fs - (rsize), \
_FP_FRACBITS_##fs); \
0; \
}) \
@@ -1494,8 +1495,8 @@
_FP_FRAC_HIGH_RAW_##fs (X) |= _FP_IMPLBIT_##fs; \
if (X##_e >= _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1) \
{ \
- _FP_FRAC_ASSEMBLE_##wc (r, X, rsize); \
- r <<= X##_e - _FP_EXPBIAS_##fs - _FP_FRACBITS_##fs + 1; \
+ _FP_FRAC_ASSEMBLE_##wc ((r), X, (rsize)); \
+ (r) <<= X##_e - _FP_EXPBIAS_##fs - _FP_FRACBITS_##fs + 1; \
} \
else \
{ \
@@ -1503,16 +1504,16 @@
(_FP_FRACBITS_##fs + _FP_EXPBIAS_##fs - 1 \
- X##_e), \
_FP_FRACBITS_##fs); \
- _FP_FRAC_ASSEMBLE_##wc (r, X, rsize); \
+ _FP_FRAC_ASSEMBLE_##wc ((r), X, (rsize)); \
} \
- if (rsigned && X##_s) \
- r = -r; \
- if (rsigned == 2 && X##_e >= _FP_EXPBIAS_##fs + rsize - 1) \
+ if ((rsigned) && X##_s) \
+ (r) = -(r); \
+ if ((rsigned) == 2 && X##_e >= _FP_EXPBIAS_##fs + (rsize) - 1) \
{ \
/* Overflow or converting to the most negative integer. */ \
- if (X##_e > _FP_EXPBIAS_##fs + rsize - 1 \
+ if (X##_e > _FP_EXPBIAS_##fs + (rsize) - 1 \
|| !X##_s \
- || r != (((typeof (r)) 1) << (rsize - 1))) \
+ || (r) != (((typeof (r)) 1) << ((rsize) - 1))) \
{ \
_FP_TO_INT_inexact = 0; \
FP_SET_EXCEPTION (FP_EX_INVALID | FP_EX_INVALID_CVI); \
@@ -1533,11 +1534,11 @@
{ \
rtype _FP_FROM_INT_ur; \
\
- if ((X##_s = (r < 0))) \
- r = -(rtype) r; \
+ if ((X##_s = ((r) < 0))) \
+ (r) = -(rtype) (r); \
\
- _FP_FROM_INT_ur = (rtype) r; \
- (void) ((rsize <= _FP_W_TYPE_SIZE) \
+ _FP_FROM_INT_ur = (rtype) (r); \
+ (void) (((rsize) <= _FP_W_TYPE_SIZE) \
? ({ \
int _FP_FROM_INT_lz; \
__FP_CLZ (_FP_FROM_INT_lz, \
@@ -1545,7 +1546,7 @@
X##_e = (_FP_EXPBIAS_##fs + _FP_W_TYPE_SIZE - 1 \
- _FP_FROM_INT_lz); \
}) \
- : ((rsize <= 2 * _FP_W_TYPE_SIZE) \
+ : (((rsize) <= 2 * _FP_W_TYPE_SIZE) \
? ({ \
int _FP_FROM_INT_lz; \
__FP_CLZ_2 (_FP_FROM_INT_lz, \
@@ -1557,7 +1558,7 @@
}) \
: (abort (), 0))); \
\
- if (rsize - 1 + _FP_EXPBIAS_##fs >= _FP_EXPMAX_##fs \
+ if ((rsize) - 1 + _FP_EXPBIAS_##fs >= _FP_EXPMAX_##fs \
&& X##_e >= _FP_EXPMAX_##fs) \
{ \
/* Exponent too big; overflow to infinity. (May also \
@@ -1566,11 +1567,11 @@
goto pack_semiraw; \
} \
\
- if (rsize <= _FP_FRACBITS_##fs \
+ if ((rsize) <= _FP_FRACBITS_##fs \
|| X##_e < _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs) \
{ \
/* Exactly representable; shift left. */ \
- _FP_FRAC_DISASSEMBLE_##wc (X, _FP_FROM_INT_ur, rsize); \
+ _FP_FRAC_DISASSEMBLE_##wc (X, _FP_FROM_INT_ur, (rsize)); \
if (_FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1 - X##_e > 0) \
_FP_FRAC_SLL_##wc (X, (_FP_EXPBIAS_##fs \
+ _FP_FRACBITS_##fs - 1 - X##_e)); \
@@ -1584,10 +1585,10 @@
= ((_FP_FROM_INT_ur >> (X##_e - _FP_EXPBIAS_##fs \
- _FP_WFRACBITS_##fs + 1)) \
| ((_FP_FROM_INT_ur \
- << (rsize - (X##_e - _FP_EXPBIAS_##fs \
- - _FP_WFRACBITS_##fs + 1))) \
+ << ((rsize) - (X##_e - _FP_EXPBIAS_##fs \
+ - _FP_WFRACBITS_##fs + 1))) \
!= 0)); \
- _FP_FRAC_DISASSEMBLE_##wc (X, _FP_FROM_INT_ur, rsize); \
+ _FP_FRAC_DISASSEMBLE_##wc (X, _FP_FROM_INT_ur, (rsize)); \
if ((_FP_EXPBIAS_##fs + _FP_WFRACBITS_##fs - 1 - X##_e) > 0) \
_FP_FRAC_SLL_##wc (X, (_FP_EXPBIAS_##fs \
+ _FP_WFRACBITS_##fs - 1 - X##_e)); \
@@ -1768,11 +1769,11 @@
do \
{ \
if (sizeof (_FP_W_TYPE) == sizeof (unsigned int)) \
- r = __builtin_clz (x); \
+ (r) = __builtin_clz (x); \
else if (sizeof (_FP_W_TYPE) == sizeof (unsigned long)) \
- r = __builtin_clzl (x); \
+ (r) = __builtin_clzl (x); \
else if (sizeof (_FP_W_TYPE) == sizeof (unsigned long long)) \
- r = __builtin_clzll (x); \
+ (r) = __builtin_clzll (x); \
else \
abort (); \
} \
@@ -1782,7 +1783,7 @@
#define _FP_DIV_HELP_imm(q, r, n, d) \
do \
{ \
- q = n / d, r = n % d; \
+ (q) = (n) / (d), (r) = (n) % (d); \
} \
while (0)
diff --git a/soft-fp/quad.h b/soft-fp/quad.h
index c2e41337220..b8cd3108a34 100644
--- a/soft-fp/quad.h
+++ b/soft-fp/quad.h
@@ -95,21 +95,21 @@ union _FP_UNION_Q
# define FP_DECL_Q(X) _FP_DECL (4, X)
-# define FP_UNPACK_RAW_Q(X, val) _FP_UNPACK_RAW_4 (Q, X, val)
-# define FP_UNPACK_RAW_QP(X, val) _FP_UNPACK_RAW_4_P (Q, X, val)
-# define FP_PACK_RAW_Q(val, X) _FP_PACK_RAW_4 (Q, val, X)
+# define FP_UNPACK_RAW_Q(X, val) _FP_UNPACK_RAW_4 (Q, X, (val))
+# define FP_UNPACK_RAW_QP(X, val) _FP_UNPACK_RAW_4_P (Q, X, (val))
+# define FP_PACK_RAW_Q(val, X) _FP_PACK_RAW_4 (Q, (val), X)
# define FP_PACK_RAW_QP(val, X) \
do \
{ \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_4_P (Q, val, X); \
+ _FP_PACK_RAW_4_P (Q, (val), X); \
} \
while (0)
# define FP_UNPACK_Q(X, val) \
do \
{ \
- _FP_UNPACK_RAW_4 (Q, X, val); \
+ _FP_UNPACK_RAW_4 (Q, X, (val)); \
_FP_UNPACK_CANONICAL (Q, 4, X); \
} \
while (0)
@@ -117,7 +117,7 @@ union _FP_UNION_Q
# define FP_UNPACK_QP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_4_P (Q, X, val); \
+ _FP_UNPACK_RAW_4_P (Q, X, (val)); \
_FP_UNPACK_CANONICAL (Q, 4, X); \
} \
while (0)
@@ -125,7 +125,7 @@ union _FP_UNION_Q
# define FP_UNPACK_SEMIRAW_Q(X, val) \
do \
{ \
- _FP_UNPACK_RAW_4 (Q, X, val); \
+ _FP_UNPACK_RAW_4 (Q, X, (val)); \
_FP_UNPACK_SEMIRAW (Q, 4, X); \
} \
while (0)
@@ -133,7 +133,7 @@ union _FP_UNION_Q
# define FP_UNPACK_SEMIRAW_QP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_4_P (Q, X, val); \
+ _FP_UNPACK_RAW_4_P (Q, X, (val)); \
_FP_UNPACK_SEMIRAW (Q, 4, X); \
} \
while (0)
@@ -142,7 +142,7 @@ union _FP_UNION_Q
do \
{ \
_FP_PACK_CANONICAL (Q, 4, X); \
- _FP_PACK_RAW_4 (Q, val, X); \
+ _FP_PACK_RAW_4 (Q, (val), X); \
} \
while (0)
@@ -151,7 +151,7 @@ union _FP_UNION_Q
{ \
_FP_PACK_CANONICAL (Q, 4, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_4_P (Q, val, X); \
+ _FP_PACK_RAW_4_P (Q, (val), X); \
} \
while (0)
@@ -159,7 +159,7 @@ union _FP_UNION_Q
do \
{ \
_FP_PACK_SEMIRAW (Q, 4, X); \
- _FP_PACK_RAW_4 (Q, val, X); \
+ _FP_PACK_RAW_4 (Q, (val), X); \
} \
while (0)
@@ -168,7 +168,7 @@ union _FP_UNION_Q
{ \
_FP_PACK_SEMIRAW (Q, 4, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_4_P (Q, val, X); \
+ _FP_PACK_RAW_4_P (Q, (val), X); \
} \
while (0)
@@ -179,15 +179,15 @@ union _FP_UNION_Q
# define FP_MUL_Q(R, X, Y) _FP_MUL (Q, 4, R, X, Y)
# define FP_DIV_Q(R, X, Y) _FP_DIV (Q, 4, R, X, Y)
# define FP_SQRT_Q(R, X) _FP_SQRT (Q, 4, R, X)
-# define _FP_SQRT_MEAT_Q(R, S, T, X, Q) _FP_SQRT_MEAT_4 (R, S, T, X, Q)
+# define _FP_SQRT_MEAT_Q(R, S, T, X, Q) _FP_SQRT_MEAT_4 (R, S, T, X, (Q))
# define FP_FMA_Q(R, X, Y, Z) _FP_FMA (Q, 4, 8, R, X, Y, Z)
-# define FP_CMP_Q(r, X, Y, un, ex) _FP_CMP (Q, 4, r, X, Y, un, ex)
-# define FP_CMP_EQ_Q(r, X, Y, ex) _FP_CMP_EQ (Q, 4, r, X, Y, ex)
-# define FP_CMP_UNORD_Q(r, X, Y, ex) _FP_CMP_UNORD (Q, 4, r, X, Y, ex)
+# define FP_CMP_Q(r, X, Y, un, ex) _FP_CMP (Q, 4, (r), X, Y, (un), (ex))
+# define FP_CMP_EQ_Q(r, X, Y, ex) _FP_CMP_EQ (Q, 4, (r), X, Y, (ex))
+# define FP_CMP_UNORD_Q(r, X, Y, ex) _FP_CMP_UNORD (Q, 4, (r), X, Y, (ex))
-# define FP_TO_INT_Q(r, X, rsz, rsg) _FP_TO_INT (Q, 4, r, X, rsz, rsg)
-# define FP_FROM_INT_Q(X, r, rs, rt) _FP_FROM_INT (Q, 4, X, r, rs, rt)
+# define FP_TO_INT_Q(r, X, rsz, rsg) _FP_TO_INT (Q, 4, (r), X, (rsz), (rsg))
+# define FP_FROM_INT_Q(X, r, rs, rt) _FP_FROM_INT (Q, 4, X, (r), (rs), rt)
# define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_4 (X)
# define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_4 (X)
@@ -219,21 +219,21 @@ union _FP_UNION_Q
};
# define FP_DECL_Q(X) _FP_DECL (2, X)
-# define FP_UNPACK_RAW_Q(X, val) _FP_UNPACK_RAW_2 (Q, X, val)
-# define FP_UNPACK_RAW_QP(X, val) _FP_UNPACK_RAW_2_P (Q, X, val)
-# define FP_PACK_RAW_Q(val, X) _FP_PACK_RAW_2 (Q, val, X)
+# define FP_UNPACK_RAW_Q(X, val) _FP_UNPACK_RAW_2 (Q, X, (val))
+# define FP_UNPACK_RAW_QP(X, val) _FP_UNPACK_RAW_2_P (Q, X, (val))
+# define FP_PACK_RAW_Q(val, X) _FP_PACK_RAW_2 (Q, (val), X)
# define FP_PACK_RAW_QP(val, X) \
do \
{ \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P (Q, val, X); \
+ _FP_PACK_RAW_2_P (Q, (val), X); \
} \
while (0)
# define FP_UNPACK_Q(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2 (Q, X, val); \
+ _FP_UNPACK_RAW_2 (Q, X, (val)); \
_FP_UNPACK_CANONICAL (Q, 2, X); \
} \
while (0)
@@ -241,7 +241,7 @@ union _FP_UNION_Q
# define FP_UNPACK_QP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2_P (Q, X, val); \
+ _FP_UNPACK_RAW_2_P (Q, X, (val)); \
_FP_UNPACK_CANONICAL (Q, 2, X); \
} \
while (0)
@@ -249,7 +249,7 @@ union _FP_UNION_Q
# define FP_UNPACK_SEMIRAW_Q(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2 (Q, X, val); \
+ _FP_UNPACK_RAW_2 (Q, X, (val)); \
_FP_UNPACK_SEMIRAW (Q, 2, X); \
} \
while (0)
@@ -257,7 +257,7 @@ union _FP_UNION_Q
# define FP_UNPACK_SEMIRAW_QP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_2_P (Q, X, val); \
+ _FP_UNPACK_RAW_2_P (Q, X, (val)); \
_FP_UNPACK_SEMIRAW (Q, 2, X); \
} \
while (0)
@@ -266,7 +266,7 @@ union _FP_UNION_Q
do \
{ \
_FP_PACK_CANONICAL (Q, 2, X); \
- _FP_PACK_RAW_2 (Q, val, X); \
+ _FP_PACK_RAW_2 (Q, (val), X); \
} \
while (0)
@@ -275,7 +275,7 @@ union _FP_UNION_Q
{ \
_FP_PACK_CANONICAL (Q, 2, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P (Q, val, X); \
+ _FP_PACK_RAW_2_P (Q, (val), X); \
} \
while (0)
@@ -283,7 +283,7 @@ union _FP_UNION_Q
do \
{ \
_FP_PACK_SEMIRAW (Q, 2, X); \
- _FP_PACK_RAW_2 (Q, val, X); \
+ _FP_PACK_RAW_2 (Q, (val), X); \
} \
while (0)
@@ -292,7 +292,7 @@ union _FP_UNION_Q
{ \
_FP_PACK_SEMIRAW (Q, 2, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P (Q, val, X); \
+ _FP_PACK_RAW_2_P (Q, (val), X); \
} \
while (0)
@@ -303,15 +303,15 @@ union _FP_UNION_Q
# define FP_MUL_Q(R, X, Y) _FP_MUL (Q, 2, R, X, Y)
# define FP_DIV_Q(R, X, Y) _FP_DIV (Q, 2, R, X, Y)
# define FP_SQRT_Q(R, X) _FP_SQRT (Q, 2, R, X)
-# define _FP_SQRT_MEAT_Q(R, S, T, X, Q) _FP_SQRT_MEAT_2 (R, S, T, X, Q)
+# define _FP_SQRT_MEAT_Q(R, S, T, X, Q) _FP_SQRT_MEAT_2 (R, S, T, X, (Q))
# define FP_FMA_Q(R, X, Y, Z) _FP_FMA (Q, 2, 4, R, X, Y, Z)
-# define FP_CMP_Q(r, X, Y, un, ex) _FP_CMP (Q, 2, r, X, Y, un, ex)
-# define FP_CMP_EQ_Q(r, X, Y, ex) _FP_CMP_EQ (Q, 2, r, X, Y, ex)
-# define FP_CMP_UNORD_Q(r, X, Y, ex) _FP_CMP_UNORD (Q, 2, r, X, Y, ex)
+# define FP_CMP_Q(r, X, Y, un, ex) _FP_CMP (Q, 2, (r), X, Y, (un), (ex))
+# define FP_CMP_EQ_Q(r, X, Y, ex) _FP_CMP_EQ (Q, 2, (r), X, Y, (ex))
+# define FP_CMP_UNORD_Q(r, X, Y, ex) _FP_CMP_UNORD (Q, 2, (r), X, Y, (ex))
-# define FP_TO_INT_Q(r, X, rsz, rsg) _FP_TO_INT (Q, 2, r, X, rsz, rsg)
-# define FP_FROM_INT_Q(X, r, rs, rt) _FP_FROM_INT (Q, 2, X, r, rs, rt)
+# define FP_TO_INT_Q(r, X, rsz, rsg) _FP_TO_INT (Q, 2, (r), X, (rsz), (rsg))
+# define FP_FROM_INT_Q(X, r, rs, rt) _FP_FROM_INT (Q, 2, X, (r), (rs), rt)
# define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_2 (X)
# define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_2 (X)
diff --git a/soft-fp/single.h b/soft-fp/single.h
index efa82946624..086a558b9eb 100644
--- a/soft-fp/single.h
+++ b/soft-fp/single.h
@@ -83,21 +83,21 @@ union _FP_UNION_S
};
#define FP_DECL_S(X) _FP_DECL (1, X)
-#define FP_UNPACK_RAW_S(X, val) _FP_UNPACK_RAW_1 (S, X, val)
-#define FP_UNPACK_RAW_SP(X, val) _FP_UNPACK_RAW_1_P (S, X, val)
-#define FP_PACK_RAW_S(val, X) _FP_PACK_RAW_1 (S, val, X)
+#define FP_UNPACK_RAW_S(X, val) _FP_UNPACK_RAW_1 (S, X, (val))
+#define FP_UNPACK_RAW_SP(X, val) _FP_UNPACK_RAW_1_P (S, X, (val))
+#define FP_PACK_RAW_S(val, X) _FP_PACK_RAW_1 (S, (val), X)
#define FP_PACK_RAW_SP(val, X) \
do \
{ \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P (S, val, X); \
+ _FP_PACK_RAW_1_P (S, (val), X); \
} \
while (0)
#define FP_UNPACK_S(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1 (S, X, val); \
+ _FP_UNPACK_RAW_1 (S, X, (val)); \
_FP_UNPACK_CANONICAL (S, 1, X); \
} \
while (0)
@@ -105,7 +105,7 @@ union _FP_UNION_S
#define FP_UNPACK_SP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1_P (S, X, val); \
+ _FP_UNPACK_RAW_1_P (S, X, (val)); \
_FP_UNPACK_CANONICAL (S, 1, X); \
} \
while (0)
@@ -113,7 +113,7 @@ union _FP_UNION_S
#define FP_UNPACK_SEMIRAW_S(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1 (S, X, val); \
+ _FP_UNPACK_RAW_1 (S, X, (val)); \
_FP_UNPACK_SEMIRAW (S, 1, X); \
} \
while (0)
@@ -121,7 +121,7 @@ union _FP_UNION_S
#define FP_UNPACK_SEMIRAW_SP(X, val) \
do \
{ \
- _FP_UNPACK_RAW_1_P (S, X, val); \
+ _FP_UNPACK_RAW_1_P (S, X, (val)); \
_FP_UNPACK_SEMIRAW (S, 1, X); \
} \
while (0)
@@ -130,7 +130,7 @@ union _FP_UNION_S
do \
{ \
_FP_PACK_CANONICAL (S, 1, X); \
- _FP_PACK_RAW_1 (S, val, X); \
+ _FP_PACK_RAW_1 (S, (val), X); \
} \
while (0)
@@ -139,7 +139,7 @@ union _FP_UNION_S
{ \
_FP_PACK_CANONICAL (S, 1, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P (S, val, X); \
+ _FP_PACK_RAW_1_P (S, (val), X); \
} \
while (0)
@@ -147,7 +147,7 @@ union _FP_UNION_S
do \
{ \
_FP_PACK_SEMIRAW (S, 1, X); \
- _FP_PACK_RAW_1 (S, val, X); \
+ _FP_PACK_RAW_1 (S, (val), X); \
} \
while (0)
@@ -156,7 +156,7 @@ union _FP_UNION_S
{ \
_FP_PACK_SEMIRAW (S, 1, X); \
if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P (S, val, X); \
+ _FP_PACK_RAW_1_P (S, (val), X); \
} \
while (0)
@@ -167,7 +167,7 @@ union _FP_UNION_S
#define FP_MUL_S(R, X, Y) _FP_MUL (S, 1, R, X, Y)
#define FP_DIV_S(R, X, Y) _FP_DIV (S, 1, R, X, Y)
#define FP_SQRT_S(R, X) _FP_SQRT (S, 1, R, X)
-#define _FP_SQRT_MEAT_S(R, S, T, X, Q) _FP_SQRT_MEAT_1 (R, S, T, X, Q)
+#define _FP_SQRT_MEAT_S(R, S, T, X, Q) _FP_SQRT_MEAT_1 (R, S, T, X, (Q))
#if _FP_W_TYPE_SIZE < 64
# define FP_FMA_S(R, X, Y, Z) _FP_FMA (S, 1, 2, R, X, Y, Z)
@@ -175,12 +175,12 @@ union _FP_UNION_S
# define FP_FMA_S(R, X, Y, Z) _FP_FMA (S, 1, 1, R, X, Y, Z)
#endif
-#define FP_CMP_S(r, X, Y, un, ex) _FP_CMP (S, 1, r, X, Y, un, ex)
-#define FP_CMP_EQ_S(r, X, Y, ex) _FP_CMP_EQ (S, 1, r, X, Y, ex)
-#define FP_CMP_UNORD_S(r, X, Y, ex) _FP_CMP_UNORD (S, 1, r, X, Y, ex)
+#define FP_CMP_S(r, X, Y, un, ex) _FP_CMP (S, 1, (r), X, Y, (un), (ex))
+#define FP_CMP_EQ_S(r, X, Y, ex) _FP_CMP_EQ (S, 1, (r), X, Y, (ex))
+#define FP_CMP_UNORD_S(r, X, Y, ex) _FP_CMP_UNORD (S, 1, (r), X, Y, (ex))
-#define FP_TO_INT_S(r, X, rsz, rsg) _FP_TO_INT (S, 1, r, X, rsz, rsg)
-#define FP_FROM_INT_S(X, r, rs, rt) _FP_FROM_INT (S, 1, X, r, rs, rt)
+#define FP_TO_INT_S(r, X, rsz, rsg) _FP_TO_INT (S, 1, (r), X, (rsz), (rsg))
+#define FP_FROM_INT_S(X, r, rs, rt) _FP_FROM_INT (S, 1, X, (r), (rs), rt)
#define _FP_FRAC_HIGH_S(X) _FP_FRAC_HIGH_1 (X)
#define _FP_FRAC_HIGH_RAW_S(X) _FP_FRAC_HIGH_1 (X)