2018-05-12 03:31:19 +08:00
|
|
|
// REQUIRES: ppc
|
|
|
|
|
|
|
|
// RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o
|
2018-08-31 07:01:00 +08:00
|
|
|
// RUN: ld.lld -shared %t.o -o %t.so
|
2021-07-17 01:02:47 +08:00
|
|
|
// RUN: llvm-readelf --dyn-relocations %t.so | FileCheck %s -allow-empty --implicit-check-not={{.}}
|
2018-05-12 03:31:19 +08:00
|
|
|
|
|
|
|
// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o
|
2018-08-31 07:01:00 +08:00
|
|
|
// RUN: ld.lld -shared %t.o -o %t.so
|
2021-07-17 01:02:47 +08:00
|
|
|
// RUN: llvm-readelf --dyn-relocations %t.so | FileCheck %s -allow-empty --implicit-check-not={{.}}
|
2018-05-12 03:31:19 +08:00
|
|
|
|
|
|
|
.text
|
|
|
|
.abiversion 2
|
|
|
|
.globl baz
|
|
|
|
.p2align 4
|
|
|
|
.type baz,@function
|
|
|
|
baz:
|
|
|
|
.Lfunc_begin0:
|
|
|
|
.Lfunc_gep0:
|
|
|
|
addis 2, 12, .TOC.-.Lfunc_gep0@ha
|
|
|
|
addi 2, 2, .TOC.-.Lfunc_gep0@l
|
|
|
|
.Lfunc_lep0:
|
|
|
|
.localentry baz, .Lfunc_lep0-.Lfunc_gep0
|
|
|
|
mflr 0
|
|
|
|
std 0, 16(1)
|
|
|
|
stdu 1, -64(1)
|
|
|
|
std 30, 48(1)
|
|
|
|
std 29, 40(1)
|
|
|
|
mr 30, 3
|
|
|
|
bl foo
|
|
|
|
mr 29, 3
|
|
|
|
mr 3, 30
|
|
|
|
bl bar
|
|
|
|
mullw 3, 3, 29
|
|
|
|
ld 30, 48(1)
|
|
|
|
ld 29, 40(1)
|
|
|
|
extsw 3, 3
|
|
|
|
addi 1, 1, 64
|
|
|
|
ld 0, 16(1)
|
|
|
|
mtlr 0
|
|
|
|
blr
|
|
|
|
.long 0
|
|
|
|
.quad 0
|
|
|
|
.Lfunc_end0:
|
|
|
|
.size baz, .Lfunc_end0-.Lfunc_begin0
|
|
|
|
|
|
|
|
.p2align 4
|
|
|
|
.type foo,@function
|
|
|
|
foo:
|
|
|
|
.Lfunc_begin1:
|
|
|
|
mullw 3, 3, 3
|
|
|
|
extsw 3, 3
|
|
|
|
blr
|
|
|
|
.long 0
|
|
|
|
.quad 0
|
|
|
|
.Lfunc_end1:
|
|
|
|
.size foo, .Lfunc_end1-.Lfunc_begin1
|
|
|
|
|
|
|
|
.p2align 4
|
|
|
|
.type bar,@function
|
|
|
|
bar:
|
|
|
|
.Lfunc_begin2:
|
|
|
|
.Lfunc_gep2:
|
|
|
|
addis 2, 12, .TOC.-.Lfunc_gep2@ha
|
|
|
|
addi 2, 2, .TOC.-.Lfunc_gep2@l
|
|
|
|
.Lfunc_lep2:
|
|
|
|
.localentry bar, .Lfunc_lep2-.Lfunc_gep2
|
|
|
|
mflr 0
|
|
|
|
std 0, 16(1)
|
|
|
|
stdu 1, -48(1)
|
|
|
|
std 30, 32(1)
|
|
|
|
mr 30, 3
|
|
|
|
bl foo
|
|
|
|
mullw 3, 3, 30
|
|
|
|
ld 30, 32(1)
|
|
|
|
extsw 3, 3
|
|
|
|
addi 1, 1, 48
|
|
|
|
ld 0, 16(1)
|
|
|
|
mtlr 0
|
|
|
|
blr
|
|
|
|
.long 0
|
|
|
|
.quad 0
|
|
|
|
.Lfunc_end2:
|
|
|
|
.size bar, .Lfunc_end2-.Lfunc_begin2
|