Hi guys,

I thought the unaligned accesses I had with GHC on IA64 had magically
gone away when I compiled with a more recent GHC and gcc, but it turns
out they were still happening on another machine. When I tried to
compile a debugging RTS on the first machine to debug on the second
with, I found the newly compiled GHC was again giving unaligned accesses
on the first machine.

This is GHC 6.2.1, gcc version 3.3.4 (Debian). I've stuck a load of
debugging info below; if there's anything else you need please ask.


Thanks
Ian



$ ../ghc6-6.2.1/ghc/compiler/stage2/ghc-inplace -O Foo.hs -o foo +RTS 
-D{s,i,c,w,G,g,b,S,t,p,r,P,l} 2> out
ghc-6.2.1(28878): unaligned access to 0x400000000201c80f, ip=0x40000000009dafd1
$ 

out is at
http://merulo.debian.org/~igloo/out
or
http://merulo.debian.org/~igloo/out.gz

----------8<--------------------8<----------
$ prctl --unaligned=signal gdb 
/home/igloo/debug_rts/ghc6-6.2.1/ghc/compiler/stage2/ghc-6.2.1
[...]
(gdb) run -B/home/igloo/debug_rts/ghc6-6.2.1 -O Foo.hs -o foo
Starting program: /home/igloo/debug_rts/ghc6-6.2.1/ghc/compiler/stage2/ghc-6.2.1 
-B/home/igloo/debug_rts/ghc6-6.2.1 -O Foo.hs -o foo
stg_fun_gc_gen(ARG_GEN)stg_gc_fun_ret(ARG_GEN)
[previous line repeated lots]

