------- Comment #4 from ludovic at ludovic-brenta dot org  2009-11-17 19:59 
-------
Actually the disassembly above was that of Tab.Get_Next. The source for
Tab.Get_Next is:

      function Get_Next (T : Instance) return Elmt_Ptr is
      begin
         if T = null or else not T.Iterator_Started then
            return Null_Ptr;
         end if;

         T.Iterator_Ptr := Next (T.Iterator_Ptr);
         return Get_Non_Null (T);
      end Get_Next;


The disassembly of Simple_HTable.Get_Next is:

(gdb) up
#1  0x000002000086f344 in
prj__tree__tree_private_part__projects_htable__get_next () from
/usr/lib/libgnatprj.so.4.4
(gdb) disassemble
Dump of assembler code for function
prj__tree__tree_private_part__projects_htable__get_next:
0x000002000086f320 <prj__tree__tree_private_part__projects_htable__get_next+0>:
ldah    gp,6(t12)
0x000002000086f324 <prj__tree__tree_private_part__projects_htable__get_next+4>:
lda     gp,-12160(gp)
0x000002000086f328 <prj__tree__tree_private_part__projects_htable__get_next+8>:
lda     sp,-16(sp)
0x000002000086f32c
<prj__tree__tree_private_part__projects_htable__get_next+12>:        ldq    
t12,-27200(gp)
0x000002000086f330
<prj__tree__tree_private_part__projects_htable__get_next+16>:        stq    
s0,8(sp)
0x000002000086f334
<prj__tree__tree_private_part__projects_htable__get_next+20>:        mov    
a0,s0
0x000002000086f338
<prj__tree__tree_private_part__projects_htable__get_next+24>:        stq    
ra,0(sp)
0x000002000086f33c
<prj__tree__tree_private_part__projects_htable__get_next+28>:        mov    
a1,a0
0x000002000086f340
<prj__tree__tree_private_part__projects_htable__get_next+32>:        jsr    
ra,(t12),0x2000086f344
<prj__tree__tree_private_part__projects_htable__get_next+36>
0x000002000086f344
<prj__tree__tree_private_part__projects_htable__get_next+36>:        ldah   
gp,6(ra)
0x000002000086f348
<prj__tree__tree_private_part__projects_htable__get_next+40>:        lda    
gp,-12196(gp)
0x000002000086f34c
<prj__tree__tree_private_part__projects_htable__get_next+44>:        beq    
v0,0x2000086f390 <prj__tree__tree_private_part__projects_htable__get_next+112>
0x000002000086f350
<prj__tree__tree_private_part__projects_htable__get_next+48>:        ldl    
t0,16(v0)
0x000002000086f354
<prj__tree__tree_private_part__projects_htable__get_next+52>:        ldl    
t3,4(v0)
0x000002000086f358
<prj__tree__tree_private_part__projects_htable__get_next+56>:        ldl    
t2,8(v0)
0x000002000086f35c
<prj__tree__tree_private_part__projects_htable__get_next+60>:        ldl    
t1,12(v0)
0x000002000086f360
<prj__tree__tree_private_part__projects_htable__get_next+64>:        stl    
t3,0(s0)
0x000002000086f364
<prj__tree__tree_private_part__projects_htable__get_next+68>:        stl    
t2,4(s0)
0x000002000086f368
<prj__tree__tree_private_part__projects_htable__get_next+72>:        stl    
t1,8(s0)
0x000002000086f36c
<prj__tree__tree_private_part__projects_htable__get_next+76>:        stl    
t0,12(s0)
0x000002000086f370
<prj__tree__tree_private_part__projects_htable__get_next+80>:        mov    
s0,v0
0x000002000086f374
<prj__tree__tree_private_part__projects_htable__get_next+84>:        ldq    
ra,0(sp)
0x000002000086f378
<prj__tree__tree_private_part__projects_htable__get_next+88>:        ldq    
s0,8(sp)
0x000002000086f37c
<prj__tree__tree_private_part__projects_htable__get_next+92>:        lda    
sp,16(sp)
0x000002000086f380
<prj__tree__tree_private_part__projects_htable__get_next+96>:        ret
0x000002000086f384
<prj__tree__tree_private_part__projects_htable__get_next+100>:       unop
0x000002000086f388
<prj__tree__tree_private_part__projects_htable__get_next+104>:       nop
0x000002000086f38c
<prj__tree__tree_private_part__projects_htable__get_next+108>:       unop
0x000002000086f390
<prj__tree__tree_private_part__projects_htable__get_next+112>:       ldah   
t1,-4(gp)
0x000002000086f394
<prj__tree__tree_private_part__projects_htable__get_next+116>:       lda    
t0,20296(t1)
0x000002000086f398
<prj__tree__tree_private_part__projects_htable__get_next+120>:       ldl    
t3,20296(t1)
0x000002000086f39c
<prj__tree__tree_private_part__projects_htable__get_next+124>:       ldl    
t2,4(t0)
0x000002000086f3a0
<prj__tree__tree_private_part__projects_htable__get_next+128>:       ldl    
t1,12(t0)
0x000002000086f3a4
<prj__tree__tree_private_part__projects_htable__get_next+132>:       ldl    
t0,8(t0)
0x000002000086f3a8
<prj__tree__tree_private_part__projects_htable__get_next+136>:       stl    
t3,0(s0)
0x000002000086f3ac
<prj__tree__tree_private_part__projects_htable__get_next+140>:       stl    
t2,4(s0)
0x000002000086f3b0
<prj__tree__tree_private_part__projects_htable__get_next+144>:       stl    
t0,8(s0)
0x000002000086f3b4
<prj__tree__tree_private_part__projects_htable__get_next+148>:       stl    
t1,12(s0)
0x000002000086f3b8
<prj__tree__tree_private_part__projects_htable__get_next+152>:       mov    
s0,v0
0x000002000086f3bc
<prj__tree__tree_private_part__projects_htable__get_next+156>:       ldq    
ra,0(sp)
0x000002000086f3c0
<prj__tree__tree_private_part__projects_htable__get_next+160>:       ldq    
s0,8(sp)
0x000002000086f3c4
<prj__tree__tree_private_part__projects_htable__get_next+164>:       lda    
sp,16(sp)
0x000002000086f3c8
<prj__tree__tree_private_part__projects_htable__get_next+168>:       ret
End of assembler dump.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42073

Reply via email to