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