>The current code looks correct to me.  Please explain why you think it
>is not correct.
>
>
>-- 
>Torbjörn

Hello,
thank you for looking into my report.

I am not an assembler expert. I compiled the lib with and without -O2 and found 
without -O2 the tests worked. So I started compiling the c-files with and 
without -O2 to find out the problematic file. I eventually found exactly one 
file. If all others in the lib were compiled with -O2 and only 
mpn/sqr_basecase.c without optimization, then the tests passed. So I suspceted 
a bug in Amiga gcc6 and asked the maintainer of amiga gcc6.

He tried and answered on https://github.com/bebbo/gcc/issues/145 
This is his answer:

>I disabled the asm mult16x16 to hunt the bug and with the generic version it 
>run well. So the problem had to be the asm.
>Here I compared the generated asm: http://franke.ms/cex/z/oG53bK and you see 
>that only one register is used instead of two, since the modification is not 
>recognized.
>
>/* here --> */             "=d" (__umul_tmp1),
>
>to
>
>/* here --> */             "=&d" (__umul_tmp1),
>
>does the magic.


With his change the tests pass so I think the change is reasonable.


Kind regards Alexander






_______________________________________________
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs

Reply via email to