Program received signal SIGBUS, Bus error.
0x40000000009dafd1 in s3RF_1_alt ()
(gdb) bt    
#0  0x40000000009dafd1 in s3RF_1_alt ()
#1  0x40000000009dab10 in s2ON_entry ()
#2  0x0000000000000000 in ?? ()
Previous frame identical to this frame (corrupt stack?)
(gdb) disassemble
Dump of assembler code for function s3RF_1_alt:
0x40000000009daf30 <s3RF_1_alt+0>:      [MMI]       mov r63=r1;;
0x40000000009daf31 <s3RF_1_alt+1>:                  adds r59=16,r59
0x40000000009daf32 <s3RF_1_alt+2>:                  nop.i 0x0;;
0x40000000009daf40 <s3RF_1_alt+16>:     [MFB]       cmp.ltu p7,p6=r60,r59
0x40000000009daf41 <s3RF_1_alt+17>:                 nop.f 0x0
0x40000000009daf42 <s3RF_1_alt+18>:           (p06) br.cond.dptk.few 
0x40000000009dafb0 <s3RF_1_alt+128>
0x40000000009daf50 <s3RF_1_alt+32>:     [MMI]       addl r15=7704,r1;;
0x40000000009daf51 <s3RF_1_alt+33>:                 ld8 r14=[r15]
0x40000000009daf52 <s3RF_1_alt+34>:                 nop.i 0x0;;
0x40000000009daf60 <s3RF_1_alt+48>:     [MMI]       adds r14=16,r14;;
0x40000000009daf61 <s3RF_1_alt+49>:                 adds r14=176,r14
0x40000000009daf62 <s3RF_1_alt+50>:                 mov r15=2;;
0x40000000009daf70 <s3RF_1_alt+64>:     [MFI]       st8 [r14]=r15
0x40000000009daf71 <s3RF_1_alt+65>:                 nop.f 0x0
0x40000000009daf72 <s3RF_1_alt+66>:                 addl r16=7704,r1;;
0x40000000009daf80 <s3RF_1_alt+80>:     [MMI]       ld8 r14=[r16];;
0x40000000009daf81 <s3RF_1_alt+81>:                 ld8 r14=[r14]
0x40000000009daf82 <s3RF_1_alt+82>:                 nop.i 0x0;;
0x40000000009daf90 <s3RF_1_alt+96>:     [MMI]       ld8 r15=[r14],8;;
0x40000000009daf91 <s3RF_1_alt+97>:                 nop.m 0x0
0x40000000009daf92 <s3RF_1_alt+98>:                 mov b6=r15
0x40000000009dafa0 <s3RF_1_alt+112>:    [MFB]       ld8 r1=[r14]
0x40000000009dafa1 <s3RF_1_alt+113>:                nop.f 0x0
0x40000000009dafa2 <s3RF_1_alt+114>:                br.few b6;;
0x40000000009dafb0 <s3RF_1_alt+128>:    [MFI]       adds r15=-8,r59
0x40000000009dafb1 <s3RF_1_alt+129>:                nop.f 0x0
0x40000000009dafb2 <s3RF_1_alt+130>:                addl r16=10992,r1;;
0x40000000009dafc0 <s3RF_1_alt+144>:    [MMI]       ld8 r14=[r16];;
0x40000000009dafc1 <s3RF_1_alt+145>:                st8 [r15]=r14
0x40000000009dafc2 <s3RF_1_alt+146>:                addl r14=283768,r1;;
0x40000000009dafd0 <s3RF_1_alt+160>:    [MMI]       ld8 r14=[r14];;
0x40000000009dafd1 <s3RF_1_alt+161>:                ldfs f6=[r14]
0x40000000009dafd2 <s3RF_1_alt+162>:                adds r14=16,r12;;
0x40000000009dafe0 <s3RF_1_alt+176>:    [MMB]       stfs [r14]=f6
0x40000000009dafe1 <s3RF_1_alt+177>:                ldfs f6=[r14]
0x40000000009dafe2 <s3RF_1_alt+178>:                nop.b 0x0;;
0x40000000009daff0 <s3RF_1_alt+192>:    [MII]       stfs [r59]=f6
0x40000000009daff1 <s3RF_1_alt+193>:                adds r48=-8,r59
0x40000000009daff2 <s3RF_1_alt+194>:                adds r56=8,r56
0x40000000009db000 <s3RF_1_alt+208>:    [MMI]       addl r16=4976,r1;;
0x40000000009db001 <s3RF_1_alt+209>:                ld8 r14=[r16]
0x40000000009db002 <s3RF_1_alt+210>:                nop.i 0x0;;
0x40000000009db010 <s3RF_1_alt+224>:    [MMI]       ld8 r14=[r14];;
0x40000000009db011 <s3RF_1_alt+225>:                ld8 r15=[r14],8
0x40000000009db012 <s3RF_1_alt+226>:                nop.i 0x0;;
0x40000000009db020 <s3RF_1_alt+240>:    [MFI]       nop.m 0x0
0x40000000009db021 <s3RF_1_alt+241>:                nop.f 0x0
0x40000000009db022 <s3RF_1_alt+242>:                mov b6=r15
0x40000000009db030 <s3RF_1_alt+256>:    [MFB]       ld8 r1=[r14]
0x40000000009db031 <s3RF_1_alt+257>:                nop.f 0x0
0x40000000009db032 <s3RF_1_alt+258>:                br.few b6;;
End of assembler dump.
(gdb) info registers
r0             0x0      0
r1             0x60000000000a8c60       6917529027641773152
r2             0x0      0
r3             0x0      0
r4             0x0      0
r5             0x0      0
r6             0x0      0
r7             0x0      0
r8             0x18     24
r9             0x20000000005c4498       2305843009219740824
r10            0x0      0
r11            0x60000000000abc58       6917529027641785432
r12            0x60000fffffffb180       6917546619827106176
r13            0x200000000002f500       2305843009213887744
r14            0x400000000201c80f       4611686018461059087
r15            0x20000000006d41e0       2305843009220854240
r16            0x60000000000ab750       6917529027641784144
r17            0x60000000000a87d8       6917529027641771992
r18            0x20000000006d40f0       2305843009220854000
r19            0x2000000000a2e178       2305843009224368504
r20            0x20000000005c61d0       2305843009219748304
r21            0x2000000000458480       2305843009218249856
r22            0x0      0
r23            0x60000fff7fffc110       6917546617679626512
r24            0x0      0
r25            0x0      0
r26            0xc000000000000512       -4611686018427386606
r27            0xf      15
r28            0x2000000000500e00       2305843009218940416
r29            0x1213084a6010   19872952770576
r30            0x0      0
r31            0x150281 1376897
b0             0x40000000009dab10       4611686018437720848
b1             0x0      0
b2             0x0      0
b3             0x0      0
b4             0x0      0
b5             0x0      0
b6             0x40000000009daf30       4611686018437721904
b7             0x0      0
vfp            0x0      0
vrap           0x0      0
pr             0x160241 1442369
ip             0x40000000009dafd0       4611686018437722064
psr            0x20000000010    2199023255568
cfm            0x1028   4136
kr0            0x0      0
kr1            0x0      0
kr2            0x0      0
kr3            0x0      0
kr4            0x0      0
kr5            0x0      0
kr6            0x0      0
kr7            0x0      0
rsc            0xf      15
bsp            0x60000fff7fffc2a0       6917546617679626912
bspstore       0x60000fff7fffc110       6917546617679626512
rnat           0x0      0
fcr            0x0      0
eflag          0x0      0
csd            0x0      0
ssd            0x0      0
cflg           0x0      0
fsr            0x0      0
fir            0x0      0
fdr            0x0      0
ccv            0x0      0
unat           0x0      0
fpsr           0x9804c8a70433f  2674341018878783
itc            0x0      0
pfs            0xc000000000001028       -4611686018427383768
[lots of registers holding 0]
bof            0x60000fff7fffc158       6917546617679626584
r32            0x20000000006d40a0       2305843009220853920
r33            0x2      2
r34            0x600000000036f500       6917529027644683520
r35            0x806    2054
r36            0x2      2
r37            0x1      1
r38            0x600000000016dfa8       6917529027642580904
r39            0x60000000000a7570       6917529027641767280
r40            0x5c6    1478
r41            0x142ae4 1321700
r42            0x600000000036f528       6917529027644683560
r43            0x600000000016dfa8       6917529027642580904
r44            0x60000000000a7570       6917529027641767280
r45            0x600000000036f56c       6917529027644683628
r46            0x6000000000157468       6917529027642487912
r47            0x8009   32777
r48            0x600000000007c8a8       6917529027641591976
r49            0x6000000000085728       6917529027641628456
r50            0x6000000000085728       6917529027641628456
r51            0x6000000000085728       6917529027641628456
r52            0x20000000006d39c0       2305843009220852160
r53            0x20000000006cf258       2305843009220833880
r54            0x20000000006d2b98       2305843009220848536
r55            0x20000000006d2bb0       2305843009220848560
r56            0x2000000000b43c60       2305843009225505888
r57            0x2      2
r58            0x2000000000b04108       2305843009225244936
r59            0x20000000006d41e8       2305843009220854248
r60            0x20000000006d4ff8       2305843009220857848
r61            0xc00000000000048d       -4611686018427386739
r62            0x4000000001fd6100       4611686018460770560
r63            0x60000000000a8c60       6917529027641773152
r64            0x6000000000022d00       6917529027641224448
r65            0x1      1
r66            0x18     24
r67            0x20000000005c61a0       2305843009219748256
r68            0x18     24
r69            0x8000   32768
r70            0x18     24
r71            0x4000000001ff5ea0       4611686018460901024
[a bundle more registers holding 0 except p{0,6,9,17,18,20} holding 1]
(gdb) x/x 0x60000000000ee0d8
0x60000000000ee0d8 <__JCR_LIST__+283776>:       0x0201c80f
(gdb) x/x 0x400000000201c80f
0x400000000201c80f <_fini+59375>:       0xc0000000
(gdb)
----------8<--------------------8<----------

_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to