Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
      2 
      3 ; CHECK-LABEL:	.section	__LLVM_STACKMAPS,__llvm_stackmaps
      4 ; CHECK-NEXT: __LLVM_StackMaps:
      5 ; version
      6 ; CHECK-NEXT: 	.byte	3
      7 ; reserved
      8 ; CHECK-NEXT: 	.byte	0
      9 ; reserved
     10 ; CHECK-NEXT: 	.short	0
     11 ; # functions
     12 ; CHECK-NEXT: 	.long	2
     13 ; # constants
     14 ; CHECK-NEXT: 	.long	2
     15 ; # records
     16 ; CHECK-NEXT: 	.long	2
     17 ; function address & stack size
     18 ; CHECK-NEXT: 	.quad	_foo
     19 ; CHECK-NEXT: 	.quad	8
     20 ; CHECK-NEXT:   .quad	1
     21 ; function address & stack size
     22 ; CHECK-NEXT: 	.quad	_bar
     23 ; CHECK-NEXT: 	.quad	8
     24 ; CHECK-NEXT:   .quad	1
     25 
     26 ; Constants Array:
     27 ; CHECK-NEXT: 	.quad	9223372036854775807
     28 ; CHECK-NEXT: 	.quad	-9223372036854775808
     29 
     30 ; Patchpoint ID
     31 ; CHECK-NEXT: 	.quad	0
     32 ; Instruction offset
     33 ; CHECK-NEXT: 	.long	L{{.*}}-_foo
     34 ; reserved
     35 ; CHECK-NEXT: 	.short	0
     36 ; # locations
     37 ; CHECK-NEXT: 	.short	1
     38 ; ConstantIndex
     39 ; CHECK-NEXT: 	.byte	5
     40 ; reserved
     41 ; CHECK-NEXT:   .byte	0
     42 ; size
     43 ; CHECK-NEXT: 	.short	8
     44 ; Dwarf RegNum
     45 ; CHECK-NEXT: 	.short	0
     46 ; reserved
     47 ; CHECK-NEXT:   .short  0
     48 ; Offset
     49 ; CHECK-NEXT: 	.long	0
     50 ; padding
     51 ; CHECK-NEXT: 	.p2align 3
     52 ; CHECK-NEXT: 	.short	0
     53 ; NumLiveOuts
     54 ; CHECK-NEXT: 	.short	0
     55 
     56 ; CHECK-NEXT: 	.p2align	3
     57 
     58 declare void @llvm.experimental.stackmap(i64, i32, ...)
     59 
     60 define void @foo() {
     61   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0, i64 9223372036854775807)
     62   ret void
     63 }
     64 
     65 ; Patchpoint ID
     66 ; CHECK-NEXT: 	.quad	0
     67 ; Instruction Offset
     68 ; CHECK-NEXT: 	.long	L{{.*}}-_bar
     69 ; reserved
     70 ; CHECK-NEXT: 	.short	0
     71 ; # locations
     72 ; CHECK-NEXT: 	.short	1
     73 ; ConstantIndex
     74 ; CHECK-NEXT: 	.byte	5
     75 ; reserved
     76 ; CHECK-NEXT:   .byte	0
     77 ; size
     78 ; CHECK-NEXT: 	.short	8
     79 ; Dwarf RegNum
     80 ; CHECK-NEXT: 	.short	0
     81 ; reserved
     82 ; CHECK-NEXT:    .short 0
     83 ; Offset
     84 ; CHECK-NEXT: 	.long	1
     85 ; padding
     86 ; CHECK-NEXT:  .p2align 3
     87 ; CHECK-NEXT: 	.short	0
     88 ; NumLiveOuts
     89 ; CHECK-NEXT: 	.short	0
     90 
     91 
     92 define void @bar() {
     93   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0, i64 -9223372036854775808)
     94   ret void
     95 }
     96