boringssl/util/fipstools/testdata/ppc64le-Sample2/in.s
Adam Langley f64a6eeaf0 Switch to new delocate tool.
Most importantly, this version of delocate works for ppc64le. It should
also work for x86-64, but will need significant testing to make sure
that it covers all the cases that the previous delocate.go covered.

It's less stringtastic than the old code, however the parser isn't as
nice as I would have liked. I thought that the reason we put up with
AT&T syntax with Intel is so that assembly syntax could be somewhat
consistent across platforms. At least for ppc64le, that does not appear
to be the case.

Change-Id: Ic7e3c6acc3803d19f2c3ff5620c5e39703d74212
Reviewed-on: https://boringssl-review.googlesource.com/16464
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2017-05-30 18:00:16 +00:00

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