Add tests for NEON encoding of vsubhn and vrsubhn.
[oota-llvm.git] / test / MC / COFF / symbol-fragment-offset.s
1 // The purpose of this test is to see if the COFF object writer is emitting the\r
2 // proper relocations for multiple pieces of data in a single data fragment.\r
3 \r
4 // RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s\r
5 // I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s\r
6 \r
7 .def     _main;\r
8         .scl    2;\r
9         .type   32;\r
10         .endef\r
11         .text\r
12         .globl  _main\r
13         .align  16, 0x90\r
14 _main:                                  # @main\r
15 # BB#0:                                 # %entry\r
16         subl    $4, %esp\r
17         movl    $L_.str0, (%esp)\r
18         calll   _printf\r
19         movl    $L_.str1, (%esp)\r
20         calll   _puts\r
21         movl    $L_.str2, (%esp)\r
22         calll   _puts\r
23         xorl    %eax, %eax\r
24         addl    $4, %esp\r
25         ret\r
26 \r
27         .data\r
28 L_.str0:                                # @.str0\r
29         .asciz   "Hello "\r
30 \r
31 L_.str1:                                # @.str1\r
32         .asciz   "World!"\r
33 \r
34         .align  16                      # @.str2\r
35 L_.str2:\r
36         .asciz   "I'm The Last Line."\r
37 \r
38 // CHECK: {\r
39 // CHECK:   MachineType              = IMAGE_FILE_MACHINE_I386 (0x14C)\r
40 // CHECK:   NumberOfSections         = 2\r
41 // CHECK:   TimeDateStamp            = {{[0-9]+}}\r
42 // CHECK:   PointerToSymbolTable     = 0x{{[0-9A-F]+}}\r
43 // CHECK:   NumberOfSymbols          = 7\r
44 // CHECK:   SizeOfOptionalHeader     = 0\r
45 // CHECK:   Characteristics          = 0x0\r
46 // CHECK:   Sections                 = [\r
47 // CHECK:     1 = {\r
48 // CHECK:       Name                     = .text\r
49 // CHECK:       VirtualSize              = 0\r
50 // CHECK:       VirtualAddress           = 0\r
51 // CHECK:       SizeOfRawData            = {{[0-9]+}}\r
52 // CHECK:       PointerToRawData         = 0x{{[0-9A-F]+}}\r
53 // CHECK:       PointerToRelocations     = 0x{{[0-9A-F]+}}\r
54 // CHECK:       PointerToLineNumbers     = 0x0\r
55 // CHECK:       NumberOfRelocations      = 6\r
56 // CHECK:       NumberOfLineNumbers      = 0\r
57 // CHECK:       Charateristics           = 0x60500020\r
58 // CHECK:         IMAGE_SCN_CNT_CODE\r
59 // CHECK:         IMAGE_SCN_ALIGN_16BYTES\r
60 // CHECK:         IMAGE_SCN_MEM_EXECUTE\r
61 // CHECK:         IMAGE_SCN_MEM_READ\r
62 // CHECK:       SectionData              =\r
63 // CHECK:         83 EC 04 C7 04 24 00 00 - 00 00 E8 00 00 00 00 C7 |.....$..........|\r
64 // CHECK:         04 24 07 00 00 00 E8 00 - 00 00 00 C7 04 24 10 00 |.$...........$..|\r
65 // CHECK:         00 00 E8 00 00 00 00 31 - C0 83 C4 04 C3 00 00 00 |.......1........|\r
66 // CHECK:       Relocations              = [\r
67 // CHECK:         0 = {\r
68 // CHECK:           VirtualAddress           = 0x6\r
69 // CHECK:           SymbolTableIndex         = 2\r
70 // CHECK:           Type                     = IMAGE_REL_I386_DIR32 (6)\r
71 // CHECK:           SymbolName               = .data\r
72 // CHECK:         }\r
73 // CHECK:         1 = {\r
74 // CHECK:           VirtualAddress           = 0xB\r
75 // CHECK:           SymbolTableIndex         = 5\r
76 // CHECK:           Type                     = IMAGE_REL_I386_REL32 (20)\r
77 // CHECK:           SymbolName               = _printf\r
78 // CHECK:         }\r
79 // CHECK:         2 = {\r
80 // CHECK:           VirtualAddress           = 0x12\r
81 // CHECK:           SymbolTableIndex         = 2\r
82 // CHECK:           Type                     = IMAGE_REL_I386_DIR32 (6)\r
83 // CHECK:           SymbolName               = .data\r
84 // CHECK:         }\r
85 // CHECK:         3 = {\r
86 // CHECK:           VirtualAddress           = 0x17\r
87 // CHECK:           SymbolTableIndex         = 6\r
88 // CHECK:           Type                     = IMAGE_REL_I386_REL32 (20)\r
89 // CHECK:           SymbolName               = _puts\r
90 // CHECK:         }\r
91 // CHECK:         4 = {\r
92 // CHECK:           VirtualAddress           = 0x1E\r
93 // CHECK:           SymbolTableIndex         = 2\r
94 // CHECK:           Type                     = IMAGE_REL_I386_DIR32 (6)\r
95 // CHECK:           SymbolName               = .data\r
96 // CHECK:         }\r
97 // CHECK:         5 = {\r
98 // CHECK:           VirtualAddress           = 0x23\r
99 // CHECK:           SymbolTableIndex         = 6\r
100 // CHECK:           Type                     = IMAGE_REL_I386_REL32 (20)\r
101 // CHECK:           SymbolName               = _puts\r
102 // CHECK:         }\r
103 // CHECK:       ]\r
104 // CHECK:     }\r
105 // CHECK:     2 = {\r
106 // CHECK:       Name                     = .data\r
107 // CHECK:       VirtualSize              = 0\r
108 // CHECK:       VirtualAddress           = 0\r
109 // CHECK:       SizeOfRawData            = {{[0-9]+}}\r
110 // CHECK:       PointerToRawData         = 0x{{[0-9A-F]+}}\r
111 // CHECK:       PointerToRelocations     = 0x0\r
112 // CHECK:       PointerToLineNumbers     = 0x0\r
113 // CHECK:       NumberOfRelocations      = 0\r
114 // CHECK:       NumberOfLineNumbers      = 0\r
115 // CHECK:       Charateristics           = 0xC0500040\r
116 // CHECK:         IMAGE_SCN_CNT_INITIALIZED_DATA\r
117 // CHECK:         IMAGE_SCN_ALIGN_16BYTES\r
118 // CHECK:         IMAGE_SCN_MEM_READ\r
119 // CHECK:         IMAGE_SCN_MEM_WRITE\r
120 // CHECK:       SectionData              =\r
121 // CHECK:         48 65 6C 6C 6F 20 00 57 - 6F 72 6C 64 21 00 00 00 |Hello .World!...|\r
122 // CHECK:         49 27 6D 20 54 68 65 20 - 4C 61 73 74 20 4C 69 6E |I'm The Last Lin|\r
123 // CHECK:         65 2E 00                                          |e..|\r
124 // CHECK:       Relocations              = None\r
125 // CHECK:     }\r
126 // CHECK:   ]\r
127 // CHECK:   Symbols                  = [\r
128 // CHECK:     0 = {\r
129 // CHECK:       Name                     = .text\r
130 // CHECK:       Value                    = 0\r
131 // CHECK:       SectionNumber            = 1\r
132 // CHECK:       SimpleType               = IMAGE_SYM_TYPE_NULL (0)\r
133 // CHECK:       ComplexType              = IMAGE_SYM_DTYPE_NULL (0)\r
134 // CHECK:       StorageClass             = IMAGE_SYM_CLASS_STATIC (3)\r
135 // CHECK:       NumberOfAuxSymbols       = 1\r
136 // CHECK:       AuxillaryData            =\r
137 // CHECK:         30 00 00 00 06 00 00 00 - 00 00 00 00 01 00 00 00 |0...............|\r
138 // CHECK:         00 00                                             |..|\r
139 \r
140 // CHECK:     }\r
141 // CHECK:     2 = {\r
142 // CHECK:       Name                     = .data\r
143 // CHECK:       Value                    = 0\r
144 // CHECK:       SectionNumber            = 2\r
145 // CHECK:       SimpleType               = IMAGE_SYM_TYPE_NULL (0)\r
146 // CHECK:       ComplexType              = IMAGE_SYM_DTYPE_NULL (0)\r
147 // CHECK:       StorageClass             = IMAGE_SYM_CLASS_STATIC (3)\r
148 // CHECK:       NumberOfAuxSymbols       = 1\r
149 // CHECK:       AuxillaryData            =\r
150 // CHECK:         23 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |#...............|\r
151 // CHECK:         00 00                                             |..|\r
152 \r
153 // CHECK:     }\r
154 // CHECK:     4 = {\r
155 // CHECK:       Name                     = _main\r
156 // CHECK:       Value                    = 0\r
157 // CHECK:       SectionNumber            = 1\r
158 // CHECK:       SimpleType               = IMAGE_SYM_TYPE_NULL (0)\r
159 // CHECK:       ComplexType              = IMAGE_SYM_DTYPE_FUNCTION (2)\r
160 // CHECK:       StorageClass             = IMAGE_SYM_CLASS_EXTERNAL (2)\r
161 // CHECK:       NumberOfAuxSymbols       = 0\r
162 // CHECK:       AuxillaryData            =\r
163 \r
164 // CHECK:     5 = {\r
165 // CHECK:       Name                     = _printf\r
166 // CHECK:       Value                    = 0\r
167 // CHECK:       SectionNumber            = 0\r
168 // CHECK:       SimpleType               = IMAGE_SYM_TYPE_NULL (0)\r
169 // CHECK:       ComplexType              = IMAGE_SYM_DTYPE_NULL (0)\r
170 // CHECK:       StorageClass             = IMAGE_SYM_CLASS_EXTERNAL (2)\r
171 // CHECK:       NumberOfAuxSymbols       = 0\r
172 // CHECK:       AuxillaryData            =\r
173 \r
174 // CHECK:     }\r
175 // CHECK:     6 = {\r
176 // CHECK:       Name                     = _puts\r
177 // CHECK:       Value                    = 0\r
178 // CHECK:       SectionNumber            = 0\r
179 // CHECK:       SimpleType               = IMAGE_SYM_TYPE_NULL (0)\r
180 // CHECK:       ComplexType              = IMAGE_SYM_DTYPE_NULL (0)\r
181 // CHECK:       StorageClass             = IMAGE_SYM_CLASS_EXTERNAL (2)\r
182 // CHECK:       NumberOfAuxSymbols       = 0\r
183 // CHECK:       AuxillaryData            =\r
184 \r
185 // CHECK:     }\r
186 // CHECK:   ]\r
187 // CHECK: }\r