> Honza, > > How can we make further progress with the large regression on AIX? David, sorry for taking time to get back to it. I went through the code and see no obvious flaws except that I am somewhat concerned what happens with local aliases into the anchors. The problem however does not seem to be caused by it. I tracked it down to the following difference:
--- d2.s 2014-06-06 08:59:01.101401622 +0200 +++ d3.s 2014-06-06 08:59:01.491377632 +0200 @@ -499,7 +499,7 @@ .long 4 .long 4 .long _ZTI1B - .long _ZTv0_n12_N1B1fEv + .long _ZTv0_n12_N1B1fEv.localalias.5 .weak _ZTV1A .align 2 _ZTV1A: Now _ZTv0_n12_N1B1fEv is thunk declared as: .lglobl .LTHUNK..0 .lglobl LTHUNK..0 .set .LTHUNK..0,._ZN1B1fEv .set LTHUNK..0,_ZN1B1fEv .lglobl ._ZTv0_n12_N1B1fEv.localalias.5 .lglobl _ZTv0_n12_N1B1fEv.localalias.5 .set ._ZTv0_n12_N1B1fEv.localalias.5,._ZTv0_n12_N1B1fEv .set _ZTv0_n12_N1B1fEv.localalias.5,_ZTv0_n12_N1B1fEv .align 2 .weak _ZTv0_n12_N1B1fEv[DS] .weak ._ZTv0_n12_N1B1fEv .csect _ZTv0_n12_N1B1fEv[DS] _ZTv0_n12_N1B1fEv: .long ._ZTv0_n12_N1B1fEv, TOC[tc0], 0 .csect .text[PR] ._ZTv0_n12_N1B1fEv: LFB..16: lwz 12,0(3) lwz 12,-12(12) add 3,3,12 b .LTHUNK..0 Now when I move the declaration of localalias after the thunk: --- d3.s 2014-06-06 08:59:01.491377632 +0200 +++ d4.s 2014-06-06 09:03:58.129810951 +0200 @@ -212,10 +212,6 @@ .lglobl LTHUNK..0 .set .LTHUNK..0,._ZN1B1fEv .set LTHUNK..0,_ZN1B1fEv - .lglobl ._ZTv0_n12_N1B1fEv.localalias.5 - .lglobl _ZTv0_n12_N1B1fEv.localalias.5 - .set ._ZTv0_n12_N1B1fEv.localalias.5,._ZTv0_n12_N1B1fEv - .set _ZTv0_n12_N1B1fEv.localalias.5,_ZTv0_n12_N1B1fEv .align 2 .weak _ZTv0_n12_N1B1fEv[DS] .weak ._ZTv0_n12_N1B1fEv @@ -229,6 +225,10 @@ lwz 12,-12(12) add 3,3,12 b .LTHUNK..0 + .lglobl ._ZTv0_n12_N1B1fEv.localalias.5 + .lglobl _ZTv0_n12_N1B1fEv.localalias.5 + .set ._ZTv0_n12_N1B1fEv.localalias.5,._ZTv0_n12_N1B1fEv + .set _ZTv0_n12_N1B1fEv.localalias.5,_ZTv0_n12_N1B1fEv LFE..16: .align 2 .weak _ZN1D1fEv[DS] The code starts to work. To me both sources should make same binary, but they don't. Can you make better sense of this than claiming it is an assembler bug? We output aliases after definitions for functions, but before definitions for thunks. I am testing patch to change the second order. I remeber tweaking this order once before because of problems on solaris. Lets see if we find order that works for everyone. Honza
.file "/home/jh/trunk/gcc/testsuite/g++.dg/abi/vcall1.C" .csect .text[PR] .toc .csect .text[PR] .globl b .csect .data[RW],4 .align 2 b: .space 4 .csect .text[PR] .align 2 .weak _ZN1A1fEv[DS] .weak ._ZN1A1fEv .csect _ZN1A1fEv[DS] _ZN1A1fEv: .long ._ZN1A1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1A1fEv: LFB..0: stw 31,-4(1) stwu 1,-32(1) LCFI..0: mr 31,1 LCFI..1: stw 3,56(31) addi 1,31,32 LCFI..2: lwz 31,-4(1) blr LT.._ZN1A1fEv: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1A1fEv-._ZN1A1fEv .short 9 .byte "_ZN1A1fEv" .byte 31 .align 2 LFE..0: .lglobl ._ZN1A1fEv.localalias.4 .lglobl _ZN1A1fEv.localalias.4 .set ._ZN1A1fEv.localalias.4,._ZN1A1fEv .set _ZN1A1fEv.localalias.4,_ZN1A1fEv .toc LC..0: .tc _ZTV1A.P8[TC],_ZTV1A+8 .csect .text[PR] .align 2 .weak _ZN1AC2Ev[DS] .weak ._ZN1AC2Ev .csect _ZN1AC2Ev[DS] _ZN1AC2Ev: .long ._ZN1AC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1AC2Ev: LFB..3: stw 31,-4(1) stwu 1,-32(1) LCFI..3: mr 31,1 LCFI..4: stw 3,56(31) lwz 9,56(31) lwz 10,LC..0(2) stw 10,0(9) addi 1,31,32 LCFI..5: lwz 31,-4(1) blr LT.._ZN1AC2Ev: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1AC2Ev-._ZN1AC2Ev .short 9 .byte "_ZN1AC2Ev" .byte 31 .align 2 LFE..3: .lglobl ._ZN1AC2Ev.localalias.3 .lglobl _ZN1AC2Ev.localalias.3 .set ._ZN1AC2Ev.localalias.3,._ZN1AC2Ev .set _ZN1AC2Ev.localalias.3,_ZN1AC2Ev .toc LC..1: .tc b[TC],b .csect .text[PR] .align 2 .weak _ZN1BC2Ev[DS] .weak ._ZN1BC2Ev .csect _ZN1BC2Ev[DS] _ZN1BC2Ev: .long ._ZN1BC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1BC2Ev: LFB..5: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..6: mr 31,1 LCFI..7: stw 3,88(31) stw 4,92(31) lwz 9,92(31) lwz 10,0(9) lwz 9,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 10,92(31) lwz 10,4(10) stw 10,0(9) lwz 9,LC..1(2) lwz 10,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 9,0(9) lwz 9,0(9) lwz 10,88(31) lwz 10,0(10) addi 10,10,-16 lwz 10,0(10) mr 8,10 lwz 10,88(31) add 10,10,8 mr 3,10 stw 2,20(1) lwz 10,0(9) lwz 11,8(9) mtctr 10 lwz 2,4(9) bctrl lwz 2,20(1) addi 1,31,64 LCFI..8: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1BC2Ev: .long 0 .byte 0,9,32,97,128,1,2,1 .long 0 .long LT.._ZN1BC2Ev-._ZN1BC2Ev .short 9 .byte "_ZN1BC2Ev" .byte 31 .align 2 LFE..5: .lglobl ._ZN1BC2Ev.localalias.2 .lglobl _ZN1BC2Ev.localalias.2 .set ._ZN1BC2Ev.localalias.2,._ZN1BC2Ev .set _ZN1BC2Ev.localalias.2,_ZN1BC2Ev .toc .set LC..2,LC..1 .csect .text[PR] .align 2 .weak _ZN1B1fEv[DS] .weak ._ZN1B1fEv .csect _ZN1B1fEv[DS] _ZN1B1fEv: .long ._ZN1B1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1B1fEv: LFB..7: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..9: mr 31,1 LCFI..10: stw 3,88(31) lwz 9,LC..2(2) lwz 9,0(9) lwz 10,88(31) cmpw 7,10,9 beq 7,L..4 bl .abort nop L..4: addi 1,31,64 LCFI..11: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1B1fEv: .long 0 .byte 0,9,32,97,128,1,1,1 .long 0 .long LT.._ZN1B1fEv-._ZN1B1fEv .short 9 .byte "_ZN1B1fEv" .byte 31 .align 2 LFE..7: .lglobl .LTHUNK..0 .lglobl LTHUNK..0 .set .LTHUNK..0,._ZN1B1fEv .set LTHUNK..0,_ZN1B1fEv .lglobl ._ZTv0_n12_N1B1fEv.localalias.5 .lglobl _ZTv0_n12_N1B1fEv.localalias.5 .set ._ZTv0_n12_N1B1fEv.localalias.5,._ZTv0_n12_N1B1fEv .set _ZTv0_n12_N1B1fEv.localalias.5,_ZTv0_n12_N1B1fEv .align 2 .weak _ZTv0_n12_N1B1fEv[DS] .weak ._ZTv0_n12_N1B1fEv .csect _ZTv0_n12_N1B1fEv[DS] _ZTv0_n12_N1B1fEv: .long ._ZTv0_n12_N1B1fEv, TOC[tc0], 0 .csect .text[PR] ._ZTv0_n12_N1B1fEv: LFB..16: lwz 12,0(3) lwz 12,-12(12) add 3,3,12 b .LTHUNK..0 LFE..16: .align 2 .weak _ZN1D1fEv[DS] .weak ._ZN1D1fEv .csect _ZN1D1fEv[DS] _ZN1D1fEv: .long ._ZN1D1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1D1fEv: LFB..8: stw 31,-4(1) stwu 1,-32(1) LCFI..12: mr 31,1 LCFI..13: stw 3,56(31) addi 1,31,32 LCFI..14: lwz 31,-4(1) blr LT.._ZN1D1fEv: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1D1fEv-._ZN1D1fEv .short 9 .byte "_ZN1D1fEv" .byte 31 .align 2 LFE..8: .lglobl .LTHUNK..2 .lglobl LTHUNK..2 .set .LTHUNK..2,._ZN1D1fEv .set LTHUNK..2,_ZN1D1fEv .lglobl ._ZThn4_N1D1fEv.localalias.10 .lglobl _ZThn4_N1D1fEv.localalias.10 .set ._ZThn4_N1D1fEv.localalias.10,._ZThn4_N1D1fEv .set _ZThn4_N1D1fEv.localalias.10,_ZThn4_N1D1fEv .align 2 .weak _ZThn4_N1D1fEv[DS] .weak ._ZThn4_N1D1fEv .csect _ZThn4_N1D1fEv[DS] _ZThn4_N1D1fEv: .long ._ZThn4_N1D1fEv, TOC[tc0], 0 .csect .text[PR] ._ZThn4_N1D1fEv: LFB..17: addi 3,3,-4 b .LTHUNK..2 LFE..17: .align 2 .weak _ZN1CC2Ev[DS] .weak ._ZN1CC2Ev .csect _ZN1CC2Ev[DS] _ZN1CC2Ev: .long ._ZN1CC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1CC2Ev: LFB..12: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..15: mr 31,1 LCFI..16: stw 3,88(31) stw 4,92(31) lwz 10,88(31) lwz 9,92(31) addi 9,9,4 mr 4,9 mr 3,10 bl ._ZN1BC2Ev.localalias.2 lwz 9,92(31) lwz 10,0(9) lwz 9,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 10,92(31) lwz 10,12(10) stw 10,0(9) addi 1,31,64 LCFI..17: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1CC2Ev: .long 0 .byte 0,9,32,97,128,1,2,1 .long 0 .long LT.._ZN1CC2Ev-._ZN1CC2Ev .short 9 .byte "_ZN1CC2Ev" .byte 31 .align 2 LFE..12: .lglobl ._ZN1CC2Ev.localalias.1 .lglobl _ZN1CC2Ev.localalias.1 .set ._ZN1CC2Ev.localalias.1,._ZN1CC2Ev .set _ZN1CC2Ev.localalias.1,_ZN1CC2Ev .toc LC..3: .tc _ZTT1D.P4[TC],_ZTT1D+4 LC..4: .tc _ZTT1D.P20[TC],_ZTT1D+20 LC..5: .tc _ZTV1D.P16[TC],_ZTV1D+16 LC..6: .tc _ZTV1D.P36[TC],_ZTV1D+36 .csect .text[PR] .align 2 .weak _ZN1DC1Ev[DS] .weak ._ZN1DC1Ev .csect _ZN1DC1Ev[DS] _ZN1DC1Ev: .long ._ZN1DC1Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1DC1Ev: LFB..15: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..18: mr 31,1 LCFI..19: stw 3,88(31) lwz 9,88(31) mr 3,9 bl ._ZN1AC2Ev.localalias.3 lwz 9,88(31) lwz 10,LC..3(2) mr 4,10 mr 3,9 bl ._ZN1CC2Ev.localalias.1 lwz 9,88(31) addi 9,9,4 lwz 10,LC..4(2) mr 4,10 mr 3,9 bl ._ZN1BC2Ev.localalias.2 lwz 10,LC..5(2) lwz 9,88(31) stw 10,0(9) li 9,0 lwz 10,88(31) add 9,10,9 lwz 10,LC..5(2) stw 10,0(9) lwz 10,LC..6(2) lwz 9,88(31) stw 10,4(9) addi 1,31,64 LCFI..20: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1DC1Ev: .long 0 .byte 0,9,32,97,128,1,1,1 .long 0 .long LT.._ZN1DC1Ev-._ZN1DC1Ev .short 9 .byte "_ZN1DC1Ev" .byte 31 .align 2 LFE..15: .lglobl ._ZN1DC1Ev.localalias.0 .lglobl _ZN1DC1Ev.localalias.0 .set ._ZN1DC1Ev.localalias.0,._ZN1DC1Ev .set _ZN1DC1Ev.localalias.0,_ZN1DC1Ev .align 2 .globl main .globl .main .csect main[DS] main: .long .main, TOC[tc0], 0 .csect .text[PR] .main: LFB..9: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-96(1) LCFI..21: mr 31,1 LCFI..22: addi 9,31,56 mr 3,9 bl ._ZN1DC1Ev.localalias.0 li 9,0 mr 3,9 addi 1,31,96 LCFI..23: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT..main: .long 0 .byte 0,9,32,97,128,1,0,1 .long LT..main-.main .short 4 .byte "main" .byte 31 .align 2 LFE..9: .weak _ZTV1D .csect .data[RW],4 .align 2 _ZTV1D: .long 0 .long 0 .long 0 .long _ZTI1D .long LTHUNK..0 .long -4 .long -4 .long -4 .long _ZTI1D .long _ZThn4_N1D1fEv.localalias.10 .set _ZTV1D.localalias.6,_ZTV1D .weak _ZTT1D .align 2 _ZTT1D: .long _ZTV1D.localalias.6+16 .long _ZTC1D0_1C+16 .long _ZTC1D0_1B+16 .long _ZTC1D0_1B+16 .long _ZTC1D0_1C+16 .long _ZTC1D4_1B+16 .long _ZTC1D4_1B+32 .long _ZTV1D.localalias.6+16 .long _ZTV1D.localalias.6+36 .weak _ZTC1D0_1C .align 2 _ZTC1D0_1C: .long 0 .long 0 .long 0 .long _ZTI1C .long LTHUNK..0 .weak _ZTC1D0_1B .align 2 _ZTC1D0_1B: .long 0 .long 0 .long 0 .long _ZTI1B .long LTHUNK..0 .weak _ZTC1D4_1B .align 2 _ZTC1D4_1B: .long -4 .long 0 .long 0 .long _ZTI1B .long LTHUNK..0 .long 4 .long 4 .long _ZTI1B .long _ZTv0_n12_N1B1fEv .weak _ZTV1A .align 2 _ZTV1A: .long 0 .long _ZTI1A .long _ZN1A1fEv.localalias.4 .weak _ZTI1D .align 2 _ZTI1D: .long _ZTVN10__cxxabiv121__vmi_class_type_infoE+8 .long _ZTS1D .long 3 .long 2 .long _ZTI1C .long 2 .long _ZTI1B .long 1026 .weak _ZTS1D .csect _vcall1.ro_[RO],4 .align 2 _ZTS1D: .byte "1D" .byte 0 .weak _ZTI1C .csect .data[RW],4 .align 2 _ZTI1C: .long _ZTVN10__cxxabiv120__si_class_type_infoE+8 .long _ZTS1C .long _ZTI1B .weak _ZTS1C .csect _vcall1.ro_[RO],4 .align 2 _ZTS1C: .byte "1C" .byte 0 .weak _ZTI1B .csect .data[RW],4 .align 2 _ZTI1B: .long _ZTVN10__cxxabiv121__vmi_class_type_infoE+8 .long _ZTS1B .long 0 .long 1 .long _ZTI1A .long -4093 .weak _ZTS1B .csect _vcall1.ro_[RO],4 .align 2 _ZTS1B: .byte "1B" .byte 0 .weak _ZTI1A .csect .data[RW],4 .align 2 _ZTI1A: .long _ZTVN10__cxxabiv117__class_type_infoE+8 .long _ZTS1A .weak _ZTS1A .csect _vcall1.ro_[RO],4 .align 2 _ZTS1A: .byte "1A" .byte 0 .csect .data[RW],4 .align 2 .globl _GLOBAL__F_b _GLOBAL__F_b: Lframe..1: .vbyte 4,LECIE..1-LSCIE..1 LSCIE..1: .vbyte 4,0 .byte 0x3 .byte 0 .byte 0x1 .byte 0x7c .byte 0x41 .byte 0xc .byte 0x1 .byte 0 .align 2 LECIE..1: LSFDE..1: .vbyte 4,LEFDE..1-LASFDE..1 LASFDE..1: .vbyte 4,LASFDE..1-Lframe..1 .vbyte 4,LFB..5 .vbyte 4,LFE..5-LFB..5 .byte 0x4 .vbyte 4,LCFI..6-LFB..5 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..7-LCFI..6 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..8-LCFI..7 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..1: LSFDE..3: .vbyte 4,LEFDE..3-LASFDE..3 LASFDE..3: .vbyte 4,LASFDE..3-Lframe..1 .vbyte 4,LFB..7 .vbyte 4,LFE..7-LFB..7 .byte 0x4 .vbyte 4,LCFI..9-LFB..7 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..10-LCFI..9 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..11-LCFI..10 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..3: LSFDE..5: .vbyte 4,LEFDE..5-LASFDE..5 LASFDE..5: .vbyte 4,LASFDE..5-Lframe..1 .vbyte 4,LFB..16 .vbyte 4,LFE..16-LFB..16 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..5: LSFDE..7: .vbyte 4,LEFDE..7-LASFDE..7 LASFDE..7: .vbyte 4,LASFDE..7-Lframe..1 .vbyte 4,LFB..17 .vbyte 4,LFE..17-LFB..17 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..7: LSFDE..9: .vbyte 4,LEFDE..9-LASFDE..9 LASFDE..9: .vbyte 4,LASFDE..9-Lframe..1 .vbyte 4,LFB..12 .vbyte 4,LFE..12-LFB..12 .byte 0x4 .vbyte 4,LCFI..15-LFB..12 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..16-LCFI..15 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..17-LCFI..16 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..9: LSFDE..11: .vbyte 4,LEFDE..11-LASFDE..11 LASFDE..11: .vbyte 4,LASFDE..11-Lframe..1 .vbyte 4,LFB..15 .vbyte 4,LFE..15-LFB..15 .byte 0x4 .vbyte 4,LCFI..18-LFB..15 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..19-LCFI..18 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..20-LCFI..19 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..11: LSFDE..13: .vbyte 4,LEFDE..13-LASFDE..13 LASFDE..13: .vbyte 4,LASFDE..13-Lframe..1 .vbyte 4,LFB..9 .vbyte 4,LFE..9-LFB..9 .byte 0x4 .vbyte 4,LCFI..21-LFB..9 .byte 0xe .byte 0x60 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..22-LCFI..21 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..23-LCFI..22 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..13: .vbyte 4,0 .csect .text[PR] _section_.text: .csect .data[RW],4 .long _section_.text
.file "/home/jh/trunk/gcc/testsuite/g++.dg/abi/vcall1.C" .csect .text[PR] .toc .csect .text[PR] .globl b .csect .data[RW],4 .align 2 b: .space 4 .csect .text[PR] .align 2 .weak _ZN1A1fEv[DS] .weak ._ZN1A1fEv .csect _ZN1A1fEv[DS] _ZN1A1fEv: .long ._ZN1A1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1A1fEv: LFB..0: stw 31,-4(1) stwu 1,-32(1) LCFI..0: mr 31,1 LCFI..1: stw 3,56(31) addi 1,31,32 LCFI..2: lwz 31,-4(1) blr LT.._ZN1A1fEv: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1A1fEv-._ZN1A1fEv .short 9 .byte "_ZN1A1fEv" .byte 31 .align 2 LFE..0: .lglobl ._ZN1A1fEv.localalias.4 .lglobl _ZN1A1fEv.localalias.4 .set ._ZN1A1fEv.localalias.4,._ZN1A1fEv .set _ZN1A1fEv.localalias.4,_ZN1A1fEv .toc LC..0: .tc _ZTV1A.P8[TC],_ZTV1A+8 .csect .text[PR] .align 2 .weak _ZN1AC2Ev[DS] .weak ._ZN1AC2Ev .csect _ZN1AC2Ev[DS] _ZN1AC2Ev: .long ._ZN1AC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1AC2Ev: LFB..3: stw 31,-4(1) stwu 1,-32(1) LCFI..3: mr 31,1 LCFI..4: stw 3,56(31) lwz 9,56(31) lwz 10,LC..0(2) stw 10,0(9) addi 1,31,32 LCFI..5: lwz 31,-4(1) blr LT.._ZN1AC2Ev: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1AC2Ev-._ZN1AC2Ev .short 9 .byte "_ZN1AC2Ev" .byte 31 .align 2 LFE..3: .lglobl ._ZN1AC2Ev.localalias.3 .lglobl _ZN1AC2Ev.localalias.3 .set ._ZN1AC2Ev.localalias.3,._ZN1AC2Ev .set _ZN1AC2Ev.localalias.3,_ZN1AC2Ev .toc LC..1: .tc b[TC],b .csect .text[PR] .align 2 .weak _ZN1BC2Ev[DS] .weak ._ZN1BC2Ev .csect _ZN1BC2Ev[DS] _ZN1BC2Ev: .long ._ZN1BC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1BC2Ev: LFB..5: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..6: mr 31,1 LCFI..7: stw 3,88(31) stw 4,92(31) lwz 9,92(31) lwz 10,0(9) lwz 9,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 10,92(31) lwz 10,4(10) stw 10,0(9) lwz 9,LC..1(2) lwz 10,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 9,0(9) lwz 9,0(9) lwz 10,88(31) lwz 10,0(10) addi 10,10,-16 lwz 10,0(10) mr 8,10 lwz 10,88(31) add 10,10,8 mr 3,10 stw 2,20(1) lwz 10,0(9) lwz 11,8(9) mtctr 10 lwz 2,4(9) bctrl lwz 2,20(1) addi 1,31,64 LCFI..8: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1BC2Ev: .long 0 .byte 0,9,32,97,128,1,2,1 .long 0 .long LT.._ZN1BC2Ev-._ZN1BC2Ev .short 9 .byte "_ZN1BC2Ev" .byte 31 .align 2 LFE..5: .lglobl ._ZN1BC2Ev.localalias.2 .lglobl _ZN1BC2Ev.localalias.2 .set ._ZN1BC2Ev.localalias.2,._ZN1BC2Ev .set _ZN1BC2Ev.localalias.2,_ZN1BC2Ev .toc .set LC..2,LC..1 .csect .text[PR] .align 2 .weak _ZN1B1fEv[DS] .weak ._ZN1B1fEv .csect _ZN1B1fEv[DS] _ZN1B1fEv: .long ._ZN1B1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1B1fEv: LFB..7: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..9: mr 31,1 LCFI..10: stw 3,88(31) lwz 9,LC..2(2) lwz 9,0(9) lwz 10,88(31) cmpw 7,10,9 beq 7,L..4 bl .abort nop L..4: addi 1,31,64 LCFI..11: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1B1fEv: .long 0 .byte 0,9,32,97,128,1,1,1 .long 0 .long LT.._ZN1B1fEv-._ZN1B1fEv .short 9 .byte "_ZN1B1fEv" .byte 31 .align 2 LFE..7: .lglobl .LTHUNK..0 .lglobl LTHUNK..0 .set .LTHUNK..0,._ZN1B1fEv .set LTHUNK..0,_ZN1B1fEv .lglobl ._ZTv0_n12_N1B1fEv.localalias.5 .lglobl _ZTv0_n12_N1B1fEv.localalias.5 .set ._ZTv0_n12_N1B1fEv.localalias.5,._ZTv0_n12_N1B1fEv .set _ZTv0_n12_N1B1fEv.localalias.5,_ZTv0_n12_N1B1fEv .align 2 .weak _ZTv0_n12_N1B1fEv[DS] .weak ._ZTv0_n12_N1B1fEv .csect _ZTv0_n12_N1B1fEv[DS] _ZTv0_n12_N1B1fEv: .long ._ZTv0_n12_N1B1fEv, TOC[tc0], 0 .csect .text[PR] ._ZTv0_n12_N1B1fEv: LFB..16: lwz 12,0(3) lwz 12,-12(12) add 3,3,12 b .LTHUNK..0 LFE..16: .align 2 .weak _ZN1D1fEv[DS] .weak ._ZN1D1fEv .csect _ZN1D1fEv[DS] _ZN1D1fEv: .long ._ZN1D1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1D1fEv: LFB..8: stw 31,-4(1) stwu 1,-32(1) LCFI..12: mr 31,1 LCFI..13: stw 3,56(31) addi 1,31,32 LCFI..14: lwz 31,-4(1) blr LT.._ZN1D1fEv: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1D1fEv-._ZN1D1fEv .short 9 .byte "_ZN1D1fEv" .byte 31 .align 2 LFE..8: .lglobl .LTHUNK..2 .lglobl LTHUNK..2 .set .LTHUNK..2,._ZN1D1fEv .set LTHUNK..2,_ZN1D1fEv .lglobl ._ZThn4_N1D1fEv.localalias.10 .lglobl _ZThn4_N1D1fEv.localalias.10 .set ._ZThn4_N1D1fEv.localalias.10,._ZThn4_N1D1fEv .set _ZThn4_N1D1fEv.localalias.10,_ZThn4_N1D1fEv .align 2 .weak _ZThn4_N1D1fEv[DS] .weak ._ZThn4_N1D1fEv .csect _ZThn4_N1D1fEv[DS] _ZThn4_N1D1fEv: .long ._ZThn4_N1D1fEv, TOC[tc0], 0 .csect .text[PR] ._ZThn4_N1D1fEv: LFB..17: addi 3,3,-4 b .LTHUNK..2 LFE..17: .align 2 .weak _ZN1CC2Ev[DS] .weak ._ZN1CC2Ev .csect _ZN1CC2Ev[DS] _ZN1CC2Ev: .long ._ZN1CC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1CC2Ev: LFB..12: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..15: mr 31,1 LCFI..16: stw 3,88(31) stw 4,92(31) lwz 10,88(31) lwz 9,92(31) addi 9,9,4 mr 4,9 mr 3,10 bl ._ZN1BC2Ev.localalias.2 lwz 9,92(31) lwz 10,0(9) lwz 9,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 10,92(31) lwz 10,12(10) stw 10,0(9) addi 1,31,64 LCFI..17: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1CC2Ev: .long 0 .byte 0,9,32,97,128,1,2,1 .long 0 .long LT.._ZN1CC2Ev-._ZN1CC2Ev .short 9 .byte "_ZN1CC2Ev" .byte 31 .align 2 LFE..12: .lglobl ._ZN1CC2Ev.localalias.1 .lglobl _ZN1CC2Ev.localalias.1 .set ._ZN1CC2Ev.localalias.1,._ZN1CC2Ev .set _ZN1CC2Ev.localalias.1,_ZN1CC2Ev .toc LC..3: .tc _ZTT1D.P4[TC],_ZTT1D+4 LC..4: .tc _ZTT1D.P20[TC],_ZTT1D+20 LC..5: .tc _ZTV1D.P16[TC],_ZTV1D+16 LC..6: .tc _ZTV1D.P36[TC],_ZTV1D+36 .csect .text[PR] .align 2 .weak _ZN1DC1Ev[DS] .weak ._ZN1DC1Ev .csect _ZN1DC1Ev[DS] _ZN1DC1Ev: .long ._ZN1DC1Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1DC1Ev: LFB..15: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..18: mr 31,1 LCFI..19: stw 3,88(31) lwz 9,88(31) mr 3,9 bl ._ZN1AC2Ev.localalias.3 lwz 9,88(31) lwz 10,LC..3(2) mr 4,10 mr 3,9 bl ._ZN1CC2Ev.localalias.1 lwz 9,88(31) addi 9,9,4 lwz 10,LC..4(2) mr 4,10 mr 3,9 bl ._ZN1BC2Ev.localalias.2 lwz 10,LC..5(2) lwz 9,88(31) stw 10,0(9) li 9,0 lwz 10,88(31) add 9,10,9 lwz 10,LC..5(2) stw 10,0(9) lwz 10,LC..6(2) lwz 9,88(31) stw 10,4(9) addi 1,31,64 LCFI..20: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1DC1Ev: .long 0 .byte 0,9,32,97,128,1,1,1 .long 0 .long LT.._ZN1DC1Ev-._ZN1DC1Ev .short 9 .byte "_ZN1DC1Ev" .byte 31 .align 2 LFE..15: .lglobl ._ZN1DC1Ev.localalias.0 .lglobl _ZN1DC1Ev.localalias.0 .set ._ZN1DC1Ev.localalias.0,._ZN1DC1Ev .set _ZN1DC1Ev.localalias.0,_ZN1DC1Ev .align 2 .globl main .globl .main .csect main[DS] main: .long .main, TOC[tc0], 0 .csect .text[PR] .main: LFB..9: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-96(1) LCFI..21: mr 31,1 LCFI..22: addi 9,31,56 mr 3,9 bl ._ZN1DC1Ev.localalias.0 li 9,0 mr 3,9 addi 1,31,96 LCFI..23: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT..main: .long 0 .byte 0,9,32,97,128,1,0,1 .long LT..main-.main .short 4 .byte "main" .byte 31 .align 2 LFE..9: .weak _ZTV1D .csect .data[RW],4 .align 2 _ZTV1D: .long 0 .long 0 .long 0 .long _ZTI1D .long LTHUNK..0 .long -4 .long -4 .long -4 .long _ZTI1D .long _ZThn4_N1D1fEv.localalias.10 .set _ZTV1D.localalias.6,_ZTV1D .weak _ZTT1D .align 2 _ZTT1D: .long _ZTV1D.localalias.6+16 .long _ZTC1D0_1C+16 .long _ZTC1D0_1B+16 .long _ZTC1D0_1B+16 .long _ZTC1D0_1C+16 .long _ZTC1D4_1B+16 .long _ZTC1D4_1B+32 .long _ZTV1D.localalias.6+16 .long _ZTV1D.localalias.6+36 .weak _ZTC1D0_1C .align 2 _ZTC1D0_1C: .long 0 .long 0 .long 0 .long _ZTI1C .long LTHUNK..0 .weak _ZTC1D0_1B .align 2 _ZTC1D0_1B: .long 0 .long 0 .long 0 .long _ZTI1B .long LTHUNK..0 .weak _ZTC1D4_1B .align 2 _ZTC1D4_1B: .long -4 .long 0 .long 0 .long _ZTI1B .long LTHUNK..0 .long 4 .long 4 .long _ZTI1B .long _ZTv0_n12_N1B1fEv.localalias.5 .weak _ZTV1A .align 2 _ZTV1A: .long 0 .long _ZTI1A .long _ZN1A1fEv.localalias.4 .weak _ZTI1D .align 2 _ZTI1D: .long _ZTVN10__cxxabiv121__vmi_class_type_infoE+8 .long _ZTS1D .long 3 .long 2 .long _ZTI1C .long 2 .long _ZTI1B .long 1026 .weak _ZTS1D .csect _vcall1.ro_[RO],4 .align 2 _ZTS1D: .byte "1D" .byte 0 .weak _ZTI1C .csect .data[RW],4 .align 2 _ZTI1C: .long _ZTVN10__cxxabiv120__si_class_type_infoE+8 .long _ZTS1C .long _ZTI1B .weak _ZTS1C .csect _vcall1.ro_[RO],4 .align 2 _ZTS1C: .byte "1C" .byte 0 .weak _ZTI1B .csect .data[RW],4 .align 2 _ZTI1B: .long _ZTVN10__cxxabiv121__vmi_class_type_infoE+8 .long _ZTS1B .long 0 .long 1 .long _ZTI1A .long -4093 .weak _ZTS1B .csect _vcall1.ro_[RO],4 .align 2 _ZTS1B: .byte "1B" .byte 0 .weak _ZTI1A .csect .data[RW],4 .align 2 _ZTI1A: .long _ZTVN10__cxxabiv117__class_type_infoE+8 .long _ZTS1A .weak _ZTS1A .csect _vcall1.ro_[RO],4 .align 2 _ZTS1A: .byte "1A" .byte 0 .csect .data[RW],4 .align 2 .globl _GLOBAL__F_b _GLOBAL__F_b: Lframe..1: .vbyte 4,LECIE..1-LSCIE..1 LSCIE..1: .vbyte 4,0 .byte 0x3 .byte 0 .byte 0x1 .byte 0x7c .byte 0x41 .byte 0xc .byte 0x1 .byte 0 .align 2 LECIE..1: LSFDE..1: .vbyte 4,LEFDE..1-LASFDE..1 LASFDE..1: .vbyte 4,LASFDE..1-Lframe..1 .vbyte 4,LFB..5 .vbyte 4,LFE..5-LFB..5 .byte 0x4 .vbyte 4,LCFI..6-LFB..5 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..7-LCFI..6 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..8-LCFI..7 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..1: LSFDE..3: .vbyte 4,LEFDE..3-LASFDE..3 LASFDE..3: .vbyte 4,LASFDE..3-Lframe..1 .vbyte 4,LFB..7 .vbyte 4,LFE..7-LFB..7 .byte 0x4 .vbyte 4,LCFI..9-LFB..7 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..10-LCFI..9 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..11-LCFI..10 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..3: LSFDE..5: .vbyte 4,LEFDE..5-LASFDE..5 LASFDE..5: .vbyte 4,LASFDE..5-Lframe..1 .vbyte 4,LFB..16 .vbyte 4,LFE..16-LFB..16 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..5: LSFDE..7: .vbyte 4,LEFDE..7-LASFDE..7 LASFDE..7: .vbyte 4,LASFDE..7-Lframe..1 .vbyte 4,LFB..17 .vbyte 4,LFE..17-LFB..17 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..7: LSFDE..9: .vbyte 4,LEFDE..9-LASFDE..9 LASFDE..9: .vbyte 4,LASFDE..9-Lframe..1 .vbyte 4,LFB..12 .vbyte 4,LFE..12-LFB..12 .byte 0x4 .vbyte 4,LCFI..15-LFB..12 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..16-LCFI..15 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..17-LCFI..16 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..9: LSFDE..11: .vbyte 4,LEFDE..11-LASFDE..11 LASFDE..11: .vbyte 4,LASFDE..11-Lframe..1 .vbyte 4,LFB..15 .vbyte 4,LFE..15-LFB..15 .byte 0x4 .vbyte 4,LCFI..18-LFB..15 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..19-LCFI..18 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..20-LCFI..19 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..11: LSFDE..13: .vbyte 4,LEFDE..13-LASFDE..13 LASFDE..13: .vbyte 4,LASFDE..13-Lframe..1 .vbyte 4,LFB..9 .vbyte 4,LFE..9-LFB..9 .byte 0x4 .vbyte 4,LCFI..21-LFB..9 .byte 0xe .byte 0x60 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..22-LCFI..21 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..23-LCFI..22 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..13: .vbyte 4,0 .csect .text[PR] _section_.text: .csect .data[RW],4 .long _section_.text
.file "/home/jh/trunk/gcc/testsuite/g++.dg/abi/vcall1.C" .csect .text[PR] .toc .csect .text[PR] .globl b .csect .data[RW],4 .align 2 b: .space 4 .csect .text[PR] .align 2 .weak _ZN1A1fEv[DS] .weak ._ZN1A1fEv .csect _ZN1A1fEv[DS] _ZN1A1fEv: .long ._ZN1A1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1A1fEv: LFB..0: stw 31,-4(1) stwu 1,-32(1) LCFI..0: mr 31,1 LCFI..1: stw 3,56(31) addi 1,31,32 LCFI..2: lwz 31,-4(1) blr LT.._ZN1A1fEv: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1A1fEv-._ZN1A1fEv .short 9 .byte "_ZN1A1fEv" .byte 31 .align 2 LFE..0: .lglobl ._ZN1A1fEv.localalias.4 .lglobl _ZN1A1fEv.localalias.4 .set ._ZN1A1fEv.localalias.4,._ZN1A1fEv .set _ZN1A1fEv.localalias.4,_ZN1A1fEv .toc LC..0: .tc _ZTV1A.P8[TC],_ZTV1A+8 .csect .text[PR] .align 2 .weak _ZN1AC2Ev[DS] .weak ._ZN1AC2Ev .csect _ZN1AC2Ev[DS] _ZN1AC2Ev: .long ._ZN1AC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1AC2Ev: LFB..3: stw 31,-4(1) stwu 1,-32(1) LCFI..3: mr 31,1 LCFI..4: stw 3,56(31) lwz 9,56(31) lwz 10,LC..0(2) stw 10,0(9) addi 1,31,32 LCFI..5: lwz 31,-4(1) blr LT.._ZN1AC2Ev: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1AC2Ev-._ZN1AC2Ev .short 9 .byte "_ZN1AC2Ev" .byte 31 .align 2 LFE..3: .lglobl ._ZN1AC2Ev.localalias.3 .lglobl _ZN1AC2Ev.localalias.3 .set ._ZN1AC2Ev.localalias.3,._ZN1AC2Ev .set _ZN1AC2Ev.localalias.3,_ZN1AC2Ev .toc LC..1: .tc b[TC],b .csect .text[PR] .align 2 .weak _ZN1BC2Ev[DS] .weak ._ZN1BC2Ev .csect _ZN1BC2Ev[DS] _ZN1BC2Ev: .long ._ZN1BC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1BC2Ev: LFB..5: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..6: mr 31,1 LCFI..7: stw 3,88(31) stw 4,92(31) lwz 9,92(31) lwz 10,0(9) lwz 9,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 10,92(31) lwz 10,4(10) stw 10,0(9) lwz 9,LC..1(2) lwz 10,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 9,0(9) lwz 9,0(9) lwz 10,88(31) lwz 10,0(10) addi 10,10,-16 lwz 10,0(10) mr 8,10 lwz 10,88(31) add 10,10,8 mr 3,10 stw 2,20(1) lwz 10,0(9) lwz 11,8(9) mtctr 10 lwz 2,4(9) bctrl lwz 2,20(1) addi 1,31,64 LCFI..8: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1BC2Ev: .long 0 .byte 0,9,32,97,128,1,2,1 .long 0 .long LT.._ZN1BC2Ev-._ZN1BC2Ev .short 9 .byte "_ZN1BC2Ev" .byte 31 .align 2 LFE..5: .lglobl ._ZN1BC2Ev.localalias.2 .lglobl _ZN1BC2Ev.localalias.2 .set ._ZN1BC2Ev.localalias.2,._ZN1BC2Ev .set _ZN1BC2Ev.localalias.2,_ZN1BC2Ev .toc .set LC..2,LC..1 .csect .text[PR] .align 2 .weak _ZN1B1fEv[DS] .weak ._ZN1B1fEv .csect _ZN1B1fEv[DS] _ZN1B1fEv: .long ._ZN1B1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1B1fEv: LFB..7: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..9: mr 31,1 LCFI..10: stw 3,88(31) lwz 9,LC..2(2) lwz 9,0(9) lwz 10,88(31) cmpw 7,10,9 beq 7,L..4 bl .abort nop L..4: addi 1,31,64 LCFI..11: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1B1fEv: .long 0 .byte 0,9,32,97,128,1,1,1 .long 0 .long LT.._ZN1B1fEv-._ZN1B1fEv .short 9 .byte "_ZN1B1fEv" .byte 31 .align 2 LFE..7: .lglobl .LTHUNK..0 .lglobl LTHUNK..0 .set .LTHUNK..0,._ZN1B1fEv .set LTHUNK..0,_ZN1B1fEv .align 2 .weak _ZTv0_n12_N1B1fEv[DS] .weak ._ZTv0_n12_N1B1fEv .csect _ZTv0_n12_N1B1fEv[DS] _ZTv0_n12_N1B1fEv: .long ._ZTv0_n12_N1B1fEv, TOC[tc0], 0 .csect .text[PR] ._ZTv0_n12_N1B1fEv: LFB..16: lwz 12,0(3) lwz 12,-12(12) add 3,3,12 b .LTHUNK..0 .lglobl ._ZTv0_n12_N1B1fEv.localalias.5 .lglobl _ZTv0_n12_N1B1fEv.localalias.5 .set ._ZTv0_n12_N1B1fEv.localalias.5,._ZTv0_n12_N1B1fEv .set _ZTv0_n12_N1B1fEv.localalias.5,_ZTv0_n12_N1B1fEv LFE..16: .align 2 .weak _ZN1D1fEv[DS] .weak ._ZN1D1fEv .csect _ZN1D1fEv[DS] _ZN1D1fEv: .long ._ZN1D1fEv, TOC[tc0], 0 .csect .text[PR] ._ZN1D1fEv: LFB..8: stw 31,-4(1) stwu 1,-32(1) LCFI..12: mr 31,1 LCFI..13: stw 3,56(31) addi 1,31,32 LCFI..14: lwz 31,-4(1) blr LT.._ZN1D1fEv: .long 0 .byte 0,9,32,96,128,1,1,1 .long 0 .long LT.._ZN1D1fEv-._ZN1D1fEv .short 9 .byte "_ZN1D1fEv" .byte 31 .align 2 LFE..8: .lglobl .LTHUNK..2 .lglobl LTHUNK..2 .set .LTHUNK..2,._ZN1D1fEv .set LTHUNK..2,_ZN1D1fEv .lglobl ._ZThn4_N1D1fEv.localalias.10 .lglobl _ZThn4_N1D1fEv.localalias.10 .set ._ZThn4_N1D1fEv.localalias.10,._ZThn4_N1D1fEv .set _ZThn4_N1D1fEv.localalias.10,_ZThn4_N1D1fEv .align 2 .weak _ZThn4_N1D1fEv[DS] .weak ._ZThn4_N1D1fEv .csect _ZThn4_N1D1fEv[DS] _ZThn4_N1D1fEv: .long ._ZThn4_N1D1fEv, TOC[tc0], 0 .csect .text[PR] ._ZThn4_N1D1fEv: LFB..17: addi 3,3,-4 b .LTHUNK..2 LFE..17: .align 2 .weak _ZN1CC2Ev[DS] .weak ._ZN1CC2Ev .csect _ZN1CC2Ev[DS] _ZN1CC2Ev: .long ._ZN1CC2Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1CC2Ev: LFB..12: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..15: mr 31,1 LCFI..16: stw 3,88(31) stw 4,92(31) lwz 10,88(31) lwz 9,92(31) addi 9,9,4 mr 4,9 mr 3,10 bl ._ZN1BC2Ev.localalias.2 lwz 9,92(31) lwz 10,0(9) lwz 9,88(31) stw 10,0(9) lwz 9,88(31) lwz 9,0(9) addi 9,9,-16 lwz 9,0(9) mr 10,9 lwz 9,88(31) add 9,9,10 lwz 10,92(31) lwz 10,12(10) stw 10,0(9) addi 1,31,64 LCFI..17: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1CC2Ev: .long 0 .byte 0,9,32,97,128,1,2,1 .long 0 .long LT.._ZN1CC2Ev-._ZN1CC2Ev .short 9 .byte "_ZN1CC2Ev" .byte 31 .align 2 LFE..12: .lglobl ._ZN1CC2Ev.localalias.1 .lglobl _ZN1CC2Ev.localalias.1 .set ._ZN1CC2Ev.localalias.1,._ZN1CC2Ev .set _ZN1CC2Ev.localalias.1,_ZN1CC2Ev .toc LC..3: .tc _ZTT1D.P4[TC],_ZTT1D+4 LC..4: .tc _ZTT1D.P20[TC],_ZTT1D+20 LC..5: .tc _ZTV1D.P16[TC],_ZTV1D+16 LC..6: .tc _ZTV1D.P36[TC],_ZTV1D+36 .csect .text[PR] .align 2 .weak _ZN1DC1Ev[DS] .weak ._ZN1DC1Ev .csect _ZN1DC1Ev[DS] _ZN1DC1Ev: .long ._ZN1DC1Ev, TOC[tc0], 0 .csect .text[PR] ._ZN1DC1Ev: LFB..15: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-64(1) LCFI..18: mr 31,1 LCFI..19: stw 3,88(31) lwz 9,88(31) mr 3,9 bl ._ZN1AC2Ev.localalias.3 lwz 9,88(31) lwz 10,LC..3(2) mr 4,10 mr 3,9 bl ._ZN1CC2Ev.localalias.1 lwz 9,88(31) addi 9,9,4 lwz 10,LC..4(2) mr 4,10 mr 3,9 bl ._ZN1BC2Ev.localalias.2 lwz 10,LC..5(2) lwz 9,88(31) stw 10,0(9) li 9,0 lwz 10,88(31) add 9,10,9 lwz 10,LC..5(2) stw 10,0(9) lwz 10,LC..6(2) lwz 9,88(31) stw 10,4(9) addi 1,31,64 LCFI..20: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT.._ZN1DC1Ev: .long 0 .byte 0,9,32,97,128,1,1,1 .long 0 .long LT.._ZN1DC1Ev-._ZN1DC1Ev .short 9 .byte "_ZN1DC1Ev" .byte 31 .align 2 LFE..15: .lglobl ._ZN1DC1Ev.localalias.0 .lglobl _ZN1DC1Ev.localalias.0 .set ._ZN1DC1Ev.localalias.0,._ZN1DC1Ev .set _ZN1DC1Ev.localalias.0,_ZN1DC1Ev .align 2 .globl main .globl .main .csect main[DS] main: .long .main, TOC[tc0], 0 .csect .text[PR] .main: LFB..9: mflr 0 stw 0,8(1) stw 31,-4(1) stwu 1,-96(1) LCFI..21: mr 31,1 LCFI..22: addi 9,31,56 mr 3,9 bl ._ZN1DC1Ev.localalias.0 li 9,0 mr 3,9 addi 1,31,96 LCFI..23: lwz 0,8(1) mtlr 0 lwz 31,-4(1) blr LT..main: .long 0 .byte 0,9,32,97,128,1,0,1 .long LT..main-.main .short 4 .byte "main" .byte 31 .align 2 LFE..9: .weak _ZTV1D .csect .data[RW],4 .align 2 _ZTV1D: .long 0 .long 0 .long 0 .long _ZTI1D .long LTHUNK..0 .long -4 .long -4 .long -4 .long _ZTI1D .long _ZThn4_N1D1fEv.localalias.10 .set _ZTV1D.localalias.6,_ZTV1D .weak _ZTT1D .align 2 _ZTT1D: .long _ZTV1D.localalias.6+16 .long _ZTC1D0_1C+16 .long _ZTC1D0_1B+16 .long _ZTC1D0_1B+16 .long _ZTC1D0_1C+16 .long _ZTC1D4_1B+16 .long _ZTC1D4_1B+32 .long _ZTV1D.localalias.6+16 .long _ZTV1D.localalias.6+36 .weak _ZTC1D0_1C .align 2 _ZTC1D0_1C: .long 0 .long 0 .long 0 .long _ZTI1C .long LTHUNK..0 .weak _ZTC1D0_1B .align 2 _ZTC1D0_1B: .long 0 .long 0 .long 0 .long _ZTI1B .long LTHUNK..0 .weak _ZTC1D4_1B .align 2 _ZTC1D4_1B: .long -4 .long 0 .long 0 .long _ZTI1B .long LTHUNK..0 .long 4 .long 4 .long _ZTI1B .long _ZTv0_n12_N1B1fEv.localalias.5 .weak _ZTV1A .align 2 _ZTV1A: .long 0 .long _ZTI1A .long _ZN1A1fEv.localalias.4 .weak _ZTI1D .align 2 _ZTI1D: .long _ZTVN10__cxxabiv121__vmi_class_type_infoE+8 .long _ZTS1D .long 3 .long 2 .long _ZTI1C .long 2 .long _ZTI1B .long 1026 .weak _ZTS1D .csect _vcall1.ro_[RO],4 .align 2 _ZTS1D: .byte "1D" .byte 0 .weak _ZTI1C .csect .data[RW],4 .align 2 _ZTI1C: .long _ZTVN10__cxxabiv120__si_class_type_infoE+8 .long _ZTS1C .long _ZTI1B .weak _ZTS1C .csect _vcall1.ro_[RO],4 .align 2 _ZTS1C: .byte "1C" .byte 0 .weak _ZTI1B .csect .data[RW],4 .align 2 _ZTI1B: .long _ZTVN10__cxxabiv121__vmi_class_type_infoE+8 .long _ZTS1B .long 0 .long 1 .long _ZTI1A .long -4093 .weak _ZTS1B .csect _vcall1.ro_[RO],4 .align 2 _ZTS1B: .byte "1B" .byte 0 .weak _ZTI1A .csect .data[RW],4 .align 2 _ZTI1A: .long _ZTVN10__cxxabiv117__class_type_infoE+8 .long _ZTS1A .weak _ZTS1A .csect _vcall1.ro_[RO],4 .align 2 _ZTS1A: .byte "1A" .byte 0 .csect .data[RW],4 .align 2 .globl _GLOBAL__F_b _GLOBAL__F_b: Lframe..1: .vbyte 4,LECIE..1-LSCIE..1 LSCIE..1: .vbyte 4,0 .byte 0x3 .byte 0 .byte 0x1 .byte 0x7c .byte 0x41 .byte 0xc .byte 0x1 .byte 0 .align 2 LECIE..1: LSFDE..1: .vbyte 4,LEFDE..1-LASFDE..1 LASFDE..1: .vbyte 4,LASFDE..1-Lframe..1 .vbyte 4,LFB..5 .vbyte 4,LFE..5-LFB..5 .byte 0x4 .vbyte 4,LCFI..6-LFB..5 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..7-LCFI..6 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..8-LCFI..7 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..1: LSFDE..3: .vbyte 4,LEFDE..3-LASFDE..3 LASFDE..3: .vbyte 4,LASFDE..3-Lframe..1 .vbyte 4,LFB..7 .vbyte 4,LFE..7-LFB..7 .byte 0x4 .vbyte 4,LCFI..9-LFB..7 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..10-LCFI..9 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..11-LCFI..10 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..3: LSFDE..5: .vbyte 4,LEFDE..5-LASFDE..5 LASFDE..5: .vbyte 4,LASFDE..5-Lframe..1 .vbyte 4,LFB..16 .vbyte 4,LFE..16-LFB..16 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..5: LSFDE..7: .vbyte 4,LEFDE..7-LASFDE..7 LASFDE..7: .vbyte 4,LASFDE..7-Lframe..1 .vbyte 4,LFB..17 .vbyte 4,LFE..17-LFB..17 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..7: LSFDE..9: .vbyte 4,LEFDE..9-LASFDE..9 LASFDE..9: .vbyte 4,LASFDE..9-Lframe..1 .vbyte 4,LFB..12 .vbyte 4,LFE..12-LFB..12 .byte 0x4 .vbyte 4,LCFI..15-LFB..12 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..16-LCFI..15 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..17-LCFI..16 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..9: LSFDE..11: .vbyte 4,LEFDE..11-LASFDE..11 LASFDE..11: .vbyte 4,LASFDE..11-Lframe..1 .vbyte 4,LFB..15 .vbyte 4,LFE..15-LFB..15 .byte 0x4 .vbyte 4,LCFI..18-LFB..15 .byte 0xe .byte 0x40 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..19-LCFI..18 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..20-LCFI..19 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..11: LSFDE..13: .vbyte 4,LEFDE..13-LASFDE..13 LASFDE..13: .vbyte 4,LASFDE..13-Lframe..1 .vbyte 4,LFB..9 .vbyte 4,LFE..9-LFB..9 .byte 0x4 .vbyte 4,LCFI..21-LFB..9 .byte 0xe .byte 0x60 .byte 0x11 .byte 0x41 .byte 0x7e .byte 0x9f .byte 0x1 .byte 0x4 .vbyte 4,LCFI..22-LCFI..21 .byte 0xd .byte 0x1f .byte 0x4 .vbyte 4,LCFI..23-LCFI..22 .byte 0xc .byte 0x1 .byte 0 .csect .text[PR] .ref Lframe..1 .csect .data[RW],4 .align 2 LEFDE..13: .vbyte 4,0 .csect .text[PR] _section_.text: .csect .data[RW],4 .long _section_.text