brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 6defa4c Raw
119 lines · plain
1# REQUIRES: ppc2# RUN: split-file %s %t3 4# RUN: llvm-mc -filetype=obj -triple=powerpc64le %t/asm -o %t.o5# RUN: ld.lld -T %t/lts %t.o -o %t_le6# RUN: llvm-objdump --no-show-raw-insn -d %t_le | FileCheck %s7# RUN: llvm-readelf -s %t_le | FileCheck %s --check-prefix=SYM8 9# RUN: llvm-mc -filetype=obj -triple=powerpc64 %t/asm -o %t.o10# RUN: ld.lld -T %t/lts %t.o -o %t_be11# RUN: llvm-objdump --no-show-raw-insn -d %t_be | FileCheck %s12# RUN: llvm-readelf -s %t_be | FileCheck %s --check-prefix=SYM13 14# RUN: llvm-mc -filetype=obj -triple=powerpc64le %t/asm -o %t.o15# RUN: ld.lld -T %t/lts %t.o -o %t_le --no-power10-stubs16# RUN: llvm-objdump --no-show-raw-insn -d %t_le | FileCheck %s17# RUN: llvm-readelf -s %t_le | FileCheck %s --check-prefix=SYM18 19# SYM:      Symbol table '.symtab' contains 9 entries:20# SYM:      1: 0000000010010000     0 NOTYPE  LOCAL  DEFAULT [<other: 0x20>]   1 callee21# SYM-NEXT: 2: 0000000010020008     0 NOTYPE  LOCAL  DEFAULT                  2 caller_close22# SYM-NEXT: 3: 0000000020020008     0 NOTYPE  LOCAL  DEFAULT [<other: 0x60>]   3 caller23# SYM-NEXT: 4: 0000000520020008     0 NOTYPE  LOCAL  DEFAULT                  4 caller_far24# SYM-NEXT: 5: 0000000520028040     0 NOTYPE  LOCAL  HIDDEN                   6 .TOC.25# SYM-NEXT: 6: 0000000010020020     8 FUNC    LOCAL  DEFAULT                  2 __toc_save_callee26# SYM-NEXT: 7: 0000000020020020    32 FUNC    LOCAL  DEFAULT                  3 __toc_save_callee27# SYM-NEXT: 8: 0000000520020020    32 FUNC    LOCAL  DEFAULT                  4 __toc_save_callee28 29#--- lts30PHDRS {31  callee PT_LOAD FLAGS(0x1 | 0x4);32  close PT_LOAD FLAGS(0x1 | 0x4);33  caller PT_LOAD FLAGS(0x1 | 0x4);34  far PT_LOAD FLAGS(0x1 | 0x4);35}36SECTIONS {37  .text_callee 0x10010000 : { *(.text_callee) } :callee38  .text_caller_close 0x10020000 : { *(.text_caller_close) } :close39  .text_caller 0x20020000 : { *(.text_caller) } :caller40  .text_caller_far 0x520020000 : { *(.text_caller_far) } :far41}42 43#--- asm44# CHECK-LABEL: <callee>:45# CHECK:         blr46.section .text_callee, "ax", %progbits47callee:48  .localentry callee, 149  blr50 51# CHECK-LABEL: <caller_close>:52# CHECK:         bl 0x1002002053# CHECK-NEXT:    ld 2, 24(1)54# CHECK-NEXT:    blr55# CHECK-LABEL: <__toc_save_callee>:56# CHECK:         std 2, 24(1)57# CHECK-NEXT:    b 0x1001000058.section .text_caller_close, "ax", %progbits59.Lfunc_toc1:60  .quad .TOC.-.Lfunc_gep161caller_close:62.Lfunc_gep1:63  ld 2, .Lfunc_toc1-.Lfunc_gep1(12)64  add 2, 2, 1265.Lfunc_lep1:66  .localentry caller, .Lfunc_lep1-.Lfunc_gep167  bl callee68  nop69  blr70 71# CHECK-LABEL: <caller>:72# CHECK:         bl 0x2002002073# CHECK-NEXT:    ld 2, 24(1)74# CHECK-NEXT:    blr75# CHECK-LABEL: <__toc_save_callee>:76# CHECK:         std 2, 24(1)77# CHECK-NEXT:    addis 12, 2, -409878# CHECK-NEXT:    addi 12, 12, 3270479# CHECK-NEXT:    mtctr 1280# CHECK-NEXT:    bctr81 82.section .text_caller, "ax", %progbits83.Lfunc_toc2:84  .quad .TOC.-.Lfunc_gep285caller:86.Lfunc_gep2:87  ld 2, .Lfunc_toc2-.Lfunc_gep2(12)88  add 2, 2, 1289.Lfunc_lep2:90  .localentry caller, .Lfunc_lep2-.Lfunc_gep291  bl callee92  nop93  blr94 95# CHECK-LABEL: <caller_far>:96# CHECK:         ld 2, -8(12)97# CHECK-NEXT:    add 2, 2, 1298# CHECK-NEXT:    bl 0x52002002099# CHECK-NEXT:    ld 2, 24(1)100# CHECK-NEXT:    blr101# CHECK-LABEL: <__toc_save_callee>:102# CHECK:         std 2, 24(1)103# CHECK-NEXT:    addis 12, 2, 0104# CHECK-NEXT:    ld 12, -32760(12)105# CHECK-NEXT:    mtctr 12106# CHECK-NEXT:    bctr107.section .text_caller_far, "ax", %progbits108.Lfunc_toc3:109  .quad .TOC.-.Lfunc_gep3110caller_far:111.Lfunc_gep3:112  ld 2, .Lfunc_toc3-.Lfunc_gep3(12)113  add 2, 2, 12114.Lfunc_lep3:115  .localentry caller, .Lfunc_lep3-.Lfunc_gep3116  bl callee117  nop118  blr119