]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
soft-fp: Properly check _FP_W_TYPE_SIZE [BZ #24066]
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 7 Jan 2019 17:04:29 +0000 (09:04 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 7 Jan 2019 17:04:39 +0000 (09:04 -0800)
quad.h have

 #if _FP_W_TYPE_SIZE < 64

union _FP_UNION_Q
{
  Use 4 _FP_W_TYPEs
}

 #else

union _FP_UNION_Q
{
  Use 2 _FP_W_TYPEs
}

 #endif

Replace

 #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q

with

 #if _FP_W_TYPE_SIZE < 64

to check whether 4 or 2 _FP_W_TYPEs are used for IEEE quad precision.
Tested with build-many-glibcs.py.

[BZ #24066]
* soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
4_FP_W_TYPEs are used for IEEE quad precision.
* soft-fp/extendhftf2.c: Likewise.
* soft-fp/extendsftf2.c: Likewise.
* soft-fp/extendxftf2.c: Likewise.
* soft-fp/trunctfdf2.c: Likewise.
* soft-fp/trunctfhf2.c: Likewise.
* soft-fp/trunctfsf2.c: Likewise.
* soft-fp/trunctfxf2.c: Likewise.
* sysdeps/alpha/ots_cvttx.c: Likewise.
* sysdeps/alpha/ots_cvtxt.c: Likewise.
* sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
* sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
* sysdeps/sparc/sparc32/q_dtoq.c: Likewise.
* sysdeps/sparc/sparc32/q_qtod.c: Likewise.
* sysdeps/sparc/sparc32/q_qtos.c: Likewise.
* sysdeps/sparc/sparc32/q_stoq.c: Likewise.
* sysdeps/sparc/sparc64/qp_dtoq.c: Likewise.
* sysdeps/sparc/sparc64/qp_qtod.c: Likewise.
* sysdeps/sparc/sparc64/qp_qtos.c: Likewise.
* sysdeps/sparc/sparc64/qp_stoq.c: Likewise.

27 files changed:
ChangeLog
soft-fp/extenddftf2.c
soft-fp/extendhftf2.c
soft-fp/extendsftf2.c
soft-fp/extendxftf2.c
soft-fp/trunctfdf2.c
soft-fp/trunctfhf2.c
soft-fp/trunctfsf2.c
soft-fp/trunctfxf2.c
sysdeps/alpha/ots_cvttx.c
sysdeps/alpha/ots_cvtxt.c
sysdeps/ieee754/soft-fp/s_daddl.c
sysdeps/ieee754/soft-fp/s_ddivl.c
sysdeps/ieee754/soft-fp/s_dmull.c
sysdeps/ieee754/soft-fp/s_dsubl.c
sysdeps/ieee754/soft-fp/s_faddl.c
sysdeps/ieee754/soft-fp/s_fdivl.c
sysdeps/ieee754/soft-fp/s_fmull.c
sysdeps/ieee754/soft-fp/s_fsubl.c
sysdeps/sparc/sparc32/q_dtoq.c
sysdeps/sparc/sparc32/q_qtod.c
sysdeps/sparc/sparc32/q_qtos.c
sysdeps/sparc/sparc32/q_stoq.c
sysdeps/sparc/sparc64/qp_dtoq.c
sysdeps/sparc/sparc64/qp_qtod.c
sysdeps/sparc/sparc64/qp_qtos.c
sysdeps/sparc/sparc64/qp_stoq.c

index 314a5112215c04896bccfd6552009756cf00ba2e..909e56a49c7d298c0e3efb365708491a19e1cf0f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+2019-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #24066]
+       * soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
+       4_FP_W_TYPEs are used for IEEE quad precision.
+       * soft-fp/extendhftf2.c: Likewise.
+       * soft-fp/extendsftf2.c: Likewise.
+       * soft-fp/extendxftf2.c: Likewise.
+       * soft-fp/trunctfdf2.c: Likewise.
+       * soft-fp/trunctfhf2.c: Likewise.
+       * soft-fp/trunctfsf2.c: Likewise.
+       * soft-fp/trunctfxf2.c: Likewise.
+       * sysdeps/alpha/ots_cvttx.c: Likewise.
+       * sysdeps/alpha/ots_cvtxt.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
+       * sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
+       * sysdeps/sparc/sparc32/q_dtoq.c: Likewise.
+       * sysdeps/sparc/sparc32/q_qtod.c: Likewise.
+       * sysdeps/sparc/sparc32/q_qtos.c: Likewise.
+       * sysdeps/sparc/sparc32/q_stoq.c: Likewise.
+       * sysdeps/sparc/sparc64/qp_dtoq.c: Likewise.
+       * sysdeps/sparc/sparc64/qp_qtod.c: Likewise.
+       * sysdeps/sparc/sparc64/qp_qtos.c: Likewise.
+       * sysdeps/sparc/sparc64/qp_stoq.c: Likewise.
+
 2019-01-07  Aurelien Jarno  <aurelien@aurel32.net>
 
        [BZ #24024]
index 85a17ceb9e5b47872ee29068df1da9169f0a1826..0568ddf1779cad90c610ce082c03a08b5151f2c4 100644 (file)
@@ -43,7 +43,7 @@ __extenddftf2 (DFtype a)
 
   FP_INIT_EXCEPTIONS;
   FP_UNPACK_RAW_D (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND (Q, D, 4, 2, R, A);
 #else
   FP_EXTEND (Q, D, 2, 1, R, A);
index ed19f0db275c9f191fbe5e727a53b5d10ecd7ef0..c71ab53a45471d158a92c58d6f9597a7217bbb35 100644 (file)
@@ -41,7 +41,7 @@ __extendhftf2 (HFtype a)
 
   FP_INIT_EXCEPTIONS;
   FP_UNPACK_RAW_H (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND (Q, H, 4, 1, R, A);
 #else
   FP_EXTEND (Q, H, 2, 1, R, A);
index 4707c407458046023596bcc37b7775dee887a1c8..82b5d627dde3151531ad6875dea727a1311b5e25 100644 (file)
@@ -43,7 +43,7 @@ __extendsftf2 (SFtype a)
 
   FP_INIT_EXCEPTIONS;
   FP_UNPACK_RAW_S (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND (Q, S, 4, 1, R, A);
 #else
   FP_EXTEND (Q, S, 2, 1, R, A);
index 858e122a160cf4ecc5bcf7a311a811e07c9802f5..d9885e5c8fc6340472ed611bc380f39f4883d5f3 100644 (file)
@@ -41,7 +41,7 @@ __extendxftf2 (XFtype a)
 
   FP_INIT_TRAPPING_EXCEPTIONS;
   FP_UNPACK_RAW_E (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND (Q, E, 4, 4, R, A);
 #else
   FP_EXTEND (Q, E, 2, 2, R, A);
index 440ccfacc79fa6a316074292305ddb51ea881216..f62d5419ded403f4634136a515befe391f9812b3 100644 (file)
@@ -42,7 +42,7 @@ __trunctfdf2 (TFtype a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (D, Q, 2, 4, R, A);
 #else
   FP_TRUNC (D, Q, 1, 2, R, A);
index 6ee80c519c61e853d1932cdf6bf953173243bee8..61d08f896e2996a777f3c47f16579510809bdf8f 100644 (file)
@@ -40,7 +40,7 @@ __trunctfhf2 (TFtype a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (H, Q, 1, 4, R, A);
 #else
   FP_TRUNC (H, Q, 1, 2, R, A);
index 8b2f23df253977895b0364cfaaca33527edc38ad..965e1c488f3b634392e84425eac89d374dfb77b4 100644 (file)
@@ -42,7 +42,7 @@ __trunctfsf2 (TFtype a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (S, Q, 1, 4, R, A);
 #else
   FP_TRUNC (S, Q, 1, 2, R, A);
index bcb8e888c60c4b3fdd92f9db6688ca3e118110e7..0d828fac953172937fcc488d8129710a4cd15aae 100644 (file)
@@ -41,7 +41,7 @@ __trunctfxf2 (TFtype a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (E, Q, 4, 4, R, A);
 #else
   FP_TRUNC (E, Q, 2, 2, R, A);
index a2a570c97df640f07c44b8aff2bc1c95f0ca7567..716e45aa54b34364f30a8ae7e7b3309ad4ed0067 100644 (file)
@@ -35,7 +35,7 @@ _OtsConvertFloatTX(double a)
   AXP_DECL_RETURN_Q(c);
 
   FP_UNPACK_RAW_D(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND(Q,D,4,2,C,A);
 #else
   FP_EXTEND(Q,D,2,1,C,A);
index 737142857a81d55551596b3ac77daacede20e5b8..856b213c19f3ba5b109ef8ebb160081eea299a85 100644 (file)
@@ -31,7 +31,7 @@ _OtsConvertFloatXT (long al, long ah, long _round)
 
   FP_INIT_ROUNDMODE;
   AXP_UNPACK_SEMIRAW_Q(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC(D,Q,2,4,R,A);
 #else
   FP_TRUNC(D,Q,1,2,R,A);
index 7f217a88c55aa107a5d2e32850f1159a4e20cc20..dc909a1c8ba900af943172fee05151c830b7971a 100644 (file)
@@ -46,7 +46,7 @@ __daddl (_Float128 x, _Float128 y)
   FP_UNPACK_SEMIRAW_Q (X, x);
   FP_UNPACK_SEMIRAW_Q (Y, y);
   FP_ADD_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (D, Q, 2, 4, RN, R);
 #else
   FP_TRUNC (D, Q, 1, 2, RN, R);
index d792b70de8ff06a13fcd4c17e71fd84f05863f5c..8e469c57804f70729dc88cc3b452e5d71068e751 100644 (file)
@@ -46,7 +46,7 @@ __ddivl (_Float128 x, _Float128 y)
   FP_UNPACK_Q (X, x);
   FP_UNPACK_Q (Y, y);
   FP_DIV_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC_COOKED (D, Q, 2, 4, RN, R);
 #else
   FP_TRUNC_COOKED (D, Q, 1, 2, RN, R);
index 9841f817e794a387fc1dc4a6cb5958944c5a0721..437c55bd80c7edfa75e3c640dc6122eb7e3a2a98 100644 (file)
@@ -46,7 +46,7 @@ __dmull (_Float128 x, _Float128 y)
   FP_UNPACK_Q (X, x);
   FP_UNPACK_Q (Y, y);
   FP_MUL_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC_COOKED (D, Q, 2, 4, RN, R);
 #else
   FP_TRUNC_COOKED (D, Q, 1, 2, RN, R);
index 14cc7694811fef39c5595bf6857d4b31f24e16ce..699ff44056cfe77a79d32cbcd20a8566ce2f738f 100644 (file)
@@ -46,7 +46,7 @@ __dsubl (_Float128 x, _Float128 y)
   FP_UNPACK_SEMIRAW_Q (X, x);
   FP_UNPACK_SEMIRAW_Q (Y, y);
   FP_SUB_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (D, Q, 2, 4, RN, R);
 #else
   FP_TRUNC (D, Q, 1, 2, RN, R);
index 4b16984c765dff0540b7aa2ae59245fc42c20493..23dfcc046a980327cb48a4da8c8136514625cded 100644 (file)
@@ -42,7 +42,7 @@ __faddl (_Float128 x, _Float128 y)
   FP_UNPACK_SEMIRAW_Q (X, x);
   FP_UNPACK_SEMIRAW_Q (Y, y);
   FP_ADD_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (S, Q, 1, 4, RN, R);
 #else
   FP_TRUNC (S, Q, 1, 2, RN, R);
index df7a01767c03b3c2acc008400fc9e25453ae6296..4792b231b104c7af15a6b0c879c0945740bc933b 100644 (file)
@@ -42,7 +42,7 @@ __fdivl (_Float128 x, _Float128 y)
   FP_UNPACK_Q (X, x);
   FP_UNPACK_Q (Y, y);
   FP_DIV_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC_COOKED (S, Q, 1, 4, RN, R);
 #else
   FP_TRUNC_COOKED (S, Q, 1, 2, RN, R);
index 1ae0e1a187e5cc1649b5ec8213d1398fc09e394d..8d98bf9309f0071201fa1fd38fd2858270e5017b 100644 (file)
@@ -42,7 +42,7 @@ __fmull (_Float128 x, _Float128 y)
   FP_UNPACK_Q (X, x);
   FP_UNPACK_Q (Y, y);
   FP_MUL_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC_COOKED (S, Q, 1, 4, RN, R);
 #else
   FP_TRUNC_COOKED (S, Q, 1, 2, RN, R);
index bafc820a00836f7814737219dbde3382ce39b7a8..bca00604438e8f5d196a43924877fdb418e7662c 100644 (file)
@@ -42,7 +42,7 @@ __fsubl (_Float128 x, _Float128 y)
   FP_UNPACK_SEMIRAW_Q (X, x);
   FP_UNPACK_SEMIRAW_Q (Y, y);
   FP_SUB_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC (S, Q, 1, 4, RN, R);
 #else
   FP_TRUNC (S, Q, 1, 2, RN, R);
index 4fa5eb707aaadca2adcdd95910744cbb9eec60d8..53f833dbb8aabe9cdcd0ddcdcc2d608f7dd8d5ce 100644 (file)
@@ -32,7 +32,7 @@ long double _Q_dtoq(const double a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_RAW_D(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND(Q,D,4,2,C,A);
 #else
   FP_EXTEND(Q,D,2,1,C,A);
index e0987fc77d753799ece728ac2d753ee06d32e2c2..fe644672ad6c23233ebe0897fca4dd53efa2e008 100644 (file)
@@ -32,7 +32,7 @@ double _Q_qtod(const long double a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_Q(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC(D,Q,2,4,R,A);
 #else
   FP_TRUNC(D,Q,1,2,R,A);
index d150c7f36b71f90d9cd97d49585c8c27c8f30ae2..36dc247631b954fc33f686fb4820ee435d1b7e9a 100644 (file)
@@ -32,7 +32,7 @@ float _Q_qtos(const long double a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_Q(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC(S,Q,1,4,R,A);
 #else
   FP_TRUNC(S,Q,1,2,R,A);
index 93fb054cefa65b6290224548ced90a1986ab5891..6cd8704ce594ba5fea60ac014dca4559e308a88c 100644 (file)
@@ -31,7 +31,7 @@ long double _Q_stoq(const float a)
   long double c;
 
   FP_UNPACK_RAW_S(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND(Q,S,4,1,C,A);
 #else
   FP_EXTEND(Q,S,2,1,C,A);
index 7942c953978d9ee6503bc2923c59060e9bec10a1..022cb091f8248b526954bbf8dde7873a7067c95f 100644 (file)
@@ -31,7 +31,7 @@ void _Qp_dtoq(long double *c, const double a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_RAW_D(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND(Q,D,4,2,C,A);
 #else
   FP_EXTEND(Q,D,2,1,C,A);
index 78e1a209ef511e47639ead77b2bb5f928b18440e..953e2d8d6e01b98b95fc7990a13deee4a9ed86e2 100644 (file)
@@ -32,7 +32,7 @@ double _Qp_qtod(const long double *a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_QP(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC(D,Q,2,4,R,A);
 #else
   FP_TRUNC(D,Q,1,2,R,A);
index 87901f1b4d48920011d7532d4d5af3f05636222c..1b932ca18921e02897a00e6c1c39537bcaf40e4f 100644 (file)
@@ -32,7 +32,7 @@ float _Qp_qtos(const long double *a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_SEMIRAW_QP(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_TRUNC(S,Q,1,4,R,A);
 #else
   FP_TRUNC(S,Q,1,2,R,A);
index 005afce11cc7b097dcfee75c7b351574be328aa7..4d1c854ebcbed2f8359965ec2b6cc56d8c6df1ff 100644 (file)
@@ -31,7 +31,7 @@ void _Qp_stoq(long double *c, const float a)
 
   FP_INIT_ROUNDMODE;
   FP_UNPACK_RAW_S(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
   FP_EXTEND(Q,S,4,1,C,A);
 #else
   FP_EXTEND(Q,S,2,1,C,A);