Thread (7 messages) flat view 7 messages, 3 authors, 2018-11-20

Re: [PATCH v2] powerpc/math-emu: Update macros from gmp-6.1.2

From: Joel Stanley <joel@jms.id.au>
Date: 2018-11-19 23:18:13

On Tue, 20 Nov 2018 at 05:24, Nick Desaulniers [off-list ref] wrote:
quoted
The only functional change I noticed was this in udiv_qrnnd.

    __r1 = (n1) % __d1;
    __q1 = (n1) / __d1;

Becomes this:

    __q1 = (n1) / __d1;
    __r1 = (n1) - __q1 * __d1;

This is equivalent as it instead of calculating the remainder
using modulo, it uses the result of integer division to subtract the
count of 'whole' d1 from r1.
I don't understand this; why was this functional change made?
I couldn't see why. It pre-dates GMP's mecurial history that  .
                                              \
quoted
-    (q) = (UWtype) __q1 * __ll_B | __q0;                               \
+    (q) = __q1 * __ll_B | __q0;                                                \
     (r) = __r0;                                                                \
   } while (0)
This appears to now differ from the upstream source:
https://github.com/gcc-mirror/gcc/blob/f7289f563a5e447ac21a5901ed75aad0dbd37732/include/longlong.h#L1679
AIUI the upstream source is GMP:

 https://gmplib.org/repo/gmp/file/tip/longlong.h
If we're going to borrow implementations from GCC, let's borrow the
same implementation. Otherwise it's hard to have confidence in this
part of the patch.
I agree we should use the upstream source.

Segher, which tree contains the One True Upstream for longlong.h?

Cheers,

Joel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help