127 lines · plain
1# REQUIRES: ppc2# RUN: echo 'SECTIONS { \3# RUN: .text_start 0x10010300 : { *(.text_start) } \4# RUN: }' > %t.script5 6# RUN: llvm-mc -filetype=obj -triple=powerpc64le %s --defsym T1=1 -o %t1.o7# RUN: llvm-mc -filetype=obj -triple=powerpc64le %s --defsym T2=1 -o %t2.o8# RUN: llvm-mc -filetype=obj -triple=powerpc64le %s --defsym T3=1 -o %t3.o9# RUN: ld.lld --shared %t1.o -o %t1.so10# RUN: ld.lld -T %t.script %t1.so %t2.o -o %t211# RUN: ld.lld -T %t.script %t1.so %t3.o -o %t312# RUN: llvm-objdump -d --no-show-raw-insn %t2 | FileCheck %s --check-prefix=T213# RUN: llvm-objdump -d --no-show-raw-insn %t3 | FileCheck %s --check-prefix=T314 15# RUN: llvm-mc -filetype=obj -triple=powerpc64 %s --defsym T1=1 -o %t1.o16# RUN: llvm-mc -filetype=obj -triple=powerpc64 %s --defsym T2=1 -o %t2.o17# RUN: llvm-mc -filetype=obj -triple=powerpc64 %s --defsym T3=1 -o %t3.o18# RUN: ld.lld --shared %t1.o -o %t1.so19# RUN: ld.lld -T %t.script %t1.so %t2.o -o %t220# RUN: ld.lld -T %t.script %t1.so %t3.o -o %t321# RUN: llvm-objdump -d --no-show-raw-insn %t2 | FileCheck %s --check-prefix=T222# RUN: llvm-objdump -d --no-show-raw-insn %t3 | FileCheck %s --check-prefix=T323 24.ifdef T125.globl callee26callee:27 blr28.endif29 30# T2-LABEL: <p9codegen>:31# T2-NEXT: 10010300: addis 2, 12, 132# T2-NEXT: 10010304: addi 2, 2, -3235233# T2-NEXT: 10010308: addis 4, 2, -134# T2-NEXT: 1001030c: lwa 3, 32396(4)35# T2-NEXT: 10010310: bl 0x1001033036# T2-NEXT: 10010314: ld 2, 24(1)37# T2-NEXT: 10010318: blr38 39# T2-LABEL: <p10codegen>:40# T2-NEXT: 1001031c: plwa 3, 16(0), 141# T2-NEXT: 10010324: bl 0x1001035042# T2-NEXT: 10010328: blr43 44# T2-LABEL: <__plt_callee>:45# T2-NEXT: 10010330: std 2, 24(1)46# T2-NEXT: 10010334: addis 12, 2, 047# T2-NEXT: 10010338: ld 12, -32744(12)48# T2-NEXT: 1001033c: mtctr 1249# T2-NEXT: 10010340: bctr50 51# T2-LABEL: <__plt_pcrel_callee>:52# T2-NEXT: 10010350: pld 12, 360(0), 153# T2-NEXT: 10010358: mtctr 1254# T2-NEXT: 1001035c: bctr55.ifdef T256.section .text_start, "ax", %progbits57p9codegen:58.Lfunc_gep0:59 addis 2, 12, .TOC.-.Lfunc_gep0@ha60 addi 2, 2, .TOC.-.Lfunc_gep0@l61.Lfunc_lep0:62 .localentry p9codegen, .Lfunc_lep0-.Lfunc_gep063 addis 4, 2, Global@toc@ha64 lwa 3, Global@toc@l(4)65 bl callee66 nop67 blr68p10codegen:69 .localentry main, 170 plwa 3, Global@PCREL(0), 171 bl callee@notoc72 blr73.globl Global74Global:75 .long 1076 .size Global, 477.endif78 79# T3-LABEL: <p10codegen>:80# T3-NEXT: 10010300: plwa 3, 44(0), 181# T3-NEXT: 10010308: bl 0x1001033082# T3-NEXT: 1001030c: blr83 84# T3-LABEL: <p9codegen>:85# T3-NEXT: 10010310: addis 2, 12, 186# T3-NEXT: 10010314: addi 2, 2, -3237687# T3-NEXT: 10010318: addis 4, 2, -188# T3-NEXT: 1001031c: lwa 3, 32404(4)89# T3-NEXT: 10010320: bl 0x1001035090# T3-NEXT: 10010324: ld 2, 24(1)91# T3-NEXT: 10010328: blr92 93# T3-LABEL: <__plt_pcrel_callee>:94# T3-NEXT: 10010330: pld 12, 384(0), 195# T3-NEXT: 10010338: mtctr 1296# T3-NEXT: 1001033c: bctr97 98# T3-LABEL: <__plt_callee>:99# T3-NEXT: 10010350: std 2, 24(1)100# T3-NEXT: 10010354: addis 12, 2, 0101# T3-NEXT: 10010358: ld 12, -32744(12)102# T3-NEXT: 1001035c: mtctr 12103# T3-NEXT: 10010360: bctr104.ifdef T3105.section .text_start, "ax", %progbits106p10codegen:107 .localentry main, 1108 plwa 3, Global@PCREL(0), 1109 bl callee@notoc110 blr111p9codegen:112.Lfunc_gep0:113 addis 2, 12, .TOC.-.Lfunc_gep0@ha114 addi 2, 2, .TOC.-.Lfunc_gep0@l115.Lfunc_lep0:116 .localentry p9codegen, .Lfunc_lep0-.Lfunc_gep0117 addis 4, 2, Global@toc@ha118 lwa 3, Global@toc@l(4)119 bl callee120 nop121 blr122.globl Global123Global:124 .long 10125 .size Global, 4126.endif127