81 lines · plain
1// REQUIRES: ppc2 3// RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o4// RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %p/Inputs/ppc64-func-global-entry.s -o %t2.o5// RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %p/Inputs/ppc64-func-local-entry.s -o %t3.o6// RUN: ld.lld %t.o %t2.o %t3.o -o %t7// RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s8 9// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o10// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %p/Inputs/ppc64-func-global-entry.s -o %t2.o11// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %p/Inputs/ppc64-func-local-entry.s -o %t3.o12// RUN: ld.lld %t.o %t2.o %t3.o -o %t13// RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s14 15 .text16 .abiversion 217 .globl _start # -- Begin function _start18 .p2align 419 .type _start,@function20_start: # @_start21.Lfunc_begin0:22.Lfunc_gep0:23 addis 2, 12, .TOC.-.Lfunc_gep0@ha24 addi 2, 2, .TOC.-.Lfunc_gep0@l25.Lfunc_lep0:26 .localentry _start, .Lfunc_lep0-.Lfunc_gep027# %bb.0: # %entry28 mflr 029 std 0, 16(1)30 stdu 1, -48(1)31 li 3, 132 li 4, 133 std 30, 32(1) # 8-byte Folded Spill34 bl foo_external_same35 nop36 mr 30, 337 li 3, 238 li 4, 239 bl foo_external_diff40 nop41 addis 4, 2, .LC0@toc@ha42 add 3, 3, 3043 ld 30, 32(1) # 8-byte Folded Reload44 ld 4, .LC0@toc@l(4)45 lwz 4, 0(4)46 add 3, 3, 447 extsw 3, 348 addi 1, 1, 4849 ld 0, 16(1)50 li 0, 151 sc52 .long 053 .quad 054.Lfunc_end0:55 .size _start, .Lfunc_end0-.Lfunc_begin056 # -- End function57 .section .toc,"aw",@progbits58.LC0:59 .tc glob[TC],glob60 .type glob,@object # @glob61 .data62 .globl glob63 .p2align 264glob:65 .long 10 # 0xa66 .size glob, 467 68# Check that foo_external_diff has a global entry point and we branch to69# foo_external_diff+8. Also check that foo_external_same has no global entry70# point and we branch to start of foo_external_same.71 72// CHECK-LABEL: <_start>:73// CHECK: 100101f0: bl 0x1001028074// CHECK: 10010204: bl 0x1001025875// CHECK-LABEL: <foo_external_diff>:76// CHECK-NEXT: 10010250: addis 2, 12, 277// CHECK-NEXT: 10010254: addi 2, 2, -3269678// CHECK-NEXT: 10010258: addis 5, 2, 179// CHECK-LABEL: <foo_external_same>:80// CHECK-NEXT: 10010280: add 3, 4, 381