5.1.2 test failures on alphaev56-dec-osf4.0g

Torbjorn Granlund tg at gmplib.org
Wed Sep 18 20:01:51 CEST 2013


"Daniel Richard G." <skunk at iSKUNK.ORG> writes:

  On Wed, 2013 Sep 18 18:55+0200, Niels Möller wrote:
  > 
  > It might be enligthning to ask gdb to disassemble that for you, to see
  > how it ended up after assembling and linking. Something like
  > 
  >   disassemble $pc - 8, $pc + 8
  
  Program received signal SIGSEGV, Segmentation fault.
  __gmpn_invert_limb () at tmp-invert_limb.s:61
  61      tmp-invert_limb.s: No such file or directory.
  (gdb) disassemble $pc - 16, $pc + 16
  Dump of assembler code from 0x120020c98 to 0x120020cb8:
     0x0000000120020c98 <__gmp_divide_by_zero+36>:   nop     
     0x0000000120020c9c <__gmp_divide_by_zero+40>:   unop    
     0x0000000120020ca0 <__gmpn_invert_limb+0>:      ldah    gp,8191(t12)
     0x0000000120020ca4 <__gmpn_invert_limb+4>:      lda     gp,19520(gp)
  => 0x0000000120020ca8 <__gmpn_invert_limb+8>:   ldq     t1,-32520(gp)
     0x0000000120020cac <__gmpn_invert_limb+12>:     srl     a0,0x36,t0
     0x0000000120020cb0 <__gmpn_invert_limb+16>:     srl     a0,0x18,t3
     0x0000000120020cb4 <__gmpn_invert_limb+20>:     and     a0,0x1,t4
  End of assembler dump.
  
  Does that large negative number seem right?
  
I cannot recall the detail of the Alpha ABI.  Since offsets in ldq are
-32768...32767, letting gp have an offset of 32768 seem to make a lot of
sense.  -32520 would then also make sense.

Wasn't alpha at some point PIC-always?  The GMP alpha asm code seem to
assume one needs to set up a gp always.

-- 
Torbjörn


More information about the gmp-bugs mailing list