Thread (4 messages) flat view 4 messages, 2 authors, 2008-01-15

RE: [PATCH] Fix carry bug in 128-bit unsigned integer adding

From: Liu Yu <hidden>
Date: 2008-01-09 03:05:39

=20
take a look at how include/math-emu/op-4.h implements=20
__FP_FRAC_ADD_4 & __FP_FRAC_SUB_4.  Will that fix the bug, if=20
so we should make the code match how its done there.
=20
- k
=20
=20
The macro define __FP_FRAC_ADD_4 is below. It can fix the carry bug.=20
But still exist a problem that r[0-2] and x[0-2] cannot be referred to
the same variable.
If r0 and x0 are the same variable, the comparison ( r0 < x0 ) will
always fail.
I don't know whether we need to fix this problem.

---
#define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0)    \
  do {                                                          \
    int _c1, _c2, _c3;                                          \
    r0 =3D x0 + y0;                                               \
    _c1 =3D r0 < x0;                                              \
    r1 =3D x1 + y1;                                               \
    _c2 =3D r1 < x1;                                              \
    r1 +=3D _c1;                                                  \
    _c2 |=3D r1 < _c1;                                            \
    r2 =3D x2 + y2;                                               \
    _c3 =3D r2 < x2;                                              \
    r2 +=3D _c2;                                                  \
    _c3 |=3D r2 < _c2;                                            \
    r3 =3D x3 + y3 + _c3;                                         \
  } while (0)
#endif
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help