| .file "foo.c" |
| .abiversion 2 |
| .section ".toc","aw" |
| .section ".text" |
| .section .rodata |
| .align 3 |
| .type kString, @object |
| .size kString, 12 |
| kString: |
| .string "hello world" |
| .globl kExportedString |
| .align 3 |
| .type kExportedString, @object |
| .size kExportedString, 26 |
| kExportedString: |
| .string "hello world, more visibly" |
| .align 2 |
| .type kGiantArray, @object |
| .size kGiantArray, 400000 |
| kGiantArray: |
| .long 1 |
| .long 0 |
| .zero 399992 |
| .lcomm bss,20,4 |
| .type bss, @object |
| .align 3 |
| .LC1: |
| .string "kString is %p\n" |
| .align 3 |
| .LC2: |
| .string "kExportedString is %p\n" |
| .align 3 |
| .LC4: |
| .string "function is %p\n" |
| .align 3 |
| .LC5: |
| .string "exported_function is %p\n" |
| .align 3 |
| .LC7: |
| .string "&kString[5] is %p\n" |
| .align 3 |
| .LC9: |
| .string "&kGiantArray[0x12345] is %p\n" |
| .section ".toc","aw" |
| .LC0: |
| .quad stderr |
| .LC3: |
| .quad kExportedString |
| .LC6: |
| .quad exported_function |
| .LC8: |
| .quad kString+5 |
| .LC10: |
| .quad kGiantArray+298260 |
| .section ".text" |
| .align 2 |
| .type function, @function |
| function: |
| 0: addis 2,12,.TOC.-0b@ha |
| addi 2,2,.TOC.-0b@l |
| .localentry function,.-function |
| mflr 0 |
| std 0,16(1) |
| std 31,-8(1) |
| stdu 1,-112(1) |
| mr 31,1 |
| addis 10,2,.LC0@toc@ha |
| ld 9,.LC0@toc@l(10) |
| ld 9,0(9) |
| mr 3,9 |
| addis 4,2,.LC1@toc@ha |
| addi 4,4,.LC1@toc@l |
| addis 5,2,kString@toc@ha |
| addi 5,5,kString@toc@l |
| bl fprintf |
| nop |
| addis 10,2,.LC0@toc@ha |
| ld 9,.LC0@toc@l(10) |
| ld 9,0(9) |
| mr 3,9 |
| addis 4,2,.LC2@toc@ha |
| addi 4,4,.LC2@toc@l |
| addis 9,2,.LC3@toc@ha |
| ld 5,.LC3@toc@l(9) |
| bl fprintf |
| nop |
| addis 10,2,.LC0@toc@ha |
| ld 9,.LC0@toc@l(10) |
| ld 9,0(9) |
| mr 3,9 |
| addis 4,2,.LC4@toc@ha |
| addi 4,4,.LC4@toc@l |
| addis 5,2,function@toc@ha |
| addi 5,5,function@toc@l |
| bl fprintf |
| nop |
| addis 10,2,.LC0@toc@ha |
| ld 9,.LC0@toc@l(10) |
| ld 9,0(9) |
| mr 3,9 |
| addis 4,2,.LC5@toc@ha |
| addi 4,4,.LC5@toc@l |
| addis 9,2,.LC6@toc@ha |
| ld 5,.LC6@toc@l(9) |
| bl fprintf |
| nop |
| addis 10,2,.LC0@toc@ha |
| ld 9,.LC0@toc@l(10) |
| ld 9,0(9) |
| mr 3,9 |
| addis 4,2,.LC7@toc@ha |
| addi 4,4,.LC7@toc@l |
| addis 9,2,.LC8@toc@ha |
| ld 5,.LC8@toc@l(9) |
| bl fprintf |
| nop |
| addis 10,2,.LC0@toc@ha |
| ld 9,.LC0@toc@l(10) |
| ld 9,0(9) |
| mr 3,9 |
| addis 4,2,.LC9@toc@ha |
| addi 4,4,.LC9@toc@l |
| addis 9,2,.LC10@toc@ha |
| ld 5,.LC10@toc@l(9) |
| bl fprintf |
| nop |
| bl exported_function |
| nop |
| mr 3,9 |
| addi 1,31,112 |
| ld 0,16(1) |
| mtlr 0 |
| ld 31,-8(1) |
| blr |
| .long 0 |
| .byte 0,0,0,1,128,1,0,1 |
| .size function,.-function |
| .align 2 |
| .globl exported_function |
| .type exported_function, @function |
| exported_function: |
| 0: addis 2,12,.TOC.-0b@ha |
| addi 2,2,.TOC.-0b@l |
| .localentry exported_function,.-exported_function |
| mflr 0 |
| std 0,16(1) |
| std 31,-8(1) |
| stdu 1,-48(1) |
| mr 31,1 |
| bl function |
| mr 3,9 |
| addi 1,31,48 |
| ld 0,16(1) |
| mtlr 0 |
| ld 31,-8(1) |
| blr |
| .long 0 |
| .byte 0,0,0,1,128,1,0,1 |
| .size exported_function,.-exported_function |
| .ident "GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2" |
| .section .note.GNU-stack,"",@progbits |