gmp 4.3.0 tests fail on Mac OS X 10.5
Mark Rodenkirch
mgrogue at wi.rr.com
Wed May 6 17:15:34 CEST 2009
This should be no surprise, but I suspect it to be a compiler bug. In
looking at the snippet of code from the files provided:
0000003c addl (%esp),%eax
0000003f ret
.Lend:
00000040 sbbl %eax,%eax
00000042 negl %eax
00000044 popl %ebx
00000045 popl %esi
00000046 popl %edi
00000047 ret
00000048 nopl 0x00000000(%eax,%eax)
.Loop:
00000050 jcxz 0x00000040
The jcxz instruction (offset 50) is actually jumping to offset 3f, not
offset 40. It is returning from the routine without restoring
registers.
Just to be certain that my procedure is correct, I created the .s file
from the .asm source and compiled with -g so that I could step through
the code. The .s file clearly has jecxz .LLend, but jumps to the
prior instruction instead.
--Mark
On May 6, 2009, at 6:53 AM, Torbjorn Granlund wrote:
> Mark Rodenkirch <mgrogue at wi.rr.com> writes:
>
> This was with the latest snapshot.
>
> Yes to your second question.
>
> OK, thanks.
>
> I will see if I can debug it, but I'm not strong on the platform.
>
> BTW, which version of gcc did you use? Maybe I need to get a more
> current version.
>
> It would be good if we found the cause to the aors_n.asm problem
> first.
>
> I use: gcc version 4.0.1 (Apple Computer, Inc. build 5367)
> uname says: Darwin sill.swox.se 8.11.1 Darwin Kernel Version 8.11.1
>
> That's probably pretty old. My experience with upgrading Xcode is
> that
> things break. I prefer to stick to an old version for GMP work,
> where I
> am familiar with the bugs. I rely on users to try newer versions.
>
> --
> Torbjörn
More information about the gmp-bugs
mailing list