• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -filetype=asm -o - -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s
2; RUN: llc -filetype=asm -o - -mtriple=powerpc64le-unknown-linux-gnu \
3; RUN:    -relocation-model=pic < %s | FileCheck %s
4
5define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" {
6; CHECK-LABEL: foo:
7; CHECK-NEXT:  .Lfunc_begin0:
8; CHECK-LABEL: .Ltmp0:
9; CHECK:              b .Ltmp1
10; CHECK-NEXT:         nop
11; CHECK-NEXT:         std 0, -8(1)
12; CHECK-NEXT:         mflr 0
13; CHECK-NEXT:         bl __xray_FunctionEntry
14; CHECK-NEXT:         nop
15; CHECK-NEXT:         mtlr 0
16; CHECK-LABEL: .Ltmp1:
17  ret i32 0
18; CHECK-LABEL: .Ltmp2:
19; CHECK:              blr
20; CHECK-NEXT:         nop
21; CHECK-NEXT:         std 0, -8(1)
22; CHECK-NEXT:         mflr 0
23; CHECK-NEXT:         bl __xray_FunctionExit
24; CHECK-NEXT:         nop
25; CHECK-NEXT:         mtlr 0
26}
27; CHECK-LABEL: xray_instr_map,"ao",@progbits,foo{{$}}
28; CHECK:      .Lxray_sleds_start0:
29; CHECK-NEXT: .Ltmp3:
30; CHECK-NEXT:         .quad   .Ltmp0-.Ltmp3
31; CHECK-NEXT:         .quad   .Lfunc_begin0-(.Ltmp3+8)
32; CHECK-NEXT:         .byte   0x00
33; CHECK-NEXT:         .byte   0x01
34; CHECK-NEXT:         .byte   0x02
35; CHECK-NEXT:         .space  13
36; CHECK-NEXT: .Ltmp4:
37; CHECK-NEXT:         .quad   .Ltmp2-.Ltmp4
38; CHECK-NEXT:         .quad   .Lfunc_begin0-(.Ltmp4+8)
39; CHECK-NEXT:         .byte   0x01
40; CHECK-NEXT:         .byte   0x01
41; CHECK-NEXT:         .byte   0x02
42; CHECK-NEXT:         .space  13
43; CHECK-NEXT: .Lxray_sleds_end0:
44; CHECK-LABEL: xray_fn_idx,"awo",@progbits,foo{{$}}
45; CHECK:              .p2align        4
46; CHECK-NEXT:         .quad   .Lxray_sleds_start0
47; CHECK-NEXT:         .quad   .Lxray_sleds_end0
48; CHECK-NEXT:         .text
49