On Mon, Feb 03, 2003 at 03:25:02PM +0100, Henrik Grubbström (Lysator) @ Pike (-) developers forum scribbled:
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 29510)] 0x0037dab0 in sparc_flush_instruction_cache () (gdb) bt #0 0x0037dab0 in sparc_flush_instruction_cache ()
Ok, looks like it doesn't like the inlined machine code of sparc_flush_instruction_cache().
What does a disassembly of sparc_flush_instruction_cache() give?
0x37daac <sparc_flush_instruction_cache>: cmp %o1, 1 0x37dab0 <sparc_flush_instruction_cache+4>: flush %o0 + %o1 0x37dab4 <sparc_flush_instruction_cache+8>: bge,a 0x37dab0 <sparc_flush_instruction_cache+4> 0x37dab8 <sparc_flush_instruction_cache+12>: subcc %o1, 8, %o1 0x37dabc <sparc_flush_instruction_cache+16>: retl
What does info reg say?
g0 0x0 0 g1 0xf3000 995328 g2 0x1009 4105 g3 0x0 0 g4 0x24c81c 2410524 g5 0x55555555 1431655765 g6 0x70128080 1880260736 g7 0x0 0 o0 0x5045f8 5260792 o1 0x9de0 40416 o2 0x4af9c8 4913608 o3 0x0 0 o4 0x0 0 o5 0x1267 4711 sp 0xefffe0e8 4026523880 o7 0x1ea978 2009464 l0 0x3a9700 3839744 l1 0x1 1 l2 0x0 0 l3 0x0 0 l4 0x80000000 -2147483648 l5 0x0 0 l6 0x0 0 l7 0x0 0 i0 0x4af9c8 4913608 i1 0x3a4588 3818888 i2 0x0 0 i3 0x0 0 i4 0x0 0 i5 0x938 2360 fp 0xefffe150 4026523984 i7 0x25c798 2475928 y 0x7b7a88a 129476746 psr 0xff000082 -16777086 icc:----, pil:0, s:1, ps:0, et:0, cwp:2 wim 0x0 0 tbr 0x0 0 pc 0x37dab0 3660464 npc 0x37dab4 3660468 fpsr 0x0 0 rd:N, tem:0, ns:0, ver:0, ftt:0, qne:0, fcc:=, aexc:0, cexc:0 cpsr 0x0 0
Try compiling without machine-code.
that works fine.
thanks,
marek