boringssl/util/fipstools/testdata/ppc64le-Sample/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

162 lines
2.7 KiB
ArmAsm

.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