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