Merge tag 'disintegrate-fbdev-20121220' of git://git.infradead.org/users/dhowells...
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / powerpc / lib / feature-fixups-test.S
1 /*
2 * Copyright 2008 Michael Ellerman, IBM Corporation.
3 *
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.
9 */
10
11 #include <asm/feature-fixups.h>
12 #include <asm/ppc_asm.h>
13 #include <asm/synch.h>
14
15 .text
16
17 #define globl(x) \
18 .globl x; \
19 x:
20
21 globl(ftr_fixup_test1)
22 or 1,1,1
23 or 2,2,2 /* fixup will nop out this instruction */
24 or 3,3,3
25
26 globl(end_ftr_fixup_test1)
27
28 globl(ftr_fixup_test1_orig)
29 or 1,1,1
30 or 2,2,2
31 or 3,3,3
32
33 globl(ftr_fixup_test1_expected)
34 or 1,1,1
35 nop
36 or 3,3,3
37
38 globl(ftr_fixup_test2)
39 or 1,1,1
40 or 2,2,2 /* fixup will replace this with ftr_fixup_test2_alt */
41 or 3,3,3
42
43 globl(end_ftr_fixup_test2)
44
45 globl(ftr_fixup_test2_orig)
46 or 1,1,1
47 or 2,2,2
48 or 3,3,3
49
50 globl(ftr_fixup_test2_alt)
51 or 31,31,31
52
53 globl(ftr_fixup_test2_expected)
54 or 1,1,1
55 or 31,31,31
56 or 3,3,3
57
58 globl(ftr_fixup_test3)
59 or 1,1,1
60 or 2,2,2 /* fixup will fail to replace this */
61 or 3,3,3
62
63 globl(end_ftr_fixup_test3)
64
65 globl(ftr_fixup_test3_orig)
66 or 1,1,1
67 or 2,2,2
68 or 3,3,3
69
70 globl(ftr_fixup_test3_alt)
71 or 31,31,31
72 or 31,31,31
73
74 globl(ftr_fixup_test4)
75 or 1,1,1
76 or 2,2,2
77 or 2,2,2
78 or 2,2,2
79 or 2,2,2
80 or 3,3,3
81
82 globl(end_ftr_fixup_test4)
83
84 globl(ftr_fixup_test4_expected)
85 or 1,1,1
86 or 31,31,31
87 or 31,31,31
88 nop
89 nop
90 or 3,3,3
91
92 globl(ftr_fixup_test4_orig)
93 or 1,1,1
94 or 2,2,2
95 or 2,2,2
96 or 2,2,2
97 or 2,2,2
98 or 3,3,3
99
100 globl(ftr_fixup_test4_alt)
101 or 31,31,31
102 or 31,31,31
103
104
105 globl(ftr_fixup_test5)
106 or 1,1,1
107 BEGIN_FTR_SECTION
108 or 2,2,2
109 or 2,2,2
110 or 2,2,2
111 or 2,2,2
112 or 2,2,2
113 or 2,2,2
114 or 2,2,2
115 FTR_SECTION_ELSE
116 2: b 3f
117 3: or 5,5,5
118 beq 3b
119 b 1f
120 or 6,6,6
121 b 2b
122 1: bdnz 3b
123 ALT_FTR_SECTION_END(0, 1)
124 or 1,1,1
125
126 globl(end_ftr_fixup_test5)
127
128 globl(ftr_fixup_test5_expected)
129 or 1,1,1
130 2: b 3f
131 3: or 5,5,5
132 beq 3b
133 b 1f
134 or 6,6,6
135 b 2b
136 1: bdnz 3b
137 or 1,1,1
138
139 globl(ftr_fixup_test6)
140 1: or 1,1,1
141 BEGIN_FTR_SECTION
142 or 5,5,5
143 2: PPC_LCMPI r3,0
144 beq 4f
145 blt 2b
146 b 1b
147 b 4f
148 FTR_SECTION_ELSE
149 2: or 2,2,2
150 PPC_LCMPI r3,1
151 beq 3f
152 blt 2b
153 b 3f
154 b 1b
155 ALT_FTR_SECTION_END(0, 1)
156 3: or 1,1,1
157 or 2,2,2
158 4: or 3,3,3
159
160 globl(end_ftr_fixup_test6)
161
162 globl(ftr_fixup_test6_expected)
163 1: or 1,1,1
164 2: or 2,2,2
165 PPC_LCMPI r3,1
166 beq 3f
167 blt 2b
168 b 3f
169 b 1b
170 2: or 1,1,1
171 or 2,2,2
172 3: or 3,3,3
173
174
175 #if 0
176 /* Test that if we have a larger else case the assembler spots it and
177 * reports an error. #if 0'ed so as not to break the build normally.
178 */
179 ftr_fixup_test7:
180 or 1,1,1
181 BEGIN_FTR_SECTION
182 or 2,2,2
183 or 2,2,2
184 or 2,2,2
185 FTR_SECTION_ELSE
186 or 3,3,3
187 or 3,3,3
188 or 3,3,3
189 or 3,3,3
190 ALT_FTR_SECTION_END(0, 1)
191 or 1,1,1
192 #endif
193
194 #define MAKE_MACRO_TEST(TYPE) \
195 globl(ftr_fixup_test_ ##TYPE##_macros) \
196 or 1,1,1; \
197 /* Basic test, this section should all be nop'ed */ \
198 BEGIN_##TYPE##_SECTION \
199 or 2,2,2; \
200 or 2,2,2; \
201 or 2,2,2; \
202 END_##TYPE##_SECTION(0, 1) \
203 or 1,1,1; \
204 or 1,1,1; \
205 /* Basic test, this section should NOT be nop'ed */ \
206 BEGIN_##TYPE##_SECTION \
207 or 2,2,2; \
208 or 2,2,2; \
209 or 2,2,2; \
210 END_##TYPE##_SECTION(0, 0) \
211 or 1,1,1; \
212 or 1,1,1; \
213 /* Nesting test, inner section should be nop'ed */ \
214 BEGIN_##TYPE##_SECTION \
215 or 2,2,2; \
216 or 2,2,2; \
217 BEGIN_##TYPE##_SECTION_NESTED(80) \
218 or 3,3,3; \
219 or 3,3,3; \
220 END_##TYPE##_SECTION_NESTED(0, 1, 80) \
221 or 2,2,2; \
222 or 2,2,2; \
223 END_##TYPE##_SECTION(0, 0) \
224 or 1,1,1; \
225 or 1,1,1; \
226 /* Nesting test, whole section should be nop'ed */ \
227 BEGIN_##TYPE##_SECTION \
228 or 2,2,2; \
229 or 2,2,2; \
230 BEGIN_##TYPE##_SECTION_NESTED(80) \
231 or 3,3,3; \
232 or 3,3,3; \
233 END_##TYPE##_SECTION_NESTED(0, 0, 80) \
234 or 2,2,2; \
235 or 2,2,2; \
236 END_##TYPE##_SECTION(0, 1) \
237 or 1,1,1; \
238 or 1,1,1; \
239 /* Nesting test, none should be nop'ed */ \
240 BEGIN_##TYPE##_SECTION \
241 or 2,2,2; \
242 or 2,2,2; \
243 BEGIN_##TYPE##_SECTION_NESTED(80) \
244 or 3,3,3; \
245 or 3,3,3; \
246 END_##TYPE##_SECTION_NESTED(0, 0, 80) \
247 or 2,2,2; \
248 or 2,2,2; \
249 END_##TYPE##_SECTION(0, 0) \
250 or 1,1,1; \
251 or 1,1,1; \
252 /* Basic alt section test, default case should be taken */ \
253 BEGIN_##TYPE##_SECTION \
254 or 3,3,3; \
255 or 3,3,3; \
256 or 3,3,3; \
257 ##TYPE##_SECTION_ELSE \
258 or 5,5,5; \
259 or 5,5,5; \
260 ALT_##TYPE##_SECTION_END(0, 0) \
261 or 1,1,1; \
262 or 1,1,1; \
263 /* Basic alt section test, else case should be taken */ \
264 BEGIN_##TYPE##_SECTION \
265 or 3,3,3; \
266 or 3,3,3; \
267 or 3,3,3; \
268 ##TYPE##_SECTION_ELSE \
269 or 31,31,31; \
270 or 31,31,31; \
271 or 31,31,31; \
272 ALT_##TYPE##_SECTION_END(0, 1) \
273 or 1,1,1; \
274 or 1,1,1; \
275 /* Alt with smaller else case, should be padded with nops */ \
276 BEGIN_##TYPE##_SECTION \
277 or 3,3,3; \
278 or 3,3,3; \
279 or 3,3,3; \
280 ##TYPE##_SECTION_ELSE \
281 or 31,31,31; \
282 ALT_##TYPE##_SECTION_END(0, 1) \
283 or 1,1,1; \
284 or 1,1,1; \
285 /* Alt section with nested section in default case */ \
286 /* Default case should be taken, with nop'ed inner section */ \
287 BEGIN_##TYPE##_SECTION \
288 or 3,3,3; \
289 BEGIN_##TYPE##_SECTION_NESTED(95) \
290 or 3,3,3; \
291 or 3,3,3; \
292 END_##TYPE##_SECTION_NESTED(0, 1, 95) \
293 or 3,3,3; \
294 ##TYPE##_SECTION_ELSE \
295 or 2,2,2; \
296 or 2,2,2; \
297 ALT_##TYPE##_SECTION_END(0, 0) \
298 or 1,1,1; \
299 or 1,1,1; \
300 /* Alt section with nested section in else, default taken */ \
301 BEGIN_##TYPE##_SECTION \
302 or 3,3,3; \
303 or 3,3,3; \
304 or 3,3,3; \
305 ##TYPE##_SECTION_ELSE \
306 or 5,5,5; \
307 BEGIN_##TYPE##_SECTION_NESTED(95) \
308 or 3,3,3; \
309 END_##TYPE##_SECTION_NESTED(0, 1, 95) \
310 or 5,5,5; \
311 ALT_##TYPE##_SECTION_END(0, 0) \
312 or 1,1,1; \
313 or 1,1,1; \
314 /* Alt section with nested section in else, else taken & nop */ \
315 BEGIN_##TYPE##_SECTION \
316 or 3,3,3; \
317 or 3,3,3; \
318 or 3,3,3; \
319 ##TYPE##_SECTION_ELSE \
320 or 5,5,5; \
321 BEGIN_##TYPE##_SECTION_NESTED(95) \
322 or 3,3,3; \
323 END_##TYPE##_SECTION_NESTED(0, 1, 95) \
324 or 5,5,5; \
325 ALT_##TYPE##_SECTION_END(0, 1) \
326 or 1,1,1; \
327 or 1,1,1; \
328 /* Feature section with nested alt section, default taken */ \
329 BEGIN_##TYPE##_SECTION \
330 or 2,2,2; \
331 BEGIN_##TYPE##_SECTION_NESTED(95) \
332 or 1,1,1; \
333 ##TYPE##_SECTION_ELSE_NESTED(95) \
334 or 5,5,5; \
335 ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) \
336 or 2,2,2; \
337 END_##TYPE##_SECTION(0, 0) \
338 or 1,1,1; \
339 or 1,1,1; \
340 /* Feature section with nested alt section, else taken */ \
341 BEGIN_##TYPE##_SECTION \
342 or 2,2,2; \
343 BEGIN_##TYPE##_SECTION_NESTED(95) \
344 or 1,1,1; \
345 ##TYPE##_SECTION_ELSE_NESTED(95) \
346 or 5,5,5; \
347 ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) \
348 or 2,2,2; \
349 END_##TYPE##_SECTION(0, 0) \
350 or 1,1,1; \
351 or 1,1,1; \
352 /* Feature section with nested alt section, all nop'ed */ \
353 BEGIN_##TYPE##_SECTION \
354 or 2,2,2; \
355 BEGIN_##TYPE##_SECTION_NESTED(95) \
356 or 1,1,1; \
357 ##TYPE##_SECTION_ELSE_NESTED(95) \
358 or 5,5,5; \
359 ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) \
360 or 2,2,2; \
361 END_##TYPE##_SECTION(0, 1) \
362 or 1,1,1; \
363 or 1,1,1; \
364 /* Nested alt sections, default with inner default taken */ \
365 BEGIN_##TYPE##_SECTION \
366 or 2,2,2; \
367 BEGIN_##TYPE##_SECTION_NESTED(95) \
368 or 1,1,1; \
369 ##TYPE##_SECTION_ELSE_NESTED(95) \
370 or 5,5,5; \
371 ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) \
372 or 2,2,2; \
373 ##TYPE##_SECTION_ELSE \
374 or 31,31,31; \
375 BEGIN_##TYPE##_SECTION_NESTED(94) \
376 or 5,5,5; \
377 ##TYPE##_SECTION_ELSE_NESTED(94) \
378 or 1,1,1; \
379 ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) \
380 or 31,31,31; \
381 ALT_##TYPE##_SECTION_END(0, 0) \
382 or 1,1,1; \
383 or 1,1,1; \
384 /* Nested alt sections, default with inner else taken */ \
385 BEGIN_##TYPE##_SECTION \
386 or 2,2,2; \
387 BEGIN_##TYPE##_SECTION_NESTED(95) \
388 or 1,1,1; \
389 ##TYPE##_SECTION_ELSE_NESTED(95) \
390 or 5,5,5; \
391 ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) \
392 or 2,2,2; \
393 ##TYPE##_SECTION_ELSE \
394 or 31,31,31; \
395 BEGIN_##TYPE##_SECTION_NESTED(94) \
396 or 5,5,5; \
397 ##TYPE##_SECTION_ELSE_NESTED(94) \
398 or 1,1,1; \
399 ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) \
400 or 31,31,31; \
401 ALT_##TYPE##_SECTION_END(0, 0) \
402 or 1,1,1; \
403 or 1,1,1; \
404 /* Nested alt sections, else with inner default taken */ \
405 BEGIN_##TYPE##_SECTION \
406 or 2,2,2; \
407 BEGIN_##TYPE##_SECTION_NESTED(95) \
408 or 1,1,1; \
409 ##TYPE##_SECTION_ELSE_NESTED(95) \
410 or 5,5,5; \
411 ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) \
412 or 2,2,2; \
413 ##TYPE##_SECTION_ELSE \
414 or 31,31,31; \
415 BEGIN_##TYPE##_SECTION_NESTED(94) \
416 or 5,5,5; \
417 ##TYPE##_SECTION_ELSE_NESTED(94) \
418 or 1,1,1; \
419 ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) \
420 or 31,31,31; \
421 ALT_##TYPE##_SECTION_END(0, 1) \
422 or 1,1,1; \
423 or 1,1,1; \
424 /* Nested alt sections, else with inner else taken */ \
425 BEGIN_##TYPE##_SECTION \
426 or 2,2,2; \
427 BEGIN_##TYPE##_SECTION_NESTED(95) \
428 or 1,1,1; \
429 ##TYPE##_SECTION_ELSE_NESTED(95) \
430 or 5,5,5; \
431 ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) \
432 or 2,2,2; \
433 ##TYPE##_SECTION_ELSE \
434 or 31,31,31; \
435 BEGIN_##TYPE##_SECTION_NESTED(94) \
436 or 5,5,5; \
437 ##TYPE##_SECTION_ELSE_NESTED(94) \
438 or 1,1,1; \
439 ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) \
440 or 31,31,31; \
441 ALT_##TYPE##_SECTION_END(0, 1) \
442 or 1,1,1; \
443 or 1,1,1; \
444 /* Nested alt sections, else can have large else case */ \
445 BEGIN_##TYPE##_SECTION \
446 or 2,2,2; \
447 or 2,2,2; \
448 or 2,2,2; \
449 or 2,2,2; \
450 ##TYPE##_SECTION_ELSE \
451 BEGIN_##TYPE##_SECTION_NESTED(94) \
452 or 5,5,5; \
453 or 5,5,5; \
454 or 5,5,5; \
455 or 5,5,5; \
456 ##TYPE##_SECTION_ELSE_NESTED(94) \
457 or 1,1,1; \
458 or 1,1,1; \
459 or 1,1,1; \
460 or 1,1,1; \
461 ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) \
462 ALT_##TYPE##_SECTION_END(0, 1) \
463 or 1,1,1; \
464 or 1,1,1;
465
466 #define MAKE_MACRO_TEST_EXPECTED(TYPE) \
467 globl(ftr_fixup_test_ ##TYPE##_macros_expected) \
468 or 1,1,1; \
469 /* Basic test, this section should all be nop'ed */ \
470 /* BEGIN_##TYPE##_SECTION */ \
471 nop; \
472 nop; \
473 nop; \
474 /* END_##TYPE##_SECTION(0, 1) */ \
475 or 1,1,1; \
476 or 1,1,1; \
477 /* Basic test, this section should NOT be nop'ed */ \
478 /* BEGIN_##TYPE##_SECTION */ \
479 or 2,2,2; \
480 or 2,2,2; \
481 or 2,2,2; \
482 /* END_##TYPE##_SECTION(0, 0) */ \
483 or 1,1,1; \
484 or 1,1,1; \
485 /* Nesting test, inner section should be nop'ed */ \
486 /* BEGIN_##TYPE##_SECTION */ \
487 or 2,2,2; \
488 or 2,2,2; \
489 /* BEGIN_##TYPE##_SECTION_NESTED(80) */ \
490 nop; \
491 nop; \
492 /* END_##TYPE##_SECTION_NESTED(0, 1, 80) */ \
493 or 2,2,2; \
494 or 2,2,2; \
495 /* END_##TYPE##_SECTION(0, 0) */ \
496 or 1,1,1; \
497 or 1,1,1; \
498 /* Nesting test, whole section should be nop'ed */ \
499 /* NB. inner section is not nop'ed, but then entire outer is */ \
500 /* BEGIN_##TYPE##_SECTION */ \
501 nop; \
502 nop; \
503 /* BEGIN_##TYPE##_SECTION_NESTED(80) */ \
504 nop; \
505 nop; \
506 /* END_##TYPE##_SECTION_NESTED(0, 0, 80) */ \
507 nop; \
508 nop; \
509 /* END_##TYPE##_SECTION(0, 1) */ \
510 or 1,1,1; \
511 or 1,1,1; \
512 /* Nesting test, none should be nop'ed */ \
513 /* BEGIN_##TYPE##_SECTION */ \
514 or 2,2,2; \
515 or 2,2,2; \
516 /* BEGIN_##TYPE##_SECTION_NESTED(80) */ \
517 or 3,3,3; \
518 or 3,3,3; \
519 /* END_##TYPE##_SECTION_NESTED(0, 0, 80) */ \
520 or 2,2,2; \
521 or 2,2,2; \
522 /* END_##TYPE##_SECTION(0, 0) */ \
523 or 1,1,1; \
524 or 1,1,1; \
525 /* Basic alt section test, default case should be taken */ \
526 /* BEGIN_##TYPE##_SECTION */ \
527 or 3,3,3; \
528 or 3,3,3; \
529 or 3,3,3; \
530 /* ##TYPE##_SECTION_ELSE */ \
531 /* or 5,5,5; */ \
532 /* or 5,5,5; */ \
533 /* ALT_##TYPE##_SECTION_END(0, 0) */ \
534 or 1,1,1; \
535 or 1,1,1; \
536 /* Basic alt section test, else case should be taken */ \
537 /* BEGIN_##TYPE##_SECTION */ \
538 /* or 3,3,3; */ \
539 /* or 3,3,3; */ \
540 /* or 3,3,3; */ \
541 /* ##TYPE##_SECTION_ELSE */ \
542 or 31,31,31; \
543 or 31,31,31; \
544 or 31,31,31; \
545 /* ALT_##TYPE##_SECTION_END(0, 1) */ \
546 or 1,1,1; \
547 or 1,1,1; \
548 /* Alt with smaller else case, should be padded with nops */ \
549 /* BEGIN_##TYPE##_SECTION */ \
550 /* or 3,3,3; */ \
551 /* or 3,3,3; */ \
552 /* or 3,3,3; */ \
553 /* ##TYPE##_SECTION_ELSE */ \
554 or 31,31,31; \
555 nop; \
556 nop; \
557 /* ALT_##TYPE##_SECTION_END(0, 1) */ \
558 or 1,1,1; \
559 or 1,1,1; \
560 /* Alt section with nested section in default case */ \
561 /* Default case should be taken, with nop'ed inner section */ \
562 /* BEGIN_##TYPE##_SECTION */ \
563 or 3,3,3; \
564 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
565 nop; \
566 nop; \
567 /* END_##TYPE##_SECTION_NESTED(0, 1, 95) */ \
568 or 3,3,3; \
569 /* ##TYPE##_SECTION_ELSE */ \
570 /* or 2,2,2; */ \
571 /* or 2,2,2; */ \
572 /* ALT_##TYPE##_SECTION_END(0, 0) */ \
573 or 1,1,1; \
574 or 1,1,1; \
575 /* Alt section with nested section in else, default taken */ \
576 /* BEGIN_##TYPE##_SECTION */ \
577 or 3,3,3; \
578 or 3,3,3; \
579 or 3,3,3; \
580 /* ##TYPE##_SECTION_ELSE */ \
581 /* or 5,5,5; */ \
582 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
583 /* or 3,3,3; */ \
584 /* END_##TYPE##_SECTION_NESTED(0, 1, 95) */ \
585 /* or 5,5,5; */ \
586 /* ALT_##TYPE##_SECTION_END(0, 0) */ \
587 or 1,1,1; \
588 or 1,1,1; \
589 /* Alt section with nested section in else, else taken & nop */ \
590 /* BEGIN_##TYPE##_SECTION */ \
591 /* or 3,3,3; */ \
592 /* or 3,3,3; */ \
593 /* or 3,3,3; */ \
594 /* ##TYPE##_SECTION_ELSE */ \
595 or 5,5,5; \
596 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
597 nop; \
598 /* END_##TYPE##_SECTION_NESTED(0, 1, 95) */ \
599 or 5,5,5; \
600 /* ALT_##TYPE##_SECTION_END(0, 1) */ \
601 or 1,1,1; \
602 or 1,1,1; \
603 /* Feature section with nested alt section, default taken */ \
604 /* BEGIN_##TYPE##_SECTION */ \
605 or 2,2,2; \
606 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
607 or 1,1,1; \
608 /* ##TYPE##_SECTION_ELSE_NESTED(95) */ \
609 /* or 5,5,5; */ \
610 /* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */ \
611 or 2,2,2; \
612 /* END_##TYPE##_SECTION(0, 0) */ \
613 or 1,1,1; \
614 or 1,1,1; \
615 /* Feature section with nested alt section, else taken */ \
616 /* BEGIN_##TYPE##_SECTION */ \
617 or 2,2,2; \
618 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
619 /* or 1,1,1; */ \
620 /* ##TYPE##_SECTION_ELSE_NESTED(95) */ \
621 or 5,5,5; \
622 /* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \
623 or 2,2,2; \
624 /* END_##TYPE##_SECTION(0, 0) */ \
625 or 1,1,1; \
626 or 1,1,1; \
627 /* Feature section with nested alt section, all nop'ed */ \
628 /* BEGIN_##TYPE##_SECTION */ \
629 nop; \
630 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
631 nop; \
632 /* ##TYPE##_SECTION_ELSE_NESTED(95) */ \
633 /* or 5,5,5; */ \
634 /* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */ \
635 nop; \
636 /* END_##TYPE##_SECTION(0, 1) */ \
637 or 1,1,1; \
638 or 1,1,1; \
639 /* Nested alt sections, default with inner default taken */ \
640 /* BEGIN_##TYPE##_SECTION */ \
641 or 2,2,2; \
642 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
643 or 1,1,1; \
644 /* ##TYPE##_SECTION_ELSE_NESTED(95) */ \
645 /* or 5,5,5; */ \
646 /* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */ \
647 or 2,2,2; \
648 /* ##TYPE##_SECTION_ELSE */ \
649 /* or 31,31,31; */ \
650 /* BEGIN_##TYPE##_SECTION_NESTED(94) */ \
651 /* or 5,5,5; */ \
652 /* ##TYPE##_SECTION_ELSE_NESTED(94) */ \
653 /* or 1,1,1; */ \
654 /* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */ \
655 /* or 31,31,31; */ \
656 /* ALT_##TYPE##_SECTION_END(0, 0) */ \
657 or 1,1,1; \
658 or 1,1,1; \
659 /* Nested alt sections, default with inner else taken */ \
660 /* BEGIN_##TYPE##_SECTION */ \
661 or 2,2,2; \
662 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
663 /* or 1,1,1; */ \
664 /* ##TYPE##_SECTION_ELSE_NESTED(95) */ \
665 or 5,5,5; \
666 /* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \
667 or 2,2,2; \
668 /* ##TYPE##_SECTION_ELSE */ \
669 /* or 31,31,31; */ \
670 /* BEGIN_##TYPE##_SECTION_NESTED(94) */ \
671 /* or 5,5,5; */ \
672 /* ##TYPE##_SECTION_ELSE_NESTED(94) */ \
673 /* or 1,1,1; */ \
674 /* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */ \
675 /* or 31,31,31; */ \
676 /* ALT_##TYPE##_SECTION_END(0, 0) */ \
677 or 1,1,1; \
678 or 1,1,1; \
679 /* Nested alt sections, else with inner default taken */ \
680 /* BEGIN_##TYPE##_SECTION */ \
681 /* or 2,2,2; */ \
682 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
683 /* or 1,1,1; */ \
684 /* ##TYPE##_SECTION_ELSE_NESTED(95) */ \
685 /* or 5,5,5; */ \
686 /* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \
687 /* or 2,2,2; */ \
688 /* ##TYPE##_SECTION_ELSE */ \
689 or 31,31,31; \
690 /* BEGIN_##TYPE##_SECTION_NESTED(94) */ \
691 or 5,5,5; \
692 /* ##TYPE##_SECTION_ELSE_NESTED(94) */ \
693 /* or 1,1,1; */ \
694 /* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */ \
695 or 31,31,31; \
696 /* ALT_##TYPE##_SECTION_END(0, 1) */ \
697 or 1,1,1; \
698 or 1,1,1; \
699 /* Nested alt sections, else with inner else taken */ \
700 /* BEGIN_##TYPE##_SECTION */ \
701 /* or 2,2,2; */ \
702 /* BEGIN_##TYPE##_SECTION_NESTED(95) */ \
703 /* or 1,1,1; */ \
704 /* ##TYPE##_SECTION_ELSE_NESTED(95) */ \
705 /* or 5,5,5; */ \
706 /* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \
707 /* or 2,2,2; */ \
708 /* ##TYPE##_SECTION_ELSE */ \
709 or 31,31,31; \
710 /* BEGIN_##TYPE##_SECTION_NESTED(94) */ \
711 /* or 5,5,5; */ \
712 /* ##TYPE##_SECTION_ELSE_NESTED(94) */ \
713 or 1,1,1; \
714 /* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) */ \
715 or 31,31,31; \
716 /* ALT_##TYPE##_SECTION_END(0, 1) */ \
717 or 1,1,1; \
718 or 1,1,1; \
719 /* Nested alt sections, else can have large else case */ \
720 /* BEGIN_##TYPE##_SECTION */ \
721 /* or 2,2,2; */ \
722 /* or 2,2,2; */ \
723 /* or 2,2,2; */ \
724 /* or 2,2,2; */ \
725 /* ##TYPE##_SECTION_ELSE */ \
726 /* BEGIN_##TYPE##_SECTION_NESTED(94) */ \
727 /* or 5,5,5; */ \
728 /* or 5,5,5; */ \
729 /* or 5,5,5; */ \
730 /* or 5,5,5; */ \
731 /* ##TYPE##_SECTION_ELSE_NESTED(94) */ \
732 or 1,1,1; \
733 or 1,1,1; \
734 or 1,1,1; \
735 or 1,1,1; \
736 /* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) */ \
737 /* ALT_##TYPE##_SECTION_END(0, 1) */ \
738 or 1,1,1; \
739 or 1,1,1;
740
741 MAKE_MACRO_TEST(FTR);
742 MAKE_MACRO_TEST_EXPECTED(FTR);
743
744 #ifdef CONFIG_PPC64
745 MAKE_MACRO_TEST(FW_FTR);
746 MAKE_MACRO_TEST_EXPECTED(FW_FTR);
747 #endif
748
749 globl(lwsync_fixup_test)
750 1: or 1,1,1
751 LWSYNC
752 globl(end_lwsync_fixup_test)
753
754 globl(lwsync_fixup_test_expected_LWSYNC)
755 1: or 1,1,1
756 lwsync
757
758 globl(lwsync_fixup_test_expected_SYNC)
759 1: or 1,1,1
760 sync
761