227 lines
3.9 KiB
ArmAsm
227 lines
3.9 KiB
ArmAsm
|
.file "foo.c"
|
||
|
.abiversion 2
|
||
|
.section ".toc","aw"
|
||
|
.section ".text"
|
||
|
.section ".toc","aw"
|
||
|
.LC0:
|
||
|
.quad stderr
|
||
|
.LC3:
|
||
|
.quad kExportedString
|
||
|
.LC6:
|
||
|
.quad exported_function
|
||
|
.section ".text"
|
||
|
.align 2
|
||
|
.p2align 4,,15
|
||
|
.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 19,-104(1)
|
||
|
std 20,-96(1)
|
||
|
std 21,-88(1)
|
||
|
std 22,-80(1)
|
||
|
addis 21,2,.LC1@toc@ha
|
||
|
addis 22,2,.LC2@toc@ha
|
||
|
std 23,-72(1)
|
||
|
std 24,-64(1)
|
||
|
addis 23,2,.LC4@toc@ha
|
||
|
addis 24,2,function@toc@ha
|
||
|
std 25,-56(1)
|
||
|
std 26,-48(1)
|
||
|
addis 25,2,.LC5@toc@ha
|
||
|
addis 26,2,.LC7@toc@ha
|
||
|
std 27,-40(1)
|
||
|
std 28,-32(1)
|
||
|
addis 28,2,.LC8@toc@ha
|
||
|
addi 21,21,.LC1@toc@l
|
||
|
std 29,-24(1)
|
||
|
std 30,-16(1)
|
||
|
addis 29,2,.LANCHOR0@toc@ha
|
||
|
addi 22,22,.LC2@toc@l
|
||
|
std 31,-8(1)
|
||
|
std 0,16(1)
|
||
|
addi 29,29,.LANCHOR0@toc@l
|
||
|
addi 23,23,.LC4@toc@l
|
||
|
stdu 1,-208(1)
|
||
|
addis 31,2,.LC0@toc@ha # gpr load fusion, type long
|
||
|
ld 31,.LC0@toc@l(31)
|
||
|
addis 19,2,.LC3@toc@ha # gpr load fusion, type long
|
||
|
ld 19,.LC3@toc@l(19)
|
||
|
addis 30,29,0x5
|
||
|
addi 24,24,function@toc@l
|
||
|
addis 20,2,.LC6@toc@ha # gpr load fusion, type long
|
||
|
ld 20,.LC6@toc@l(20)
|
||
|
addi 25,25,.LC5@toc@l
|
||
|
addi 26,26,.LC7@toc@l
|
||
|
addi 27,29,5
|
||
|
addi 28,28,.LC8@toc@l
|
||
|
addi 30,30,-29404
|
||
|
.p2align 4,,15
|
||
|
.L2:
|
||
|
ld 3,0(31)
|
||
|
mr 5,21
|
||
|
mr 6,29
|
||
|
li 4,1
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
mr 5,22
|
||
|
mr 6,19
|
||
|
li 4,1
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
mr 5,23
|
||
|
mr 6,24
|
||
|
li 4,1
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
mr 5,25
|
||
|
mr 6,20
|
||
|
li 4,1
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
mr 5,26
|
||
|
mr 6,27
|
||
|
li 4,1
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
li 4,1
|
||
|
mr 5,28
|
||
|
mr 6,30
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
b .L2
|
||
|
.long 0
|
||
|
.byte 0,0,0,1,128,13,0,0
|
||
|
.size exported_function,.-exported_function
|
||
|
.section ".toc","aw"
|
||
|
.set .LC11,.LC0
|
||
|
.set .LC12,.LC3
|
||
|
.set .LC13,.LC6
|
||
|
.section ".text"
|
||
|
.align 2
|
||
|
.p2align 4,,15
|
||
|
.type function, @function
|
||
|
function:
|
||
|
0: addis 2,12,.TOC.-0b@ha
|
||
|
addi 2,2,.TOC.-0b@l
|
||
|
.localentry function,.-function
|
||
|
mflr 0
|
||
|
std 31,-8(1)
|
||
|
addis 31,2,.LC11@toc@ha # gpr load fusion, type long
|
||
|
ld 31,.LC11@toc@l(31)
|
||
|
addis 5,2,.LC1@toc@ha
|
||
|
std 30,-16(1)
|
||
|
addis 30,2,.LANCHOR0@toc@ha
|
||
|
addi 5,5,.LC1@toc@l
|
||
|
addi 30,30,.LANCHOR0@toc@l
|
||
|
li 4,1
|
||
|
mr 6,30
|
||
|
std 0,16(1)
|
||
|
stdu 1,-112(1)
|
||
|
ld 3,0(31)
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
addis 6,2,.LC12@toc@ha # gpr load fusion, type long
|
||
|
ld 6,.LC12@toc@l(6)
|
||
|
ld 3,0(31)
|
||
|
addis 5,2,.LC2@toc@ha
|
||
|
li 4,1
|
||
|
addi 5,5,.LC2@toc@l
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
addis 5,2,.LC4@toc@ha
|
||
|
addis 6,2,function@toc@ha
|
||
|
addi 5,5,.LC4@toc@l
|
||
|
addi 6,6,function@toc@l
|
||
|
li 4,1
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
addis 6,2,.LC13@toc@ha # gpr load fusion, type long
|
||
|
ld 6,.LC13@toc@l(6)
|
||
|
ld 3,0(31)
|
||
|
addis 5,2,.LC5@toc@ha
|
||
|
li 4,1
|
||
|
addi 5,5,.LC5@toc@l
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
addis 5,2,.LC7@toc@ha
|
||
|
addi 6,30,5
|
||
|
addi 5,5,.LC7@toc@l
|
||
|
li 4,1
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
ld 3,0(31)
|
||
|
addis 6,30,0x5
|
||
|
addis 5,2,.LC8@toc@ha
|
||
|
li 4,1
|
||
|
addi 5,5,.LC8@toc@l
|
||
|
addi 6,6,-29404
|
||
|
bl __fprintf_chk
|
||
|
nop
|
||
|
bl exported_function
|
||
|
nop
|
||
|
addi 1,1,112
|
||
|
ld 0,16(1)
|
||
|
ld 30,-16(1)
|
||
|
ld 31,-8(1)
|
||
|
mtlr 0
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,0,0,1,128,2,0,0
|
||
|
.size function,.-function
|
||
|
.globl kExportedString
|
||
|
.section .rodata
|
||
|
.align 4
|
||
|
.set .LANCHOR0,. + 0
|
||
|
.type kString, @object
|
||
|
.size kString, 12
|
||
|
kString:
|
||
|
.string "hello world"
|
||
|
.zero 4
|
||
|
.type kGiantArray, @object
|
||
|
.size kGiantArray, 400000
|
||
|
kGiantArray:
|
||
|
.long 1
|
||
|
.long 0
|
||
|
.zero 399992
|
||
|
.type kExportedString, @object
|
||
|
.size kExportedString, 26
|
||
|
kExportedString:
|
||
|
.string "hello world, more visibly"
|
||
|
.section .rodata.str1.8,"aMS",@progbits,1
|
||
|
.align 3
|
||
|
.LC1:
|
||
|
.string "kString is %p\n"
|
||
|
.zero 1
|
||
|
.LC2:
|
||
|
.string "kExportedString is %p\n"
|
||
|
.zero 1
|
||
|
.LC4:
|
||
|
.string "function is %p\n"
|
||
|
.LC5:
|
||
|
.string "exported_function is %p\n"
|
||
|
.zero 7
|
||
|
.LC7:
|
||
|
.string "&kString[5] is %p\n"
|
||
|
.zero 5
|
||
|
.LC8:
|
||
|
.string "&kGiantArray[0x12345] is %p\n"
|
||
|
.section ".bss"
|
||
|
.align 2
|
||
|
.type bss, @object
|
||
|
.size bss, 20
|
||
|
bss:
|
||
|
.zero 20
|
||
|
.ident "GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2"
|
||
|
.section .note.GNU-stack,"",@progbits
|