This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Ping Re: soft-fp quad.h patch


On Sun, Mar 18, 2007 at 08:56:15PM +0000, Joseph S. Myers wrote:
> Ping.  Could someone review this patch for bug 2831 
> <http://sourceware.org/ml/libc-alpha/2006-06/msg00011.html>?  Jakub, you 
> reviewed the last soft-fp patches to go in.

Is there any reason why you want unsigned long long FP_W_TYPE rather than
just unsigned long?

If yes, then your patch is certainly not sufficient:
grep -w long soft-fp/*.h
soft-fp/double.h:    unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
soft-fp/double.h:    unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
soft-fp/extended.h:      unsigned long pad1 : _FP_W_TYPE_SIZE;
soft-fp/extended.h:      unsigned long pad2 : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
soft-fp/extended.h:      unsigned long sign : 1;
soft-fp/extended.h:      unsigned long exp : _FP_EXPBITS_E;
soft-fp/extended.h:      unsigned long frac1 : _FP_W_TYPE_SIZE;
soft-fp/extended.h:      unsigned long frac0 : _FP_W_TYPE_SIZE;
soft-fp/extended.h:      unsigned long frac0 : _FP_W_TYPE_SIZE;
soft-fp/extended.h:      unsigned long frac1 : _FP_W_TYPE_SIZE;
soft-fp/extended.h:    unsigned long pad : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
soft-fp/extended.h:    unsigned long frac : _FP_W_TYPE_SIZE;
soft-fp/extended.h:    unsigned long frac : _FP_W_TYPE_SIZE;
soft-fp/op-2.h:    _e240 = (double)(long)(X##_f0 & 0xffffff);                                   \
soft-fp/op-2.h:    _j240 = (double)(long)(Y##_f0 & 0xffffff);                                   \
soft-fp/op-2.h:    _d240 = (double)(long)((X##_f0 >> 24) & 0xffffff);                           \
soft-fp/op-2.h:    _i240 = (double)(long)((Y##_f0 >> 24) & 0xffffff);                           \
soft-fp/op-2.h:    _c240 = (double)(long)(((X##_f1 << 16) & 0xffffff) | (X##_f0 >> 48));        \
soft-fp/op-2.h:    _h240 = (double)(long)(((Y##_f1 << 16) & 0xffffff) | (Y##_f0 >> 48));        \
soft-fp/op-2.h:    _b240 = (double)(long)((X##_f1 >> 8) & 0xffffff);                            \
soft-fp/op-2.h:    _g240 = (double)(long)((Y##_f1 >> 8) & 0xffffff);                            \
soft-fp/op-2.h:    _a240 = (double)(long)(X##_f1 >> 32);                                        \
soft-fp/op-2.h:    _f240 = (double)(long)(Y##_f1 >> 32);                                        \
soft-fp/op-common.h:    else if (sizeof (_FP_W_TYPE) == sizeof (unsigned long))               \
soft-fp/op-common.h:    else if (sizeof (_FP_W_TYPE) == sizeof (unsigned long long))          \
soft-fp/quad.h:      unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
soft-fp/quad.h:      unsigned long frac2 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:      unsigned long frac1 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:      unsigned long frac0 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:      unsigned long frac0 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:      unsigned long frac1 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:      unsigned long frac2 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:      unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
soft-fp/quad.h:    unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;
soft-fp/quad.h:    unsigned long frac0 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:    unsigned long frac0 : _FP_W_TYPE_SIZE;
soft-fp/quad.h:    unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;

>From this, op-common.h's FP_CLZ is ok, and so is op-2.h, but I believe either all unsigned long
occurrences in extended.h, quad.h, double.h, or at least those for _FP_W_TYPE_SIZE >= 64
should be _FP_W_TYPE, not just those in quad.h.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]