Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Side by Side Diff: tests_lit/assembler/arm32/ldrex-strex.ll

Issue 1678133003: Subzero: Fix trailing whitespace errors. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Rebase Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests_lit/assembler/arm32/ldr-str-more.ll ('k') | tests_lit/assembler/arm32/load-store.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Tests assembly of ldrex and strex instructions 1 ; Tests assembly of ldrex and strex instructions
2 2
3 ; REQUIRES: allow_dump 3 ; REQUIRES: allow_dump
4 4
5 ; Compile using standalone assembler. 5 ; Compile using standalone assembler.
6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \ 6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \
7 ; RUN: | FileCheck %s --check-prefix=ASM 7 ; RUN: | FileCheck %s --check-prefix=ASM
8 8
9 ; Show bytes in assembled standalone code. 9 ; Show bytes in assembled standalone code.
10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ 10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
(...skipping 25 matching lines...) Expand all
36 ; IASM-NEXT:.LtestI8Form$entry: 36 ; IASM-NEXT:.LtestI8Form$entry:
37 37
38 ; ASM-NEXT: sub sp, sp, #28 38 ; ASM-NEXT: sub sp, sp, #28
39 ; DIS-NEXT: 0: e24dd01c 39 ; DIS-NEXT: 0: e24dd01c
40 ; IASM-NEXT: .byte 0x1c 40 ; IASM-NEXT: .byte 0x1c
41 ; IASM-NEXT: .byte 0xd0 41 ; IASM-NEXT: .byte 0xd0
42 ; IASM-NEXT: .byte 0x4d 42 ; IASM-NEXT: .byte 0x4d
43 ; IASM-NEXT: .byte 0xe2 43 ; IASM-NEXT: .byte 0xe2
44 44
45 ; ASM-NEXT: str r0, [sp, #24] 45 ; ASM-NEXT: str r0, [sp, #24]
46 ; ASM-NEXT: # [sp, #24] = def.pseudo 46 ; ASM-NEXT: # [sp, #24] = def.pseudo
47 ; DIS-NEXT: 4: e58d0018 47 ; DIS-NEXT: 4: e58d0018
48 ; IASM-NEXT: .byte 0x18 48 ; IASM-NEXT: .byte 0x18
49 ; IASM-NEXT: .byte 0x0 49 ; IASM-NEXT: .byte 0x0
50 ; IASM-NEXT: .byte 0x8d 50 ; IASM-NEXT: .byte 0x8d
51 ; IASM-NEXT: .byte 0xe5 51 ; IASM-NEXT: .byte 0xe5
52 52
53 ; ASM-NEXT: str r1, [sp, #20] 53 ; ASM-NEXT: str r1, [sp, #20]
54 ; ASM-NEXT: # [sp, #20] = def.pseudo 54 ; ASM-NEXT: # [sp, #20] = def.pseudo
55 ; DIS-NEXT: 8: e58d1014 55 ; DIS-NEXT: 8: e58d1014
56 ; IASM-NEXT: .byte 0x14 56 ; IASM-NEXT: .byte 0x14
57 ; IASM-NEXT: .byte 0x10 57 ; IASM-NEXT: .byte 0x10
58 ; IASM-NEXT: .byte 0x8d 58 ; IASM-NEXT: .byte 0x8d
59 ; IASM-NEXT: .byte 0xe5 59 ; IASM-NEXT: .byte 0xe5
60 60
61 %ptr.asptr = inttoptr i32 %ptr to i8* 61 %ptr.asptr = inttoptr i32 %ptr to i8*
62 %a.arg_trunc = trunc i32 %a to i8 62 %a.arg_trunc = trunc i32 %a to i8
63 63
64 ; ASM-NEXT: ldr r0, [sp, #20] 64 ; ASM-NEXT: ldr r0, [sp, #20]
65 ; DIS-NEXT: c: e59d0014 65 ; DIS-NEXT: c: e59d0014
66 ; IASM-NEXT: .byte 0x14 66 ; IASM-NEXT: .byte 0x14
67 ; IASM-NEXT: .byte 0x0 67 ; IASM-NEXT: .byte 0x0
68 ; IASM-NEXT: .byte 0x9d 68 ; IASM-NEXT: .byte 0x9d
69 ; IASM-NEXT: .byte 0xe5 69 ; IASM-NEXT: .byte 0xe5
70 70
71 ; ASM-NEXT: strb r0, [sp, #16] 71 ; ASM-NEXT: strb r0, [sp, #16]
72 ; DIS-NEXT: 10: e5cd0010 72 ; DIS-NEXT: 10: e5cd0010
73 ; ASM-NEXT: # [sp, #16] = def.pseudo 73 ; ASM-NEXT: # [sp, #16] = def.pseudo
74 ; IASM-NEXT: .byte 0x10 74 ; IASM-NEXT: .byte 0x10
75 ; IASM-NEXT: .byte 0x0 75 ; IASM-NEXT: .byte 0x0
76 ; IASM-NEXT: .byte 0xcd 76 ; IASM-NEXT: .byte 0xcd
77 ; IASM-NEXT: .byte 0xe5 77 ; IASM-NEXT: .byte 0xe5
78 78
79 %v = call i8 @llvm.nacl.atomic.rmw.i8(i32 1, i8* %ptr.asptr, 79 %v = call i8 @llvm.nacl.atomic.rmw.i8(i32 1, i8* %ptr.asptr,
80 i8 %a.arg_trunc, i32 6) 80 i8 %a.arg_trunc, i32 6)
81 81
82 ; ASM-NEXT: ldrb r0, [sp, #16] 82 ; ASM-NEXT: ldrb r0, [sp, #16]
83 ; DIS-NEXT: 14: e5dd0010 83 ; DIS-NEXT: 14: e5dd0010
84 ; IASM-NEXT: .byte 0x10 84 ; IASM-NEXT: .byte 0x10
85 ; IASM-NEXT: .byte 0x0 85 ; IASM-NEXT: .byte 0x0
86 ; IASM-NEXT: .byte 0xdd 86 ; IASM-NEXT: .byte 0xdd
87 ; IASM-NEXT: .byte 0xe5 87 ; IASM-NEXT: .byte 0xe5
88 88
89 ; ASM-NEXT: strb r0, [sp, #4] 89 ; ASM-NEXT: strb r0, [sp, #4]
90 ; ASM-NEXT: # [sp, #4] = def.pseudo 90 ; ASM-NEXT: # [sp, #4] = def.pseudo
91 ; DIS-NEXT: 18: e5cd0004 91 ; DIS-NEXT: 18: e5cd0004
92 ; IASM-NEXT: .byte 0x4 92 ; IASM-NEXT: .byte 0x4
93 ; IASM-NEXT: .byte 0x0 93 ; IASM-NEXT: .byte 0x0
94 ; IASM-NEXT: .byte 0xcd 94 ; IASM-NEXT: .byte 0xcd
95 ; IASM-NEXT: .byte 0xe5 95 ; IASM-NEXT: .byte 0xe5
96 96
97 ; ASM-NEXT: ldr r0, [sp, #24] 97 ; ASM-NEXT: ldr r0, [sp, #24]
98 ; DIS-NEXT: 1c: e59d0018 98 ; DIS-NEXT: 1c: e59d0018
99 ; IASM-NEXT: .byte 0x18 99 ; IASM-NEXT: .byte 0x18
100 ; IASM-NEXT: .byte 0x0 100 ; IASM-NEXT: .byte 0x0
101 ; IASM-NEXT: .byte 0x9d 101 ; IASM-NEXT: .byte 0x9d
102 ; IASM-NEXT: .byte 0xe5 102 ; IASM-NEXT: .byte 0xe5
103 103
104 ; ASM-NEXT: str r0, [sp] 104 ; ASM-NEXT: str r0, [sp]
105 ; ASM-NEXT: # [sp] = def.pseudo 105 ; ASM-NEXT: # [sp] = def.pseudo
106 ; DIS-NEXT: 20: e58d0000 106 ; DIS-NEXT: 20: e58d0000
107 ; IASM-NEXT: .byte 0x0 107 ; IASM-NEXT: .byte 0x0
108 ; IASM-NEXT: .byte 0x0 108 ; IASM-NEXT: .byte 0x0
109 ; IASM-NEXT: .byte 0x8d 109 ; IASM-NEXT: .byte 0x8d
110 ; IASM-NEXT: .byte 0xe5 110 ; IASM-NEXT: .byte 0xe5
111 111
112 ; ASM-NEXT: dmb sy 112 ; ASM-NEXT: dmb sy
113 ; DIS-NEXT: 24: f57ff05f 113 ; DIS-NEXT: 24: f57ff05f
114 ; IASM-NEXT: .byte 0x5f 114 ; IASM-NEXT: .byte 0x5f
115 ; IASM-NEXT: .byte 0xf0 115 ; IASM-NEXT: .byte 0xf0
(...skipping 26 matching lines...) Expand all
142 142
143 ; ***** Example of ldrexb ***** 143 ; ***** Example of ldrexb *****
144 ; ASM-NEXT: ldrexb r2, [r0] 144 ; ASM-NEXT: ldrexb r2, [r0]
145 ; DIS-NEXT: 34: e1d02f9f 145 ; DIS-NEXT: 34: e1d02f9f
146 ; IASM-NEXT: .byte 0x9f 146 ; IASM-NEXT: .byte 0x9f
147 ; IASM-NEXT: .byte 0x2f 147 ; IASM-NEXT: .byte 0x2f
148 ; IASM-NEXT: .byte 0xd0 148 ; IASM-NEXT: .byte 0xd0
149 ; IASM-NEXT: .byte 0xe1 149 ; IASM-NEXT: .byte 0xe1
150 150
151 ; ASM-NEXT: add r1, r2, r1 151 ; ASM-NEXT: add r1, r2, r1
152 ; ASM-NEXT: # r3 = def.pseudo 152 ; ASM-NEXT: # r3 = def.pseudo
153 ; DIS-NEXT: 38: e0821001 153 ; DIS-NEXT: 38: e0821001
154 ; IASM-NEXT: .byte 0x1 154 ; IASM-NEXT: .byte 0x1
155 ; IASM-NEXT: .byte 0x10 155 ; IASM-NEXT: .byte 0x10
156 ; IASM-NEXT: .byte 0x82 156 ; IASM-NEXT: .byte 0x82
157 ; IASM-NEXT: .byte 0xe0 157 ; IASM-NEXT: .byte 0xe0
158 158
159 ; ***** Example of strexb ***** 159 ; ***** Example of strexb *****
160 ; ASM-NEXT: strexb r3, r1, [r0] 160 ; ASM-NEXT: strexb r3, r1, [r0]
161 ; DIS-NEXT: 3c: e1c03f91 161 ; DIS-NEXT: 3c: e1c03f91
162 ; IASM-NEXT: .byte 0x91 162 ; IASM-NEXT: .byte 0x91
(...skipping 15 matching lines...) Expand all
178 ; IASM-NEXT:.LtestI16Form$entry: 178 ; IASM-NEXT:.LtestI16Form$entry:
179 179
180 ; ASM-NEXT: sub sp, sp, #28 180 ; ASM-NEXT: sub sp, sp, #28
181 ; DIS-NEXT: 70: e24dd01c 181 ; DIS-NEXT: 70: e24dd01c
182 ; IASM-NEXT: .byte 0x1c 182 ; IASM-NEXT: .byte 0x1c
183 ; IASM-NEXT: .byte 0xd0 183 ; IASM-NEXT: .byte 0xd0
184 ; IASM-NEXT: .byte 0x4d 184 ; IASM-NEXT: .byte 0x4d
185 ; IASM-NEXT: .byte 0xe2 185 ; IASM-NEXT: .byte 0xe2
186 186
187 ; ASM-NEXT: str r0, [sp, #24] 187 ; ASM-NEXT: str r0, [sp, #24]
188 ; ASM-NEXT: # [sp, #24] = def.pseudo 188 ; ASM-NEXT: # [sp, #24] = def.pseudo
189 ; DIS-NEXT: 74: e58d0018 189 ; DIS-NEXT: 74: e58d0018
190 ; IASM-NEXT: .byte 0x18 190 ; IASM-NEXT: .byte 0x18
191 ; IASM-NEXT: .byte 0x0 191 ; IASM-NEXT: .byte 0x0
192 ; IASM-NEXT: .byte 0x8d 192 ; IASM-NEXT: .byte 0x8d
193 ; IASM-NEXT: .byte 0xe5 193 ; IASM-NEXT: .byte 0xe5
194 194
195 ; ASM-NEXT: str r1, [sp, #20] 195 ; ASM-NEXT: str r1, [sp, #20]
196 ; ASM-NEXT: # [sp, #20] = def.pseudo 196 ; ASM-NEXT: # [sp, #20] = def.pseudo
197 ; DIS-NEXT: 78: e58d1014 197 ; DIS-NEXT: 78: e58d1014
198 ; IASM-NEXT: .byte 0x14 198 ; IASM-NEXT: .byte 0x14
199 ; IASM-NEXT: .byte 0x10 199 ; IASM-NEXT: .byte 0x10
200 ; IASM-NEXT: .byte 0x8d 200 ; IASM-NEXT: .byte 0x8d
201 ; IASM-NEXT: .byte 0xe5 201 ; IASM-NEXT: .byte 0xe5
202 202
203 %ptr.asptr = inttoptr i32 %ptr to i16* 203 %ptr.asptr = inttoptr i32 %ptr to i16*
204 %a.arg_trunc = trunc i32 %a to i16 204 %a.arg_trunc = trunc i32 %a to i16
205 205
206 ; ASM-NEXT: ldr r0, [sp, #20] 206 ; ASM-NEXT: ldr r0, [sp, #20]
207 ; DIS-NEXT: 7c: e59d0014 207 ; DIS-NEXT: 7c: e59d0014
208 ; IASM-NEXT: .byte 0x14 208 ; IASM-NEXT: .byte 0x14
209 ; IASM-NEXT: .byte 0x0 209 ; IASM-NEXT: .byte 0x0
210 ; IASM-NEXT: .byte 0x9d 210 ; IASM-NEXT: .byte 0x9d
211 ; IASM-NEXT: .byte 0xe5 211 ; IASM-NEXT: .byte 0xe5
212 212
213 ; ASM-NEXT: strh r0, [sp, #16] 213 ; ASM-NEXT: strh r0, [sp, #16]
214 ; ASM-NEXT: # [sp, #16] = def.pseudo 214 ; ASM-NEXT: # [sp, #16] = def.pseudo
215 ; DIS-NEXT: 80: e1cd01b0 215 ; DIS-NEXT: 80: e1cd01b0
216 ; IASM-NEXT: .byte 0xb0 216 ; IASM-NEXT: .byte 0xb0
217 ; IASM-NEXT: .byte 0x1 217 ; IASM-NEXT: .byte 0x1
218 ; IASM-NEXT: .byte 0xcd 218 ; IASM-NEXT: .byte 0xcd
219 ; IASM-NEXT: .byte 0xe1 219 ; IASM-NEXT: .byte 0xe1
220 220
221 %v = call i16 @llvm.nacl.atomic.rmw.i16(i32 1, i16* %ptr.asptr, 221 %v = call i16 @llvm.nacl.atomic.rmw.i16(i32 1, i16* %ptr.asptr,
222 i16 %a.arg_trunc, i32 6) 222 i16 %a.arg_trunc, i32 6)
223 223
224 ; ASM-NEXT: ldrh r0, [sp, #16] 224 ; ASM-NEXT: ldrh r0, [sp, #16]
225 ; DIS-NEXT: 84: e1dd01b0 225 ; DIS-NEXT: 84: e1dd01b0
226 ; IASM-NEXT: .byte 0xb0 226 ; IASM-NEXT: .byte 0xb0
227 ; IASM-NEXT: .byte 0x1 227 ; IASM-NEXT: .byte 0x1
228 ; IASM-NEXT: .byte 0xdd 228 ; IASM-NEXT: .byte 0xdd
229 ; IASM-NEXT: .byte 0xe1 229 ; IASM-NEXT: .byte 0xe1
230 230
231 ; ASM-NEXT: strh r0, [sp, #4] 231 ; ASM-NEXT: strh r0, [sp, #4]
232 ; ASM-NEXT: # [sp, #4] = def.pseudo 232 ; ASM-NEXT: # [sp, #4] = def.pseudo
233 ; DIS-NEXT: 88: e1cd00b4 233 ; DIS-NEXT: 88: e1cd00b4
234 ; IASM-NEXT: .byte 0xb4 234 ; IASM-NEXT: .byte 0xb4
235 ; IASM-NEXT: .byte 0x0 235 ; IASM-NEXT: .byte 0x0
236 ; IASM-NEXT: .byte 0xcd 236 ; IASM-NEXT: .byte 0xcd
237 ; IASM-NEXT: .byte 0xe1 237 ; IASM-NEXT: .byte 0xe1
238 238
239 ; ASM-NEXT: ldr r0, [sp, #24] 239 ; ASM-NEXT: ldr r0, [sp, #24]
240 ; DIS-NEXT: 8c: e59d0018 240 ; DIS-NEXT: 8c: e59d0018
241 ; IASM-NEXT: .byte 0x18 241 ; IASM-NEXT: .byte 0x18
242 ; IASM-NEXT: .byte 0x0 242 ; IASM-NEXT: .byte 0x0
243 ; IASM-NEXT: .byte 0x9d 243 ; IASM-NEXT: .byte 0x9d
244 ; IASM-NEXT: .byte 0xe5 244 ; IASM-NEXT: .byte 0xe5
245 245
246 ; ASM-NEXT: str r0, [sp] 246 ; ASM-NEXT: str r0, [sp]
247 ; ASM-NEXT: # [sp] = def.pseudo 247 ; ASM-NEXT: # [sp] = def.pseudo
248 ; DIS-NEXT: 90: e58d0000 248 ; DIS-NEXT: 90: e58d0000
249 ; IASM-NEXT: .byte 0x0 249 ; IASM-NEXT: .byte 0x0
250 ; IASM-NEXT: .byte 0x0 250 ; IASM-NEXT: .byte 0x0
251 ; IASM-NEXT: .byte 0x8d 251 ; IASM-NEXT: .byte 0x8d
252 ; IASM-NEXT: .byte 0xe5 252 ; IASM-NEXT: .byte 0xe5
253 253
254 ; ASM-NEXT: dmb sy 254 ; ASM-NEXT: dmb sy
255 ; DIS-NEXT: 94: f57ff05f 255 ; DIS-NEXT: 94: f57ff05f
256 ; IASM-NEXT: .byte 0x5f 256 ; IASM-NEXT: .byte 0x5f
257 ; IASM-NEXT: .byte 0xf0 257 ; IASM-NEXT: .byte 0xf0
(...skipping 26 matching lines...) Expand all
284 284
285 ; ***** Example of ldrexh ***** 285 ; ***** Example of ldrexh *****
286 ; ASM-NEXT: ldrexh r2, [r0] 286 ; ASM-NEXT: ldrexh r2, [r0]
287 ; DIS-NEXT: a4: e1f02f9f 287 ; DIS-NEXT: a4: e1f02f9f
288 ; IASM-NEXT: .byte 0x9f 288 ; IASM-NEXT: .byte 0x9f
289 ; IASM-NEXT: .byte 0x2f 289 ; IASM-NEXT: .byte 0x2f
290 ; IASM-NEXT: .byte 0xf0 290 ; IASM-NEXT: .byte 0xf0
291 ; IASM-NEXT: .byte 0xe1 291 ; IASM-NEXT: .byte 0xe1
292 292
293 ; ASM-NEXT: add r1, r2, r1 293 ; ASM-NEXT: add r1, r2, r1
294 ; ASM-NEXT: # r3 = def.pseudo 294 ; ASM-NEXT: # r3 = def.pseudo
295 ; DIS-NEXT: a8: e0821001 295 ; DIS-NEXT: a8: e0821001
296 ; IASM-NEXT: .byte 0x1 296 ; IASM-NEXT: .byte 0x1
297 ; IASM-NEXT: .byte 0x10 297 ; IASM-NEXT: .byte 0x10
298 ; IASM-NEXT: .byte 0x82 298 ; IASM-NEXT: .byte 0x82
299 ; IASM-NEXT: .byte 0xe0 299 ; IASM-NEXT: .byte 0xe0
300 300
301 ; ***** Example of strexh ***** 301 ; ***** Example of strexh *****
302 ; ASM-NEXT: strexh r3, r1, [r0] 302 ; ASM-NEXT: strexh r3, r1, [r0]
303 ; DIS-NEXT: ac: e1e03f91 303 ; DIS-NEXT: ac: e1e03f91
304 ; IASM-NEXT: .byte 0x91 304 ; IASM-NEXT: .byte 0x91
(...skipping 15 matching lines...) Expand all
320 ; IASM-NEXT:.LtestI32Form$entry: 320 ; IASM-NEXT:.LtestI32Form$entry:
321 321
322 ; ASM-NEXT: sub sp, sp, #20 322 ; ASM-NEXT: sub sp, sp, #20
323 ; DIS-NEXT: e0: e24dd014 323 ; DIS-NEXT: e0: e24dd014
324 ; IASM-NEXT: .byte 0x14 324 ; IASM-NEXT: .byte 0x14
325 ; IASM-NEXT: .byte 0xd0 325 ; IASM-NEXT: .byte 0xd0
326 ; IASM-NEXT: .byte 0x4d 326 ; IASM-NEXT: .byte 0x4d
327 ; IASM-NEXT: .byte 0xe2 327 ; IASM-NEXT: .byte 0xe2
328 328
329 ; ASM-NEXT: str r0, [sp, #16] 329 ; ASM-NEXT: str r0, [sp, #16]
330 ; ASM-NEXT: # [sp, #16] = def.pseudo 330 ; ASM-NEXT: # [sp, #16] = def.pseudo
331 ; DIS-NEXT: e4: e58d0010 331 ; DIS-NEXT: e4: e58d0010
332 ; IASM-NEXT: .byte 0x10 332 ; IASM-NEXT: .byte 0x10
333 ; IASM-NEXT: .byte 0x0 333 ; IASM-NEXT: .byte 0x0
334 ; IASM-NEXT: .byte 0x8d 334 ; IASM-NEXT: .byte 0x8d
335 ; IASM-NEXT: .byte 0xe5 335 ; IASM-NEXT: .byte 0xe5
336 336
337 ; ASM-NEXT: str r1, [sp, #12] 337 ; ASM-NEXT: str r1, [sp, #12]
338 ; ASM-NEXT: # [sp, #12] = def.pseudo 338 ; ASM-NEXT: # [sp, #12] = def.pseudo
339 ; DIS-NEXT: e8: e58d100c 339 ; DIS-NEXT: e8: e58d100c
340 ; IASM-NEXT: .byte 0xc 340 ; IASM-NEXT: .byte 0xc
341 ; IASM-NEXT: .byte 0x10 341 ; IASM-NEXT: .byte 0x10
342 ; IASM-NEXT: .byte 0x8d 342 ; IASM-NEXT: .byte 0x8d
343 ; IASM-NEXT: .byte 0xe5 343 ; IASM-NEXT: .byte 0xe5
344 344
345 %ptr.asptr = inttoptr i32 %ptr to i32* 345 %ptr.asptr = inttoptr i32 %ptr to i32*
346 %v = call i32 @llvm.nacl.atomic.rmw.i32(i32 1, i32* %ptr.asptr, 346 %v = call i32 @llvm.nacl.atomic.rmw.i32(i32 1, i32* %ptr.asptr,
347 i32 %a, i32 6) 347 i32 %a, i32 6)
348 348
349 ; ASM-NEXT: ldr r0, [sp, #12] 349 ; ASM-NEXT: ldr r0, [sp, #12]
350 ; DIS-NEXT: ec: e59d000c 350 ; DIS-NEXT: ec: e59d000c
351 ; IASM-NEXT: .byte 0xc 351 ; IASM-NEXT: .byte 0xc
352 ; IASM-NEXT: .byte 0x0 352 ; IASM-NEXT: .byte 0x0
353 ; IASM-NEXT: .byte 0x9d 353 ; IASM-NEXT: .byte 0x9d
354 ; IASM-NEXT: .byte 0xe5 354 ; IASM-NEXT: .byte 0xe5
355 355
356 ; ASM-NEXT: str r0, [sp, #4] 356 ; ASM-NEXT: str r0, [sp, #4]
357 ; ASM-NEXT: # [sp, #4] = def.pseudo 357 ; ASM-NEXT: # [sp, #4] = def.pseudo
358 ; DIS-NEXT: f0: e58d0004 358 ; DIS-NEXT: f0: e58d0004
359 ; IASM-NEXT: .byte 0x4 359 ; IASM-NEXT: .byte 0x4
360 ; IASM-NEXT: .byte 0x0 360 ; IASM-NEXT: .byte 0x0
361 ; IASM-NEXT: .byte 0x8d 361 ; IASM-NEXT: .byte 0x8d
362 ; IASM-NEXT: .byte 0xe5 362 ; IASM-NEXT: .byte 0xe5
363 363
364 ; ASM-NEXT: ldr r0, [sp, #16] 364 ; ASM-NEXT: ldr r0, [sp, #16]
365 ; DIS-NEXT: f4: e59d0010 365 ; DIS-NEXT: f4: e59d0010
366 ; IASM-NEXT: .byte 0x10 366 ; IASM-NEXT: .byte 0x10
367 ; IASM-NEXT: .byte 0x0 367 ; IASM-NEXT: .byte 0x0
368 ; IASM-NEXT: .byte 0x9d 368 ; IASM-NEXT: .byte 0x9d
369 ; IASM-NEXT: .byte 0xe5 369 ; IASM-NEXT: .byte 0xe5
370 370
371 ; ASM-NEXT: str r0, [sp] 371 ; ASM-NEXT: str r0, [sp]
372 ; ASM-NEXT: # [sp] = def.pseudo 372 ; ASM-NEXT: # [sp] = def.pseudo
373 ; DIS-NEXT: f8: e58d0000 373 ; DIS-NEXT: f8: e58d0000
374 ; IASM-NEXT: .byte 0x0 374 ; IASM-NEXT: .byte 0x0
375 ; IASM-NEXT: .byte 0x0 375 ; IASM-NEXT: .byte 0x0
376 ; IASM-NEXT: .byte 0x8d 376 ; IASM-NEXT: .byte 0x8d
377 ; IASM-NEXT: .byte 0xe5 377 ; IASM-NEXT: .byte 0xe5
378 378
379 ; ASM-NEXT: dmb sy 379 ; ASM-NEXT: dmb sy
380 ; DIS-NEXT: fc: f57ff05f 380 ; DIS-NEXT: fc: f57ff05f
381 ; IASM-NEXT: .byte 0x5f 381 ; IASM-NEXT: .byte 0x5f
382 ; IASM-NEXT: .byte 0xf0 382 ; IASM-NEXT: .byte 0xf0
(...skipping 19 matching lines...) Expand all
402 402
403 ; ***** Example of ldrex ***** 403 ; ***** Example of ldrex *****
404 ; ASM-NEXT: ldrex r2, [r0] 404 ; ASM-NEXT: ldrex r2, [r0]
405 ; DIS-NEXT: 108: e1902f9f 405 ; DIS-NEXT: 108: e1902f9f
406 ; IASM-NEXT: .byte 0x9f 406 ; IASM-NEXT: .byte 0x9f
407 ; IASM-NEXT: .byte 0x2f 407 ; IASM-NEXT: .byte 0x2f
408 ; IASM-NEXT: .byte 0x90 408 ; IASM-NEXT: .byte 0x90
409 ; IASM-NEXT: .byte 0xe1 409 ; IASM-NEXT: .byte 0xe1
410 410
411 ; ASM-NEXT: add r1, r2, r1 411 ; ASM-NEXT: add r1, r2, r1
412 ; ASM-NEXT: # r3 = def.pseudo 412 ; ASM-NEXT: # r3 = def.pseudo
413 ; DIS-NEXT: 10c: e0821001 413 ; DIS-NEXT: 10c: e0821001
414 ; IASM-NEXT: .byte 0x1 414 ; IASM-NEXT: .byte 0x1
415 ; IASM-NEXT: .byte 0x10 415 ; IASM-NEXT: .byte 0x10
416 ; IASM-NEXT: .byte 0x82 416 ; IASM-NEXT: .byte 0x82
417 ; IASM-NEXT: .byte 0xe0 417 ; IASM-NEXT: .byte 0xe0
418 418
419 ; ***** Example of strex ***** 419 ; ***** Example of strex *****
420 ; ASM-NEXT: strex r3, r1, [r0] 420 ; ASM-NEXT: strex r3, r1, [r0]
421 ; DIS-NEXT: 110: e1803f91 421 ; DIS-NEXT: 110: e1803f91
422 ; IASM-NEXT: .byte 0x91 422 ; IASM-NEXT: .byte 0x91
(...skipping 21 matching lines...) Expand all
444 ; IASM-NEXT: .byte 0xe9 444 ; IASM-NEXT: .byte 0xe9
445 445
446 ; ASM-NEXT: sub sp, sp, #32 446 ; ASM-NEXT: sub sp, sp, #32
447 ; DIS-NEXT: 134: e24dd020 447 ; DIS-NEXT: 134: e24dd020
448 ; IASM-NEXT: .byte 0x20 448 ; IASM-NEXT: .byte 0x20
449 ; IASM-NEXT: .byte 0xd0 449 ; IASM-NEXT: .byte 0xd0
450 ; IASM-NEXT: .byte 0x4d 450 ; IASM-NEXT: .byte 0x4d
451 ; IASM-NEXT: .byte 0xe2 451 ; IASM-NEXT: .byte 0xe2
452 452
453 ; ASM-NEXT: str r0, [sp, #28] 453 ; ASM-NEXT: str r0, [sp, #28]
454 ; ASM-NEXT: # [sp, #28] = def.pseudo 454 ; ASM-NEXT: # [sp, #28] = def.pseudo
455 ; DIS-NEXT: 138: e58d001c 455 ; DIS-NEXT: 138: e58d001c
456 ; IASM-NEXT: .byte 0x1c 456 ; IASM-NEXT: .byte 0x1c
457 ; IASM-NEXT: .byte 0x0 457 ; IASM-NEXT: .byte 0x0
458 ; IASM-NEXT: .byte 0x8d 458 ; IASM-NEXT: .byte 0x8d
459 ; IASM-NEXT: .byte 0xe5 459 ; IASM-NEXT: .byte 0xe5
460 460
461 ; ASM-NEXT: mov r0, r2 461 ; ASM-NEXT: mov r0, r2
462 ; DIS-NEXT: 13c: e1a00002 462 ; DIS-NEXT: 13c: e1a00002
463 ; IASM-NEXT: .byte 0x2 463 ; IASM-NEXT: .byte 0x2
464 ; IASM-NEXT: .byte 0x0 464 ; IASM-NEXT: .byte 0x0
465 ; IASM-NEXT: .byte 0xa0 465 ; IASM-NEXT: .byte 0xa0
466 ; IASM-NEXT: .byte 0xe1 466 ; IASM-NEXT: .byte 0xe1
467 467
468 ; ASM-NEXT: str r0, [sp, #24] 468 ; ASM-NEXT: str r0, [sp, #24]
469 ; ASM-NEXT: # [sp, #24] = def.pseudo 469 ; ASM-NEXT: # [sp, #24] = def.pseudo
470 ; DIS-NEXT: 140: e58d0018 470 ; DIS-NEXT: 140: e58d0018
471 ; IASM-NEXT: .byte 0x18 471 ; IASM-NEXT: .byte 0x18
472 ; IASM-NEXT: .byte 0x0 472 ; IASM-NEXT: .byte 0x0
473 ; IASM-NEXT: .byte 0x8d 473 ; IASM-NEXT: .byte 0x8d
474 ; IASM-NEXT: .byte 0xe5 474 ; IASM-NEXT: .byte 0xe5
475 475
476 ; ASM-NEXT: mov r0, r3 476 ; ASM-NEXT: mov r0, r3
477 ; DIS-NEXT: 144: e1a00003 477 ; DIS-NEXT: 144: e1a00003
478 ; IASM-NEXT: .byte 0x3 478 ; IASM-NEXT: .byte 0x3
479 ; IASM-NEXT: .byte 0x0 479 ; IASM-NEXT: .byte 0x0
480 ; IASM-NEXT: .byte 0xa0 480 ; IASM-NEXT: .byte 0xa0
481 ; IASM-NEXT: .byte 0xe1 481 ; IASM-NEXT: .byte 0xe1
482 482
483 ; ASM-NEXT: str r0, [sp, #20] 483 ; ASM-NEXT: str r0, [sp, #20]
484 ; ASM-NEXT: # [sp, #20] = def.pseudo 484 ; ASM-NEXT: # [sp, #20] = def.pseudo
485 ; ASM-NEXT: # [sp] = def.pseudo 485 ; ASM-NEXT: # [sp] = def.pseudo
486 ; DIS-NEXT: 148: e58d0014 486 ; DIS-NEXT: 148: e58d0014
487 ; IASM-NEXT: .byte 0x14 487 ; IASM-NEXT: .byte 0x14
488 ; IASM-NEXT: .byte 0x0 488 ; IASM-NEXT: .byte 0x0
489 ; IASM-NEXT: .byte 0x8d 489 ; IASM-NEXT: .byte 0x8d
490 ; IASM-NEXT: .byte 0xe5 490 ; IASM-NEXT: .byte 0xe5
491 491
492 %ptr.asptr = inttoptr i32 %ptr to i64* 492 %ptr.asptr = inttoptr i32 %ptr to i64*
493 %v = call i64 @llvm.nacl.atomic.rmw.i64(i32 1, i64* %ptr.asptr, 493 %v = call i64 @llvm.nacl.atomic.rmw.i64(i32 1, i64* %ptr.asptr,
494 i64 %a, i32 6) 494 i64 %a, i32 6)
495 495
496 ; ASM-NEXT: ldr r0, [sp, #24] 496 ; ASM-NEXT: ldr r0, [sp, #24]
497 ; DIS-NEXT: 14c: e59d0018 497 ; DIS-NEXT: 14c: e59d0018
498 ; IASM-NEXT: .byte 0x18 498 ; IASM-NEXT: .byte 0x18
499 ; IASM-NEXT: .byte 0x0 499 ; IASM-NEXT: .byte 0x0
500 ; IASM-NEXT: .byte 0x9d 500 ; IASM-NEXT: .byte 0x9d
501 ; IASM-NEXT: .byte 0xe5 501 ; IASM-NEXT: .byte 0xe5
502 502
503 ; ASM-NEXT: str r0, [sp, #8] 503 ; ASM-NEXT: str r0, [sp, #8]
504 ; ASM-NEXT: # [sp, #8] = def.pseudo 504 ; ASM-NEXT: # [sp, #8] = def.pseudo
505 ; DIS-NEXT: 150: e58d0008 505 ; DIS-NEXT: 150: e58d0008
506 ; IASM-NEXT: .byte 0x8 506 ; IASM-NEXT: .byte 0x8
507 ; IASM-NEXT: .byte 0x0 507 ; IASM-NEXT: .byte 0x0
508 ; IASM-NEXT: .byte 0x8d 508 ; IASM-NEXT: .byte 0x8d
509 ; IASM-NEXT: .byte 0xe5 509 ; IASM-NEXT: .byte 0xe5
510 510
511 ; ASM-NEXT: ldr r0, [sp, #20] 511 ; ASM-NEXT: ldr r0, [sp, #20]
512 ; DIS-NEXT: 154: e59d0014 512 ; DIS-NEXT: 154: e59d0014
513 ; IASM-NEXT: .byte 0x14 513 ; IASM-NEXT: .byte 0x14
514 ; IASM-NEXT: .byte 0x0 514 ; IASM-NEXT: .byte 0x0
515 ; IASM-NEXT: .byte 0x9d 515 ; IASM-NEXT: .byte 0x9d
516 ; IASM-NEXT: .byte 0xe5 516 ; IASM-NEXT: .byte 0xe5
517 517
518 ; ASM-NEXT: str r0, [sp, #4] 518 ; ASM-NEXT: str r0, [sp, #4]
519 ; ASM-NEXT: # [sp, #4] = def.pseudo 519 ; ASM-NEXT: # [sp, #4] = def.pseudo
520 ; DIS-NEXT: 158: e58d0004 520 ; DIS-NEXT: 158: e58d0004
521 ; IASM-NEXT: .byte 0x4 521 ; IASM-NEXT: .byte 0x4
522 ; IASM-NEXT: .byte 0x0 522 ; IASM-NEXT: .byte 0x0
523 ; IASM-NEXT: .byte 0x8d 523 ; IASM-NEXT: .byte 0x8d
524 ; IASM-NEXT: .byte 0xe5 524 ; IASM-NEXT: .byte 0xe5
525 525
526 ; ASM-NEXT: ldr r0, [sp, #28] 526 ; ASM-NEXT: ldr r0, [sp, #28]
527 ; DIS-NEXT: 15c: e59d001c 527 ; DIS-NEXT: 15c: e59d001c
528 ; IASM-NEXT: .byte 0x1c 528 ; IASM-NEXT: .byte 0x1c
529 ; IASM-NEXT: .byte 0x0 529 ; IASM-NEXT: .byte 0x0
530 ; IASM-NEXT: .byte 0x9d 530 ; IASM-NEXT: .byte 0x9d
531 ; IASM-NEXT: .byte 0xe5 531 ; IASM-NEXT: .byte 0xe5
532 532
533 ; ASM-NEXT: str r0, [sp] 533 ; ASM-NEXT: str r0, [sp]
534 ; ASM-NEXT: # [sp] = def.pseudo 534 ; ASM-NEXT: # [sp] = def.pseudo
535 ; DIS-NEXT: 160: e58d0000 535 ; DIS-NEXT: 160: e58d0000
536 ; IASM-NEXT: .byte 0x0 536 ; IASM-NEXT: .byte 0x0
537 ; IASM-NEXT: .byte 0x0 537 ; IASM-NEXT: .byte 0x0
538 ; IASM-NEXT: .byte 0x8d 538 ; IASM-NEXT: .byte 0x8d
539 ; IASM-NEXT: .byte 0xe5 539 ; IASM-NEXT: .byte 0xe5
540 540
541 ; ASM-NEXT: dmb sy 541 ; ASM-NEXT: dmb sy
542 ; DIS-NEXT: 164: f57ff05f 542 ; DIS-NEXT: 164: f57ff05f
543 ; IASM-NEXT: .byte 0x5f 543 ; IASM-NEXT: .byte 0x5f
544 ; IASM-NEXT: .byte 0xf0 544 ; IASM-NEXT: .byte 0xf0
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 ; IASM-NEXT: .byte 0xe1 596 ; IASM-NEXT: .byte 0xe1
597 597
598 ; ASM-NEXT: adds r2, r4, r2 598 ; ASM-NEXT: adds r2, r4, r2
599 ; DIS-NEXT: 180: e0942002 599 ; DIS-NEXT: 180: e0942002
600 ; IASM-NEXT: .byte 0x2 600 ; IASM-NEXT: .byte 0x2
601 ; IASM-NEXT: .byte 0x20 601 ; IASM-NEXT: .byte 0x20
602 ; IASM-NEXT: .byte 0x94 602 ; IASM-NEXT: .byte 0x94
603 ; IASM-NEXT: .byte 0xe0 603 ; IASM-NEXT: .byte 0xe0
604 604
605 ; ASM-NEXT: adc r3, r5, r3 605 ; ASM-NEXT: adc r3, r5, r3
606 ; ASM-NEXT: # r1 = def.pseudo 606 ; ASM-NEXT: # r1 = def.pseudo
607 ; DIS-NEXT: 184: e0a53003 607 ; DIS-NEXT: 184: e0a53003
608 ; IASM-NEXT: .byte 0x3 608 ; IASM-NEXT: .byte 0x3
609 ; IASM-NEXT: .byte 0x30 609 ; IASM-NEXT: .byte 0x30
610 ; IASM-NEXT: .byte 0xa5 610 ; IASM-NEXT: .byte 0xa5
611 ; IASM-NEXT: .byte 0xe0 611 ; IASM-NEXT: .byte 0xe0
612 612
613 ; ***** Example of strexd ***** 613 ; ***** Example of strexd *****
614 ; ASM-NEXT: strexd r1, r2, r3, [r0] 614 ; ASM-NEXT: strexd r1, r2, r3, [r0]
615 ; DIS-NEXT: 188: e1a01f92 615 ; DIS-NEXT: 188: e1a01f92
616 ; IASM-NEXT: .byte 0x92 616 ; IASM-NEXT: .byte 0x92
617 ; IASM-NEXT: .byte 0x1f 617 ; IASM-NEXT: .byte 0x1f
618 ; IASM-NEXT: .byte 0xa0 618 ; IASM-NEXT: .byte 0xa0
619 ; IASM-NEXT: .byte 0xe1 619 ; IASM-NEXT: .byte 0xe1
620 620
621 ret i64 %v 621 ret i64 %v
622 } 622 }
OLDNEW
« no previous file with comments | « tests_lit/assembler/arm32/ldr-str-more.ll ('k') | tests_lit/assembler/arm32/load-store.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698