------- Comment #1 from pluto at agmk dot net 2006-08-25 23:28 ------- the 0x120000668 is a last valid return point.
0x0000000120000630 <_start+0>: br gp,0x120000634 <_start+4> 0x0000000120000634 <_start+4>: ldah gp,2(gp) 0x0000000120000638 <_start+8>: lda gp,-31092(gp) 0x000000012000063c <_start+12>: subq sp,0x10,sp 0x0000000120000640 <_start+16>: mov 0,fp 0x0000000120000644 <_start+20>: ldq a0,-32728(gp) 0x0000000120000648 <_start+24>: ldl a1,16(sp) 0x000000012000064c <_start+28>: lda a2,24(sp) 0x0000000120000650 <_start+32>: ldq a3,-32736(gp) 0x0000000120000654 <_start+36>: ldq a4,-32752(gp) 0x0000000120000658 <_start+40>: mov v0,a5 0x000000012000065c <_start+44>: stq sp,0(sp) 0x0000000120000660 <_start+48>: ldq t12,-32720(gp) 0x0000000120000664 <_start+52>: jsr ra,(t12),0x120000668 <_start+56> 0x0000000120000668 <_start+56>: halt 0x000000012000066c <_start+60>: unop -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28854