GMP 6.0.0a on AMD A8-6600K

Kevin Buckley kevin.m.buckley at gmail.com
Sat Apr 11 11:20:50 UTC 2015


On 10 April 2015 at 04:41,  <tg at gmplib.org> wrote:

>>   As noted in the Xen package listings provided, I believe it's the latest
>>   available for the Ubuntu 12.04 distribution.
>
> Version?  The command "xl info" should give you that.

4.1

as detailed previously

>> with these Xen packages
>>
>> libxen-4.1_4.1.6.1-0ubuntu0.12.04.5_amd64.deb
>> libxenstore3.0_4.1.6.1-0ubuntu0.12.04.5_amd64.deb
>> xen-hypervisor-4.1-amd64_4.1.6.1-0ubuntu0.12.04.5_amd64.deb
>> xen-tools_4.2.1-1_all.deb
>> xen-utils-4.1_4.1.6.1-0ubuntu0.12.04.5_amd64.deb
>> xen-utils-common_4.1.2-1ubuntu1_all.deb
>> xenstore-utils_4.1.6.1-0ubuntu0.12.04.5_amd64.deb


> We need you to check the culprit instruction with gdb, as suggested.
> Then we can go from there.

This is the building and output from the t-get_d binary, basically what
"make check" does but with the -g

gcc -g -std=gnu99 -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../tests   \
    -O2 -pedantic -fomit-frame-pointer -m64 -mtune=bdver1 -march=bdver1 \
    -c t-get_d.c

gcc -g -std=gnu99 \
    -O2 -pedantic -fomit-frame-pointer -m64 -mtune=bdver1 -march=bdver1 \
    -o t-get_d \
             t-get_d.o  \
        ../../tests/.libs/libtests.a \
        /root/20150411/gmp-6.0.0-20150409/.libs/libgmp.so \
        ../../.libs/libgmp.so


# gdb t-get_d

GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...

Reading symbols from /root/20150411/gmp-6.0.0-20150409/tests/mpn/t-get_d...done.

(gdb) run
Starting program: /root/20150411/gmp-6.0.0-20150409/tests/mpn/t-get_d

Program received signal SIGILL, Illegal instruction.
0x000000000040214f in check_onebit () at t-get_d.c:86
86            np[bit/GMP_NUMB_BITS] = CNST_LIMB(1) << (bit % GMP_NUMB_BITS);

(gdb) p $pc
$1 = (void (*)()) 0x40214f <check_onebit+79>

(gdb) disassemble
Dump of assembler code for function check_onebit:
   0x0000000000402100 <+0>:     push   %r15
   0x0000000000402102 <+2>:     mov    $0x40b080,%r15d
   0x0000000000402108 <+8>:     push   %r14
   0x000000000040210a <+10>:    push   %r13
   0x000000000040210c <+12>:    push   %r12
   0x000000000040210e <+14>:    push   %rbp
   0x000000000040210f <+15>:    push   %rbx
   0x0000000000402110 <+16>:    sub    $0xe8,%rsp
   0x0000000000402117 <+23>:    nopw   0x0(%rax,%rax,1)
   0x0000000000402120 <+32>:    movslq (%r15),%r12
   0x0000000000402123 <+35>:    lea    0x40(%rsp),%rdi
   0x0000000000402128 <+40>:    mov    %r12,%rax
   0x000000000040212b <+43>:    lea    0x7f(%r12),%r13
   0x0000000000402130 <+48>:    add    $0x40,%rax
   0x0000000000402134 <+52>:    cmovns %rax,%r13
   0x0000000000402138 <+56>:    sar    $0x6,%r13
   0x000000000040213c <+60>:    mov    %r13,%rsi
   0x000000000040213f <+63>:    callq  0x403d60 <refmpn_zero>
   0x0000000000402144 <+68>:    test   %r12,%r12
   0x0000000000402147 <+71>:    lea    0x3f(%r12),%rax
   0x000000000040214c <+76>:    mov    %r12,%rsi
=> 0x000000000040214f <+79>:    vmovsd 0x9031(%rip),%xmm2        # 0x40b188

   0x0000000000402157 <+87>:    cmovs  %rax,%rsi
   0x000000000040215b <+91>:    mov    %r12,%rax
   0x000000000040215e <+94>:    cqto
   0x0000000000402160 <+96>:    sar    $0x6,%rsi
   0x0000000000402164 <+100>:   shr    $0x3a,%rdx
   0x0000000000402168 <+104>:   xor    %r14d,%r14d
   0x000000000040216b <+107>:   lea    (%r12,%rdx,1),%rcx
   0x000000000040216f <+111>:   and    $0x3f,%ecx
   0x0000000000402172 <+114>:   sub    %dl,%cl
   0x0000000000402174 <+116>:   mov    $0x1,%edx
   0x0000000000402179 <+121>:   shl    %cl,%rdx
   0x000000000040217c <+124>:   mov    %rdx,0x40(%rsp,%rsi,8)
   0x0000000000402181 <+129>:   nopl   0x0(%rax)
   0x0000000000402188 <+136>:   movslq 0x40b110(%r14),%rbp
   0x000000000040218f <+143>:   lea    (%r12,%rbp,1),%rbx
   0x0000000000402193 <+147>:   cmp    $0x1fe,%rbx
   0x000000000040219a <+154>:   jg     0x40224d <check_onebit+333>
   0x00000000004021a0 <+160>:   cmp    $0xfffffffffffffe02,%rbx
   0x00000000004021a7 <+167>:   jl     0x40224d <check_onebit+333>
   0x00000000004021ad <+173>:   cmp    $0x0,%rbx
   0x00000000004021b1 <+177>:   jle    0x40227e <check_onebit+382>
   0x00000000004021b7 <+183>:   vmovsd 0x8fc1(%rip),%xmm1        # 0x40b180
   0x00000000004021bf <+191>:   xor    %eax,%eax


I can send the full dump, another 4 screenfulls or so, if the higlighted line
doesn't tell you what you need to know.

Will work through the others tomorrow (Sunday)

Kevin


More information about the gmp-bugs mailing list