1// REQUIRES: ppc 2 3// RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o 4// RUN: ld.lld -shared %t.o -o %t.so 5// RUN: llvm-readelf --dyn-relocations %t.so | FileCheck %s -allow-empty --implicit-check-not={{.}} 6 7// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o 8// RUN: ld.lld -shared %t.o -o %t.so 9// RUN: llvm-readelf --dyn-relocations %t.so | FileCheck %s -allow-empty --implicit-check-not={{.}} 10 11 .text 12 .abiversion 2 13 .globl baz 14 .p2align 4 15 .type baz,@function 16baz: 17.Lfunc_begin0: 18.Lfunc_gep0: 19 addis 2, 12, .TOC.-.Lfunc_gep0@ha 20 addi 2, 2, .TOC.-.Lfunc_gep0@l 21.Lfunc_lep0: 22 .localentry baz, .Lfunc_lep0-.Lfunc_gep0 23 mflr 0 24 std 0, 16(1) 25 stdu 1, -64(1) 26 std 30, 48(1) 27 std 29, 40(1) 28 mr 30, 3 29 bl foo 30 mr 29, 3 31 mr 3, 30 32 bl bar 33 mullw 3, 3, 29 34 ld 30, 48(1) 35 ld 29, 40(1) 36 extsw 3, 3 37 addi 1, 1, 64 38 ld 0, 16(1) 39 mtlr 0 40 blr 41 .long 0 42 .quad 0 43.Lfunc_end0: 44 .size baz, .Lfunc_end0-.Lfunc_begin0 45 46 .p2align 4 47 .type foo,@function 48foo: 49.Lfunc_begin1: 50 mullw 3, 3, 3 51 extsw 3, 3 52 blr 53 .long 0 54 .quad 0 55.Lfunc_end1: 56 .size foo, .Lfunc_end1-.Lfunc_begin1 57 58 .p2align 4 59 .type bar,@function 60bar: 61.Lfunc_begin2: 62.Lfunc_gep2: 63 addis 2, 12, .TOC.-.Lfunc_gep2@ha 64 addi 2, 2, .TOC.-.Lfunc_gep2@l 65.Lfunc_lep2: 66 .localentry bar, .Lfunc_lep2-.Lfunc_gep2 67 mflr 0 68 std 0, 16(1) 69 stdu 1, -48(1) 70 std 30, 32(1) 71 mr 30, 3 72 bl foo 73 mullw 3, 3, 30 74 ld 30, 32(1) 75 extsw 3, 3 76 addi 1, 1, 48 77 ld 0, 16(1) 78 mtlr 0 79 blr 80 .long 0 81 .quad 0 82.Lfunc_end2: 83 .size bar, .Lfunc_end2-.Lfunc_begin2 84