[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] Re: Bug in mpn/m68k/lshift.asm
From: |
Camm Maguire |
Subject: |
Re: [Gcl-devel] Re: Bug in mpn/m68k/lshift.asm |
Date: |
11 Aug 2002 23:02:14 -0400 |
Greetings! OK, I have this all setup on kullervo, so we can do any
test we'd like. I short, the issue persists. I've tried gcc-3.0, and
configuring as mc68020 (the machine is an 060). Same symptoms.
Configuring with --build=none... compiles, but loses precision
apparently on some maxima numerical tests. Lastly, linking with gmp2
works fine -- compiling and passing all tests. gcl needs gmp3 for
ia64 and hppa, so I'd like to get all platforms using the same lib.
libgmp.a is statically linked.
Here is a bit more gdb output showing the location of the memory
write. I'll try to make this more thorough and clear a bit later --
just hoping this will ring a quick bell:
=============================================================================
(gdb) r <foo
r <foo
Starting program: /usr/local/tmp/maxima-5.6b/gcl/unixport/raw_gcl <foo
GCL (GNU Common Lisp) April 1994 32768 pages
loading ../lsp/export.lsp
Initializing ../lsp/defmacro.o
Initializing ../lsp/evalmacros.o
Initializing ../lsp/top.o
Initializing ../lsp/module.o
loading ../lsp/autoload.lsp
>
#<"COMPILER" package>
COMPILER>
#<"SYSTEM" package>
SYSTEM>
*COMMAND-ARGS*
SYSTEM>
#<"USER" package>
>
#<"LISP" package>
LISP>
#<"SLOOP" package>
SLOOP>
6
SLOOP>
#<"USER" package>
>
Loading ../gcl-tk/tk-package.lsp
Finished loading ../gcl-tk/tk-package.lsp
T
>Initializing ../lsp/predlib.o
Initializing ../lsp/setf.o
Initializing ../lsp/arraylib.o
Initializing ../lsp/assert.o
Initializing ../lsp/defstruct.o
Initializing ../lsp/describe.o
Initializing ../lsp/iolib.o
Initializing ../lsp/listlib.o
Initializing ../lsp/mislib.o
Initializing ../lsp/numlib.o
Initializing ../lsp/packlib.o
Initializing ../lsp/seq.o
Initializing ../lsp/seqlib.o
Initializing ../lsp/trace.o
Initializing ../lsp/sloop.o
Initializing ../lsp/serror.o
Initializing ../lsp/destructuring_bind.o
Initializing ../lsp/loop.o
Initializing ../lsp/defpackage.o
Initializing ../lsp/make_defpackage.o
Initializing ../cmpnew/cmpinline.o
Initializing ../cmpnew/cmputil.o
Initializing ../lsp/debug.o
Initializing ../lsp/info.o
Initializing ../cmpnew/cmptype.o
Initializing ../cmpnew/cmpbind.o
Initializing ../cmpnew/cmpblock.o
Initializing ../cmpnew/cmpcall.o
Initializing ../cmpnew/cmpcatch.o
Initializing ../cmpnew/cmpenv.o
Initializing ../cmpnew/cmpeval.o
Initializing ../cmpnew/cmpflet.o
Initializing ../cmpnew/cmpfun.o
Initializing ../cmpnew/cmpif.o
Initializing ../cmpnew/cmplabel.o
Initializing ../cmpnew/cmplam.o
Initializing ../cmpnew/cmplet.o
Initializing ../cmpnew/cmploc.o
Initializing ../cmpnew/cmpmap.o
Initializing ../cmpnew/cmpmulti.o
Initializing ../cmpnew/cmpspecial.o
Initializing ../cmpnew/cmptag.o
Initializing ../cmpnew/cmptop.o
Initializing ../cmpnew/cmpvar.o
Initializing ../cmpnew/cmpvs.o
Initializing ../cmpnew/cmpwt.o
Building symbol table for /usr/local/tmp/maxima-5.6b/gcl/unixport/raw_gcl ..
Program received signal SIGSEGV, Segmentation fault.
0x80007858 in mark_object (x=0x80606000) at gbc.c:225
225 if (x->d.m)
(gdb) bt
bt
#0 0x80007858 in mark_object (x=0x80606000) at gbc.c:225
#1 0x800089e8 in mark_phase () at gbc.c:757
#2 0x800092cc in GBC (t=t_relocatable) at gbc.c:1156
#3 0x800047ae in alloc_page (n=1) at alloc.c:114
#4 0x8000580e in alloc_contblock (n=4064) at alloc.c:473
#5 0x800072f0 in malloc (size=4064) at alloc.c:1123
#6 0x80189ff2 in _objalloc_alloc (o=0x802c4fac, len=10) at objalloc.c:156
#7 0x8015f7ea in bfd_hash_allocate (table=0x802c4f54, size=10) at hash.c:471
#8 0x80169162 in elf_add_default_symbol (abfd=0x80242d4c, info=0x801aac8c,
h=0x8031cf80, name=0x802ee331 "__ctype_b@@GLIBC_2.0", sym=0x802dddd0,
sec=0xeffffab8, value=0xeffffabc, dynsym=0xeffffa9e, override=false,
dt_needed=false) at elflink.h:961
#9 0x8016a1a4 in elf_link_add_object_symbols (abfd=0x80242d4c,
info=0x801aac8c) at elflink.h:1979
#10 0x80168784 in bfd_elf32_bfd_link_add_symbols (abfd=0x80242d4c,
info=0x801aac8c) at elflink.h:95
#11 0x8007f66a in build_symbol_table_bfd () at sfasli.c:45
#12 0x8007f85c in build_symbol_table () at sfasli.c:114
#13 0x800117fa in eval (form=0x802307cc) at eval.c:1095
#14 0x8001f568 in Fprogn (body=0x8026c348) at prog.c:256
#15 0x800115ee in eval (form=0x8026c954) at eval.c:1042
#16 0x80011bf2 in fLeval (x0=0x8026c954) at eval.c:1187
#17 0x800671b6 in c_apply_n (fn=0x80011b94 <fLeval>, n=1, x=0x801aaedc)
---Type <return> to continue, or q <return> to quit---
q
q
at funliQuit
(gdb) p x
p x
$1 = 0x80606000
(gdb) p x->d
p x->d
Cannot access memory at address 0x80606000
(gdb)
p/x core_end
p/x core_end
$2 = 0x803d0000
(gdb)
frame 1
frame 1
#1 0x800089e8 in mark_phase () at gbc.c:757
757 mark_object(pp->p_external[i]);
(gdb) p i
p i
$3 = 96
(gdb)
p &pp->p_external[i]
p &pp->p_external[i]
$4 = (object *) 0x8025bedc
(gdb)
p *(object *) 0x8025bedc
p *(object *) 0x8025bedc
$5 = 0x80606000
(gdb)
p __gmpn_lshift
p __gmpn_lshift
$6 = {<text variable, no debug info>} 0x8007a910 <__gmpn_lshift>
(gdb)
b __gmpn_lshift
b __gmpn_lshift
Breakpoint 1 at 0x8007a910
(gdb) display *(object *) 0x8025bedc
display *(object *) 0x8025bedc
1: *(object *) 2149957340 = 0x80606000
(gdb) r
r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
y
Starting program: /usr/local/tmp/maxima-5.6b/gcl/unixport/raw_gcl <foo
GCL (GNU Common Lisp) April 1994 32768 pages
loading ../lsp/export.lsp
Initializing ../lsp/defmacro.o
Initializing ../lsp/evalmacros.o
Initializing ../lsp/top.o
Initializing ../lsp/module.o
loading ../lsp/autoload.lsp
>
#<"COMPILER" package>
COMPILER>
#<"SYSTEM" package>
SYSTEM>
*COMMAND-ARGS*
SYSTEM>
#<"USER" package>
>
#<"LISP" package>
LISP>
#<"SLOOP" package>
SLOOP>
6
SLOOP>
#<"USER" package>
>
Loading ../gcl-tk/tk-package.lsp
Finished loading ../gcl-tk/tk-package.lsp
T
>Initializing ../lsp/predlib.o
Initializing ../lsp/setf.o
Initializing ../lsp/arraylib.o
Initializing ../lsp/assert.o
Initializing ../lsp/defstruct.o
Initializing ../lsp/describe.o
Initializing ../lsp/iolib.o
Initializing ../lsp/listlib.o
Initializing ../lsp/mislib.o
Initializing ../lsp/numlib.o
Initializing ../lsp/packlib.o
Initializing ../lsp/seq.o
Initializing ../lsp/seqlib.o
Initializing ../lsp/trace.o
Initializing ../lsp/sloop.o
Initializing ../lsp/serror.o
Initializing ../lsp/destructuring_bind.o
Initializing ../lsp/loop.o
Initializing ../lsp/defpackage.o
Initializing ../lsp/make_defpackage.o
Initializing ../cmpnew/cmpinline.o
Initializing ../cmpnew/cmputil.o
Initializing ../lsp/debug.o
Initializing ../lsp/info.o
Initializing ../cmpnew/cmptype.o
Initializing ../cmpnew/cmpbind.o
Initializing ../cmpnew/cmpblock.o
Initializing ../cmpnew/cmpcall.o
Initializing ../cmpnew/cmpcatch.o
Initializing ../cmpnew/cmpenv.o
Initializing ../cmpnew/cmpeval.o
Initializing ../cmpnew/cmpflet.o
Initializing ../cmpnew/cmpfun.o
Initializing ../cmpnew/cmpif.o
Initializing ../cmpnew/cmplabel.o
Initializing ../cmpnew/cmplam.o
Initializing ../cmpnew/cmplet.o
Initializing ../cmpnew/cmploc.o
Initializing ../cmpnew/cmpmap.o
Initializing ../cmpnew/cmpmulti.o
Initializing ../cmpnew/cmpspecial.o
Initializing ../cmpnew/cmptag.o
Initializing ../cmpnew/cmptop.o
Initializing ../cmpnew/cmpvar.o
Initializing ../cmpnew/cmpvs.o
Initializing ../cmpnew/cmpwt.o
Breakpoint 1, 0x8007a910 in __gmpn_lshift ()
1: *(object *) 2149957340 = 0x802307cc
(gdb)
bt
bt
#0 0x8007a910 in __gmpn_lshift ()
#1 0x800799a2 in __gmpz_mul_2exp (w=0xeffffa74, u=0x800117fa, cnt=2147573574)
at mul_2exp.c:52
#2 0x80031bea in Lash () at num_log.c:418
#3 0x800117fa in eval (form=0x802307cc) at eval.c:1095
#4 0x80011780 in eval (form=0x8026c438) at eval.c:1082
#5 0x800111a4 in Ieval (form=0x8026c468) at eval.c:932
#6 0x80016000 in Fsetq (form=0x8026c474) at assignment.c:98
#7 0x800115ee in eval (form=0x8026c480) at eval.c:1042
#8 0x8001546e in For (args=0x8026c3cc) at predicate.c:746
#9 0x800115ee in eval (form=0x8026c498) at eval.c:1042
#10 0x8001f568 in Fprogn (body=0x8026c3c0) at prog.c:256
#11 0x800115ee in eval (form=0x8026c954) at eval.c:1042
#12 0x80011bf2 in fLeval (x0=0x8026c954) at eval.c:1187
#13 0x800671b6 in c_apply_n (fn=0x80011b94 <fLeval>, n=1, x=0x801aaedc)
at funlink.c:238
#14 0x80071978 in IapplyVector (fun=0x80244e38, nargs=1, base=0x801aaedc)
at nfunlink.c:225
#15 0x8000fb02 in funcall (fun=0x80244e38) at eval.c:187
#16 0x800107e6 in symlispcall (sym=0x802432ac, base=0x801aaed8, narg=1)
at eval.c:505
#17 0x800865ac in LI1 () at top.c:143
#18 0x8000eebc in quick_call_sfun (fun=0x8024403c) at eval.c:113
---Type <return> to continue, or q <return> to quit---q
q
Quit
(gdb)
frame 1
frame 1
#1 0x800799a2 in __gmpz_mul_2exp (w=0xeffffa74, u=0x800117fa, cnt=2147573574)
at mul_2exp.c:52
52 wlimb = mpn_lshift (wp + limb_cnt, u->_mp_d, abs_usize, cnt);
(gdb) p cnt
p cnt
$7 = 11
(gdb)
l
l
47 wsize = abs_usize + limb_cnt;
48
49 cnt %= BITS_PER_MP_LIMB;
50 if (cnt != 0)
51 {
52 wlimb = mpn_lshift (wp + limb_cnt, u->_mp_d, abs_usize, cnt);
53 if (wlimb != 0)
54 {
55 wp[wsize] = wlimb;
56 wsize++;
(gdb) b 53
b 53
Breakpoint 2 at 0x800799a2: file mul_2exp.c, line 53.
(gdb)
c
c
Continuing.
Breakpoint 2, __gmpz_mul_2exp (w=0xeffffa74, u=0x800117fa, cnt=2147573574)
at mul_2exp.c:53
53 if (wlimb != 0)
1: *(object *) 2149957340 = 0x80606000
(gdb) c
c
Continuing.
Building symbol table for /usr/local/tmp/maxima-5.6b/gcl/unixport/raw_gcl ..
Program received signal SIGSEGV, Segmentation fault.
0x80007858 in mark_object (x=0x80606000) at gbc.c:225
225 if (x->d.m)
1: *(object *) 2149957340 = 0x80606000
(gdb)
r
r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
y
Starting program: /usr/local/tmp/maxima-5.6b/gcl/unixport/raw_gcl <foo
GCL (GNU Common Lisp) April 1994 32768 pages
loading ../lsp/export.lsp
Initializing ../lsp/defmacro.o
Initializing ../lsp/evalmacros.o
Initializing ../lsp/top.o
Initializing ../lsp/module.o
loading ../lsp/autoload.lsp
>
#<"COMPILER" package>
COMPILER>
#<"SYSTEM" package>
SYSTEM>
*COMMAND-ARGS*
SYSTEM>
#<"USER" package>
>
#<"LISP" package>
LISP>
#<"SLOOP" package>
SLOOP>
6
SLOOP>
#<"USER" package>
>
Loading ../gcl-tk/tk-package.lsp
Finished loading ../gcl-tk/tk-package.lsp
T
>Initializing ../lsp/predlib.o
Initializing ../lsp/setf.o
Initializing ../lsp/arraylib.o
Initializing ../lsp/assert.o
Initializing ../lsp/defstruct.o
Initializing ../lsp/describe.o
Initializing ../lsp/iolib.o
Initializing ../lsp/listlib.o
Initializing ../lsp/mislib.o
Initializing ../lsp/numlib.o
Initializing ../lsp/packlib.o
Initializing ../lsp/seq.o
Initializing ../lsp/seqlib.o
Initializing ../lsp/trace.o
Initializing ../lsp/sloop.o
Initializing ../lsp/serror.o
Initializing ../lsp/destructuring_bind.o
Initializing ../lsp/loop.o
Initializing ../lsp/defpackage.o
Initializing ../lsp/make_defpackage.o
Initializing ../cmpnew/cmpinline.o
Initializing ../cmpnew/cmputil.o
Initializing ../lsp/debug.o
Initializing ../lsp/info.o
Initializing ../cmpnew/cmptype.o
Initializing ../cmpnew/cmpbind.o
Initializing ../cmpnew/cmpblock.o
Initializing ../cmpnew/cmpcall.o
Initializing ../cmpnew/cmpcatch.o
Initializing ../cmpnew/cmpenv.o
Initializing ../cmpnew/cmpeval.o
Initializing ../cmpnew/cmpflet.o
Initializing ../cmpnew/cmpfun.o
Initializing ../cmpnew/cmpif.o
Initializing ../cmpnew/cmplabel.o
Initializing ../cmpnew/cmplam.o
Initializing ../cmpnew/cmplet.o
Initializing ../cmpnew/cmploc.o
Initializing ../cmpnew/cmpmap.o
Initializing ../cmpnew/cmpmulti.o
Initializing ../cmpnew/cmpspecial.o
Initializing ../cmpnew/cmptag.o
Initializing ../cmpnew/cmptop.o
Initializing ../cmpnew/cmpvar.o
Initializing ../cmpnew/cmpvs.o
Initializing ../cmpnew/cmpwt.o
Breakpoint 1, 0x8007a910 in __gmpn_lshift ()
1: *(object *) 2149957340 = 0x802307cc
(gdb)
display/x core_end
display/x core_end
2: /x core_end = 0x80375000
(gdb)
c
c
Continuing.
Breakpoint 2, __gmpz_mul_2exp (w=0xeffffa74, u=0x800117fa, cnt=2147573574)
at mul_2exp.c:53
53 if (wlimb != 0)
2: /x core_end = 0x80375000
1: *(object *) 2149957340 = 0x80606000
(gdb) r
r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
y
Starting program: /usr/local/tmp/maxima-5.6b/gcl/unixport/raw_gcl <foo
GCL (GNU Common Lisp) April 1994 32768 pages
loading ../lsp/export.lsp
Initializing ../lsp/defmacro.o
Initializing ../lsp/evalmacros.o
Initializing ../lsp/top.o
Initializing ../lsp/module.o
loading ../lsp/autoload.lsp
>
#<"COMPILER" package>
COMPILER>
#<"SYSTEM" package>
SYSTEM>
*COMMAND-ARGS*
SYSTEM>
#<"USER" package>
>
#<"LISP" package>
LISP>
#<"SLOOP" package>
SLOOP>
6
SLOOP>
#<"USER" package>
>
Loading ../gcl-tk/tk-package.lsp
Finished loading ../gcl-tk/tk-package.lsp
T
>Initializing ../lsp/predlib.o
Initializing ../lsp/setf.o
Initializing ../lsp/arraylib.o
Initializing ../lsp/assert.o
Initializing ../lsp/defstruct.o
Initializing ../lsp/describe.o
Initializing ../lsp/iolib.o
Initializing ../lsp/listlib.o
Initializing ../lsp/mislib.o
Initializing ../lsp/numlib.o
Initializing ../lsp/packlib.o
Initializing ../lsp/seq.o
Initializing ../lsp/seqlib.o
Initializing ../lsp/trace.o
Initializing ../lsp/sloop.o
Initializing ../lsp/serror.o
Initializing ../lsp/destructuring_bind.o
Initializing ../lsp/loop.o
Initializing ../lsp/defpackage.o
Initializing ../lsp/make_defpackage.o
Initializing ../cmpnew/cmpinline.o
Initializing ../cmpnew/cmputil.o
Initializing ../lsp/debug.o
Initializing ../lsp/info.o
Initializing ../cmpnew/cmptype.o
Initializing ../cmpnew/cmpbind.o
Initializing ../cmpnew/cmpblock.o
Initializing ../cmpnew/cmpcall.o
Initializing ../cmpnew/cmpcatch.o
Initializing ../cmpnew/cmpenv.o
Initializing ../cmpnew/cmpeval.o
Initializing ../cmpnew/cmpflet.o
Initializing ../cmpnew/cmpfun.o
Initializing ../cmpnew/cmpif.o
Initializing ../cmpnew/cmplabel.o
Initializing ../cmpnew/cmplam.o
Initializing ../cmpnew/cmplet.o
Initializing ../cmpnew/cmploc.o
Initializing ../cmpnew/cmpmap.o
Initializing ../cmpnew/cmpmulti.o
Initializing ../cmpnew/cmpspecial.o
Initializing ../cmpnew/cmptag.o
Initializing ../cmpnew/cmptop.o
Initializing ../cmpnew/cmpvar.o
Initializing ../cmpnew/cmpvs.o
Initializing ../cmpnew/cmpwt.o
Breakpoint 1, 0x8007a910 in __gmpn_lshift ()
2: /x core_end = 0x80375000
1: *(object *) 2149957340 = 0x802307cc
(gdb)
disassemble
disassemble
Dump of assembler code for function __gmpn_lshift:
0x8007a910 <__gmpn_lshift>: moveml %d2-%d6/%a2,address@hidden
0x8007a914 <__gmpn_lshift+4>: moveal %sp@(28),%a1
0x8007a918 <__gmpn_lshift+8>: moveal %sp@(32),%a0
0x8007a91c <__gmpn_lshift+12>: movel %sp@(36),%d6
0x8007a920 <__gmpn_lshift+16>: movel %sp@(40),%d4
0x8007a924 <__gmpn_lshift+20>: moveq #1,%d5
0x8007a926 <__gmpn_lshift+22>: cmpl %d5,%d4
0x8007a928 <__gmpn_lshift+24>: bnew 0x8007a940 <__gmpn_lshift+48>
0x8007a92c <__gmpn_lshift+28>: cmpal %a0,%a1
0x8007a92e <__gmpn_lshift+30>: blsw 0x8007a992 <__gmpn_lshift+130>
0x8007a932 <__gmpn_lshift+34>: movel %d6,%d0
0x8007a934 <__gmpn_lshift+36>: asll #2,%d0
0x8007a936 <__gmpn_lshift+38>: lea %a0@(00000000,%d0:l),%a2
0x8007a93a <__gmpn_lshift+42>: cmpal %a1,%a2
0x8007a93c <__gmpn_lshift+44>: blsw 0x8007a992 <__gmpn_lshift+130>
0x8007a940 <__gmpn_lshift+48>: moveq #32,%d5
0x8007a942 <__gmpn_lshift+50>: subl %d4,%d5
0x8007a944 <__gmpn_lshift+52>: movel %d6,%d0
0x8007a946 <__gmpn_lshift+54>: asll #2,%d0
0x8007a948 <__gmpn_lshift+56>: addal %d6,%a0
0x8007a94a <__gmpn_lshift+58>: addal %d6,%a1
0x8007a94c <__gmpn_lshift+60>: movel address@hidden,%d2
---Type <return> to continue, or q <return> to quit---
0x8007a94e <__gmpn_lshift+62>: movel %d2,%d0
0x8007a950 <__gmpn_lshift+64>: lsrl %d5,%d0
0x8007a952 <__gmpn_lshift+66>: lsll %d4,%d2
0x8007a954 <__gmpn_lshift+68>: movel %d2,%d1
0x8007a956 <__gmpn_lshift+70>: subql #1,%d6
0x8007a958 <__gmpn_lshift+72>: beqw 0x8007a98a <__gmpn_lshift+122>
0x8007a95c <__gmpn_lshift+76>: lsrl #1,%d6
0x8007a95e <__gmpn_lshift+78>: bcsw 0x8007a970 <__gmpn_lshift+96>
0x8007a962 <__gmpn_lshift+82>: subql #1,%d6
0x8007a964 <__gmpn_lshift+84>: movel address@hidden,%d2
0x8007a966 <__gmpn_lshift+86>: movel %d2,%d3
0x8007a968 <__gmpn_lshift+88>: lsrl %d5,%d3
0x8007a96a <__gmpn_lshift+90>: orl %d3,%d1
0x8007a96c <__gmpn_lshift+92>: movel %d1,address@hidden
0x8007a96e <__gmpn_lshift+94>: lsll %d4,%d2
0x8007a970 <__gmpn_lshift+96>: movel address@hidden,%d1
0x8007a972 <__gmpn_lshift+98>: movel %d1,%d3
0x8007a974 <__gmpn_lshift+100>: lsrl %d5,%d3
0x8007a976 <__gmpn_lshift+102>: orl %d3,%d2
0x8007a978 <__gmpn_lshift+104>: movel %d2,address@hidden
0x8007a97a <__gmpn_lshift+106>: lsll %d4,%d1
0x8007a97c <__gmpn_lshift+108>: dbf %d6,0x8007a964 <__gmpn_lshift+84>
0x8007a980 <__gmpn_lshift+112>: subil #65536,%d6
---Type <return> to continue, or q <return> to quit---
0x8007a986 <__gmpn_lshift+118>: bccw 0x8007a964 <__gmpn_lshift+84>
0x8007a98a <__gmpn_lshift+122>: movel %d1,address@hidden
0x8007a98c <__gmpn_lshift+124>: moveml address@hidden,%d2-%d6/%a2
0x8007a990 <__gmpn_lshift+128>: rts
0x8007a992 <__gmpn_lshift+130>: clrl %d0
0x8007a994 <__gmpn_lshift+132>: eoriw #1,%d6
0x8007a998 <__gmpn_lshift+136>: lsrl #1,%d6
0x8007a99a <__gmpn_lshift+138>: bccw 0x8007a9a6 <__gmpn_lshift+150>
0x8007a99e <__gmpn_lshift+142>: subql #1,%d6
0x8007a9a0 <__gmpn_lshift+144>: movel address@hidden,%d2
0x8007a9a2 <__gmpn_lshift+146>: addxl %d2,%d2
0x8007a9a4 <__gmpn_lshift+148>: movel %d2,address@hidden
0x8007a9a6 <__gmpn_lshift+150>: movel address@hidden,%d2
0x8007a9a8 <__gmpn_lshift+152>: addxl %d2,%d2
0x8007a9aa <__gmpn_lshift+154>: movel %d2,address@hidden
0x8007a9ac <__gmpn_lshift+156>: dbf %d6,0x8007a9a0 <__gmpn_lshift+144>
0x8007a9b0 <__gmpn_lshift+160>: addxl %d0,%d0
0x8007a9b2 <__gmpn_lshift+162>: subil #65536,%d6
0x8007a9b8 <__gmpn_lshift+168>: bcsw 0x8007a9c2 <__gmpn_lshift+178>
0x8007a9bc <__gmpn_lshift+172>: lsrl #1,%d0
0x8007a9be <__gmpn_lshift+174>: braw 0x8007a9a0 <__gmpn_lshift+144>
0x8007a9c2 <__gmpn_lshift+178>: moveml address@hidden,%d2-%d6/%a2
0x8007a9c6 <__gmpn_lshift+182>: rts
---Type <return> to continue, or q <return> to quit---
End of assembler dump.
(gdb)
watch *(object *) 0x8025bedc
watch *(object *) 0x8025bedc
Watchpoint 3: *(object *) 2149957340
(gdb) c
c
Continuing.
Watchpoint 3: *(object *) 2149957340
Old value = 0x802307cc
New value = 0x80606000
0x8007a98c in __gmpn_lshift ()
2: /x core_end = 0x80375000
1: *(object *) 2149957340 = 0x80606000
(gdb)
i reg sp
i reg sp
sp 0xeffff9c0 0xeffff9c0
(gdb)
i reg d2
i reg d2
d2 0x60600000 1616904192
(gdb) i reg d6
i reg d6
d6 0x0 0
(gdb) i reg a2
i reg a2
a2 0x8025bee0 0x8025bee0
(gdb)
p/x *(long *)address@hidden
p/x *(long *)address@hidden
$8 = {0x0, 0x1, 0xb, 0x1, 0x8006b008, 0x8025bee0, 0x800799a2, 0x8025bee0,
0x80242be0, 0x1, 0xb, 0x80236964}
(gdb)
i reg a0
i reg a0
a0 0x80242bdd 0x80242bdd
(gdb)
p *(long *)0x80242bdd
p *(long *)0x80242bdd
$9 = 682363904
(gdb) p/x *(long *)0x80242bdd
p/x *(long *)0x80242bdd
$10 = 0x28ac0c00
(gdb)
i reg d4
i reg d4
d4 0xb 11
(gdb) i reg d3
i reg d3
d3 0x1 1
(gdb)
frame 1
frame 1
#1 0x00000000 in ?? ()
=============================================================================
Kevin Ryde <address@hidden> writes:
> [Bug reports to address@hidden please, not address@hidden
>
> Camm Maguire <address@hidden> writes:
> >
> > #1 0x80079656 in __gmpz_mul_2exp (w=0xeffffa7c, u=0x8001177c,
> > cnt=2147573446)
> > at mul_2exp.c:52
>
> That cnt parameter looks unlikely, but maybe it's just the debugger
> playing up since the cnt and limb_cnt below seem ok.
>
> > (gdb) p wp
> > $14 = 0x8021aee0
> > (gdb) p limb_cnt
> > $16 = 0
> > (gdb) p abs_usize
> > $17 = 1
> > (gdb) p cnt
> > $18 = 11
> > (gdb) p u->_mp_d
> > $19 = (mp_limb_t *) 0x801fdfb8
>
> Hmm. It ought to write a limb to 0x8021aee0 and leave 0x8021aedc
> alone. You might have to step through the asm code to see if it goes
> wrong somewhere.
>
> In the code a1 is the destination pointer and the size in d6 will be
> decremented and found to be zero so the only store should be the one
> at Lend.
>
> I don't have an m68k to test at the moment, but that code has been
> exercised in the past.
>
> _______________________________________________
> Gcl-devel mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gcl-devel
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah