gcl-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]