1// REQUIRES: x86-registered-target 2// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t.o 3 4// RUN: llvm-readobj --notes %t.o | FileCheck %s --check-prefix=LLVM 5// RUN: llvm-readelf --notes %t.o | FileCheck %s --check-prefix=GNU 6 7// GNU: Displaying notes found in: .note.no.desc 8// GNU-NEXT: Owner Data size Description 9// GNU-NEXT: AMD 0x00000000 NT_AMD_HSA_METADATA (AMD HSA Metadata) 10// GNU-NEXT: AMD HSA Metadata: 11// GNU-NEXT: {{^ $}} 12// GNU-NEXT: AMD 0x00000000 NT_AMD_HSA_ISA_NAME (AMD HSA ISA Name) 13// GNU-NEXT: AMD HSA ISA Name: 14// GNU-NEXT: {{^ $}} 15// GNU-EMPTY: 16// GNU-NEXT: Displaying notes found in: .note.desc 17// GNU-NEXT: Owner Data size Description 18// GNU-NEXT: AMD 0x0000000a NT_AMD_HSA_METADATA (AMD HSA Metadata) 19// GNU-NEXT: AMD HSA Metadata: 20// GNU-NEXT: meta_blah 21// GNU-NEXT: AMD 0x00000009 NT_AMD_HSA_ISA_NAME (AMD HSA ISA Name) 22// GNU-NEXT: AMD HSA ISA Name: 23// GNU-NEXT: isa_blah 24// GNU-EMPTY: 25// GNU-NEXT: Displaying notes found in: .note.other 26// GNU-NEXT: Owner Data size Description 27// GNU-NEXT: AMD 0x00000000 NT_AMD_PAL_METADATA (AMD PAL Metadata) 28// GNU-NEXT: AMD PAL Metadata: 29// GNU-NEXT: {{^ $}} 30// GNU-EMPTY: 31// GNU-NEXT: Displaying notes found in: .note.unknown 32// GNU-NEXT: Owner Data size Description 33// GNU-NEXT: AMD 0x00000007 Unknown note type: (0x000004d2) 34// GNU-NEXT: description data: 61 62 63 64 65 66 00 35// GNU-EMPTY: 36 37// LLVM: Notes [ 38// LLVM-NEXT: NoteSection { 39// LLVM-NEXT: Name: .note.no.desc 40// LLVM-NEXT: Offset: 41// LLVM-NEXT: Size: 42// LLVM-NEXT: Note { 43// LLVM-NEXT: Owner: AMD 44// LLVM-NEXT: Data size: 0x0 45// LLVM-NEXT: Type: NT_AMD_HSA_METADATA (AMD HSA Metadata) 46// LLVM-NEXT: AMD HSA Metadata: 47// LLVM-NEXT: } 48// LLVM-NEXT: Note { 49// LLVM-NEXT: Owner: AMD 50// LLVM-NEXT: Data size: 0x0 51// LLVM-NEXT: Type: NT_AMD_HSA_ISA_NAME (AMD HSA ISA Name) 52// LLVM-NEXT: AMD HSA ISA Name: 53// LLVM-NEXT: } 54// LLVM-NEXT: } 55// LLVM-NEXT: NoteSection { 56// LLVM-NEXT: Name: .note.desc 57// LLVM-NEXT: Offset: 58// LLVM-NEXT: Size: 59// LLVM-NEXT: Note { 60// LLVM-NEXT: Owner: AMD 61// LLVM-NEXT: Data size: 0xA 62// LLVM-NEXT: Type: NT_AMD_HSA_METADATA (AMD HSA Metadata) 63// LLVM-NEXT: AMD HSA Metadata: meta_blah 64// LLVM-NEXT: } 65// LLVM-NEXT: Note { 66// LLVM-NEXT: Owner: AMD 67// LLVM-NEXT: Data size: 0x9 68// LLVM-NEXT: Type: NT_AMD_HSA_ISA_NAME (AMD HSA ISA Name) 69// LLVM-NEXT: AMD HSA ISA Name: isa_blah 70// LLVM-NEXT: } 71// LLVM-NEXT: } 72// LLVM-NEXT: NoteSection { 73// LLVM-NEXT: Name: .note.other 74// LLVM-NEXT: Offset: 75// LLVM-NEXT: Size: 76// LLVM-NEXT: Note { 77// LLVM-NEXT: Owner: AMD 78// LLVM-NEXT: Data size: 0x0 79// LLVM-NEXT: Type: NT_AMD_PAL_METADATA (AMD PAL Metadata) 80// LLVM-NEXT: AMD PAL Metadata: 81// LLVM-NEXT: } 82// LLVM-NEXT: } 83// LLVM-NEXT: NoteSection { 84// LLVM-NEXT: Name: .note.unknown 85// LLVM-NEXT: Offset: 86// LLVM-NEXT: Size: 87// LLVM-NEXT: Note { 88// LLVM-NEXT: Owner: AMD 89// LLVM-NEXT: Data size: 0x7 90// LLVM-NEXT: Type: Unknown (0x000004d2) 91// LLVM-NEXT: Description data ( 92// LLVM-NEXT: 0000: 61626364 656600 |abcdef.| 93// LLVM-NEXT: ) 94// LLVM-NEXT: } 95// LLVM-NEXT: } 96// LLVM-NEXT: ] 97 98.section ".note.no.desc", "a" 99 .align 4 100 .long 4 /* namesz */ 101 .long 0 /* descsz */ 102 .long 10 /* type = NT_AMD_HSA_METADATA */ 103 .asciz "AMD" 104 .long 4 /* namesz */ 105 .long 0 /* descsz */ 106 .long 11 /* type = NT_AMD_HSA_ISA_NAME */ 107 .asciz "AMD" 108.section ".note.desc", "a" 109 .align 4 110 .long 4 /* namesz */ 111 .long end.meta - begin.meta /* descsz */ 112 .long 10 /* type = NT_AMD_HSA_METADATA */ 113 .asciz "AMD" 114begin.meta: 115 .asciz "meta_blah" 116end.meta: 117 .align 4 118 .long 4 /* namesz */ 119 .long end.isa - begin.isa /* descsz */ 120 .long 11 /* type = NT_AMD_HSA_ISA_NAME */ 121 .asciz "AMD" 122begin.isa: 123 .asciz "isa_blah" 124end.isa: 125 .align 4 126.section ".note.other", "a" 127 .align 4 128 .long 4 /* namesz */ 129 .long 0 /* descsz */ 130 .long 12 /* type = NT_AMD_PAL_METADATA */ 131 .asciz "AMD" 132.section ".note.unknown", "a" 133 .align 4 134 .long 4 /* namesz */ 135 .long end.unknown_data - begin.unknown_data /* descsz */ 136 .long 1234 /* type = unknown */ 137 .asciz "AMD" 138begin.unknown_data: 139 .asciz "abcdef" 140end.unknown_data: 141 .align 4 142