brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 7aad6cc Raw
70 lines · plain
1; RUN: llc -mtriple=arm64-unknown-linux-gnu %s -o - | FileCheck %s --check-prefixes=ELF2; RUN: llc -mtriple=arm64-apple-darwin %s -o - | FileCheck %s --check-prefix=MACHO3; RUN: llc -mtriple=arm64-apple-darwin %s -global-isel -o - | FileCheck %s --check-prefix=MACHO4 5define internal ptr @the_resolver() {6entry:7  ret ptr null8}9; ELF:             .type the_resolver,@function10; ELF-NEXT:    the_resolver:11 12; MACHO:           .p2align 213; MACHO-NEXT:  _the_resolver:14 15 16@global_ifunc = ifunc i32 (i32), ptr @the_resolver17; ELF:             .globl global_ifunc18; ELF-NEXT:        .type global_ifunc,@gnu_indirect_function19; ELF-NEXT:        global_ifunc = the_resolver20 21; MACHO:           .section __DATA,__data22; MACHO-NEXT:      .p2align 3, 0x023; MACHO-NEXT:  _global_ifunc.lazy_pointer:24; MACHO-NEXT:      .quad _global_ifunc.stub_helper25 26; MACHO:           .section __TEXT,__text,regular,pure_instructions27; MACHO-NEXT:      .globl _global_ifunc28; MACHO-NEXT:      .p2align 229; MACHO-NEXT:  _global_ifunc:30; MACHO-NEXT:      adrp    x16, _global_ifunc.lazy_pointer@GOTPAGE31; MACHO-NEXT:      ldr     x16, [x16, _global_ifunc.lazy_pointer@GOTPAGEOFF]32; MACHO-NEXT:      ldr     x16, [x16]33; MACHO-NEXT:      br      x1634; MACHO-NEXT:      .p2align        235; MACHO-NEXT:  _global_ifunc.stub_helper:36; MACHO-NEXT:      stp     x29, x30, [sp, #-16]!37; MACHO-NEXT:      mov     x29, sp38; MACHO-NEXT:      stp     x1, x0, [sp, #-16]!39; MACHO-NEXT:      stp     x3, x2, [sp, #-16]!40; MACHO-NEXT:      stp     x5, x4, [sp, #-16]!41; MACHO-NEXT:      stp     x7, x6, [sp, #-16]!42; MACHO-NEXT:      stp     d1, d0, [sp, #-16]!43; MACHO-NEXT:      stp     d3, d2, [sp, #-16]!44; MACHO-NEXT:      stp     d5, d4, [sp, #-16]!45; MACHO-NEXT:      stp     d7, d6, [sp, #-16]!46; MACHO-NEXT:      bl      _the_resolver47; MACHO-NEXT:      adrp    x16, _global_ifunc.lazy_pointer@GOTPAGE48; MACHO-NEXT:      ldr     x16, [x16, _global_ifunc.lazy_pointer@GOTPAGEOFF]49; MACHO-NEXT:      str     x0, [x16]50; MACHO-NEXT:      add     x16, x0, #051; MACHO-NEXT:      ldp     d7, d6, [sp], #1652; MACHO-NEXT:      ldp     d5, d4, [sp], #1653; MACHO-NEXT:      ldp     d3, d2, [sp], #1654; MACHO-NEXT:      ldp     d1, d0, [sp], #1655; MACHO-NEXT:      ldp     x7, x6, [sp], #1656; MACHO-NEXT:      ldp     x5, x4, [sp], #1657; MACHO-NEXT:      ldp     x3, x2, [sp], #1658; MACHO-NEXT:      ldp     x1, x0, [sp], #1659; MACHO-NEXT:      ldp     x29, x30, [sp], #1660; MACHO-NEXT:      br      x1661 62 63@weak_ifunc = weak ifunc i32 (i32), ptr @the_resolver64; ELF:             .type weak_ifunc,@gnu_indirect_function65; MACHO-NOT:       .weak_reference _weak_ifunc.lazy_pointer66; MACHO:       _weak_ifunc.lazy_pointer:67; MACHO:           .weak_reference _weak_ifunc68; MACHO:       _weak_ifunc:69; MACHO-NOT:       .weak_reference _weak_ifunc.stub_helper70; MACHO:       _weak_ifunc.stub_helper: