|
| 1 | +; RUN: llc <%s --mtriple s390x-ibm-zos --filetype=obj | \ |
| 2 | +; RUN: od -Ax -tx1 -v | FileCheck --ignore-case %s |
| 3 | + |
| 4 | +source_filename = "test.ll" |
| 5 | + |
| 6 | +@data = hidden global i32 42, align 4 |
| 7 | +@bss = hidden global i64 0, align 8 |
| 8 | + |
| 9 | +; Header record: |
| 10 | +; 03 is prefix byte |
| 11 | +; f. is header type |
| 12 | +; .0 is flag |
| 13 | +; 00 is version |
| 14 | +; The 1 at offset 0x33 is the architecture level. |
| 15 | +; CHECK: 000000 03 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 16 | +; CHECK-NEXT: 000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 17 | +; CHECK-NEXT: 000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 18 | +; CHECK-NEXT: 000030 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 |
| 19 | +; CHECK-NEXT: 000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 20 | + |
| 21 | +; ESD record, type SD. |
| 22 | +; 03 is prefix byte |
| 23 | +; 0. is header type |
| 24 | +; .0 is flag |
| 25 | +; 00 is version |
| 26 | +; 00 is type = SD |
| 27 | +; The 01 at offset 0x57 is the id of the symbol. |
| 28 | +; The 60 at offset 0x89 is the tasking behavior. |
| 29 | +; The 01 at offset 0x91 is the binding scope. |
| 30 | +; The name begins at offset 0x97, and is test#C. |
| 31 | +; CHECK-NEXT: 0000050 03 00 00 00 [[ROOTSD:00 00 00 01]] 00 00 00 00 00 00 00 00 |
| 32 | +; CHECK-NEXT: 0000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 33 | +; CHECK-NEXT: 0000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 34 | +; CHECK-NEXT: 0000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 |
| 35 | +; CHECK-NEXT: 0000090 00 01 00 00 00 00 00 06 a3 85 a2 a3 7b c3 00 00 |
| 36 | + |
| 37 | +; ESD record, type ED. |
| 38 | +; The name is C_CODE64. |
| 39 | +; The regular expression matches the low byte of the length. |
| 40 | +; CHECK-NEXT: 00000a0 03 00 00 01 [[C_CODE64:00 00 00 02]] [[ROOTSD]] 00 00 00 00 |
| 41 | +; CHECK-NEXT: 00000b0 00 00 00 00 00 00 00 00 00 00 00 {{..}} 00 00 00 00 |
| 42 | +; CHECK-NEXT: 00000c0 00 00 00 00 00 00 00 00 01 80 00 00 00 00 00 00 |
| 43 | +; CHECK-NEXT: 00000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 0a |
| 44 | +; CHECK-NEXT: 00000e0 00 00 03 00 00 00 00 08 c3 6d c3 d6 c4 c5 f6 f4 |
| 45 | + |
| 46 | +; ESD record, type ED. |
| 47 | +; The name is C_@@QPPA2. |
| 48 | +; This record has a continuation, therefore the falg at offset 0xf1 is set. |
| 49 | +; CHECK-NEXT: 00000f0 03 01 00 01 [[C_QPPA2:00 00 00 03]] [[ROOTSD]] 00 00 00 00 |
| 50 | +; CHECK-NEXT: 0000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 51 | +; CHECK-NEXT: 0000110 00 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 |
| 52 | +; CHECK-NEXT: 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 09 |
| 53 | +; CHECK-NEXT: 0000130 00 00 03 00 00 00 00 09 c3 6d 7c 7c d8 d7 d7 c1 |
| 54 | +; |
| 55 | +; Continuation: |
| 56 | +; CHECK-NEXT: 0000140 03 02 00 f2 00 00 00 00 00 00 00 00 00 00 00 00 |
| 57 | +; CHECK-NEXT: 0000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 58 | +; CHECK-NEXT: 0000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 59 | +; CHECK-NEXT: 0000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 60 | +; CHECK-NEXT: 0000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 61 | + |
| 62 | +; ESD record, type PR. |
| 63 | +; The name is .&ppa2. |
| 64 | +; CHECK-NEXT: 0000190 03 00 00 03 [[PPA2:00 00 00 04]] [[C_QPPA2]] 00 00 00 00 |
| 65 | +; CHECK-NEXT: 00001a0 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 |
| 66 | +; CHECK-NEXT: 00001b0 00 00 00 00 00 00 00 00 03 20 00 00 00 00 00 00 |
| 67 | +; CHECK-NEXT: 00001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 68 | +; CHECK-NEXT: 00001d0 00 01 03 00 00 00 00 06 4b 50 97 97 81 f2 00 00 |
| 69 | + |
| 70 | +; ESD record, type SD. |
| 71 | +; The name is data. |
| 72 | +; CHECK-NEXT: 00001e0 03 00 00 00 [[DATA:00 00 00 05]] 00 00 00 00 00 00 00 00 |
| 73 | +; CHECK-NEXT: 00001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 74 | +; CHECK-NEXT: 0000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 75 | +; CHECK-NEXT: 0000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 76 | +; CHECK-NEXT: 0000220 00 00 00 00 00 00 00 04 84 81 a3 81 00 00 00 00 |
| 77 | + |
| 78 | +; ESD record, type ED. |
| 79 | +; The name is C_WSA64. |
| 80 | +; CHECK-NEXT: 0000230 03 00 00 01 [[DATA_WSA:00 00 00 06]] [[DATA]] 00 00 00 00 |
| 81 | +; CHECK-NEXT: 0000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 82 | +; CHECK-NEXT: 0000250 00 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 |
| 83 | +; CHECK-NEXT: 0000260 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 01 |
| 84 | +; CHECK-NEXT: 0000270 00 40 02 00 00 00 00 07 c3 6d e6 e2 c1 f6 f4 00 |
| 85 | + |
| 86 | +; ESD record, type PR. |
| 87 | +; The name is data. |
| 88 | +; CHECK-NEXT: 0000280 03 00 00 03 [[DATA_PR:00 00 00 07]] [[DATA_WSA]] 00 00 00 00 |
| 89 | +; CHECK-NEXT: 0000290 00 00 00 00 00 00 00 00 [[DATA_LEN:00 00 00 04]] 00 00 00 00 |
| 90 | +; CHECK-NEXT: 00002a0 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 |
| 91 | +; CHECK-NEXT: 00002b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |
| 92 | +; CHECK-NEXT: 00002c0 00 03 22 00 00 00 00 04 84 81 a3 81 00 00 00 00 |
| 93 | + |
| 94 | +; ESD record, type SD. |
| 95 | +; The name is bss. |
| 96 | +; CHECK-NEXT: 00002d0 03 00 00 00 [[BSS:00 00 00 08]] 00 00 00 00 00 00 00 00 |
| 97 | +; CHECK-NEXT: 00002e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 98 | +; CHECK-NEXT: 00002f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 99 | +; CHECK-NEXT: 0000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 100 | +; CHECK-NEXT: 0000310 00 00 00 00 00 00 00 03 82 a2 a2 00 00 00 00 00 |
| 101 | + |
| 102 | +; ESD record, type ED. |
| 103 | +; The name is C_WSA64. |
| 104 | +; CHECK-NEXT: 0000320 03 00 00 01 [[BSS_WSA:00 00 00 09]] [[BSS]] 00 00 00 00 |
| 105 | +; CHECK-NEXT: 0000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 106 | +; CHECK-NEXT: 0000340 00 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 |
| 107 | +; CHECK-NEXT: 0000350 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 01 |
| 108 | +; CHECK-NEXT: 0000360 00 40 03 00 00 00 00 07 c3 6d e6 e2 c1 f6 f4 00 |
| 109 | + |
| 110 | +; ESD record, type PR. |
| 111 | +; The name is bss. |
| 112 | +; CHECK-NEXT: 0000370 03 00 00 03 [[BSS_PR:00 00 00 0a]] [[BSS_WSA]] 00 00 00 00 |
| 113 | +; CHECK-NEXT: 0000380 00 00 00 00 00 00 00 00 [[BSS_LEN:00 00 00 08]] 00 00 00 00 |
| 114 | +; CHECK-NEXT: 0000390 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 |
| 115 | +; CHECK-NEXT: 00003a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |
| 116 | +; CHECK-NEXT: 00003b0 00 03 23 00 00 00 00 03 82 a2 a2 00 00 00 00 00 |
| 117 | + |
| 118 | +; ESD record, type ED. |
| 119 | +; The name is C_WSA64. |
| 120 | +; CHECK-NEXT: 00003c0 03 00 00 01 [[C_WSA64:00 00 00 0b]] [[ROOTSD]] 00 00 00 00 |
| 121 | +; CHECK-NEXT: 00003d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 122 | +; CHECK-NEXT: 00003e0 00 00 00 00 00 00 00 00 03 81 00 00 00 00 00 00 |
| 123 | +; CHECK-NEXT: 00003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 01 |
| 124 | +; CHECK-NEXT: 0000400 00 40 04 00 00 00 00 07 c3 6d e6 e2 c1 f6 f4 00 |
| 125 | + |
| 126 | +; ESD record, type PR. |
| 127 | +; The name is test#S. |
| 128 | +; CHECK-NEXT: 0000410 03 00 00 03 [[TESTS:00 00 00 0c]] [[C_WSA64]] 00 00 00 00 |
| 129 | +; CHECK-NEXT: 0000420 00 00 00 00 00 00 00 00 00 00 00 {{..}} 00 00 00 00 |
| 130 | +; CHECK-NEXT: 0000430 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 |
| 131 | +; CHECK-NEXT: 0000440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |
| 132 | +; CHECK-NEXT: 0000450 00 01 24 00 00 00 00 06 a3 85 a2 a3 7b e2 00 00 |
| 133 | + |
| 134 | +; ESD record, type ED. |
| 135 | +; The name is B_IDRL. |
| 136 | +; CHECK-NEXT: 0000460 03 00 00 01 [[BIDRL:00 00 00 0d]] [[ROOTSD]] 00 00 00 00 |
| 137 | +; CHECK-NEXT: 0000470 00 00 00 00 00 00 00 00 00 00 00 {{..}} 00 00 00 00 |
| 138 | +; CHECK-NEXT: 0000480 00 00 00 00 00 00 00 00 01 80 00 00 00 00 00 00 |
| 139 | +; CHECK-NEXT: 0000490 00 00 00 00 00 00 00 00 00 00 00 00 00 04 10 08 |
| 140 | +; CHECK-NEXT: 00004a0 00 80 03 00 00 00 00 06 c2 6d c9 c4 d9 d3 00 00 |
| 141 | + |
| 142 | +; ESD record, type LD. |
| 143 | +; The name is test#C. |
| 144 | +; CHECK-NEXT: 00004b0 03 00 00 02 [[TESTC:00 00 00 0e]] [[C_CODE64]] 00 00 00 00 |
| 145 | +; CHECK-NEXT: 00004c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 146 | +; CHECK-NEXT: 00004d0 00 00 00 00 00 00 00 00 01 00 00 00 [[TESTS]] |
| 147 | +; CHECK-NEXT: 00004e0 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 02 |
| 148 | +; CHECK-NEXT: 00004f0 00 01 20 00 00 00 00 06 a3 85 a2 a3 7b c3 00 00 |
| 149 | + |
| 150 | +; End record. |
| 151 | +; CHECK-NEXT: 0000500 03 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 152 | +; CHECK-NEXT: 0000510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 153 | +; CHECK-NEXT: 0000520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 154 | +; CHECK-NEXT: 0000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 155 | +; CHECK-NEXT: 0000540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
0 commit comments