xref: /openbmc/linux/arch/powerpc/lib/feature-fixups-test.S (revision 2874c5fd284268364ece81a7bd936f3c8168e567)
1*2874c5fdSThomas Gleixner/* SPDX-License-Identifier: GPL-2.0-or-later */
2362e7701SMichael Ellerman/*
3362e7701SMichael Ellerman * Copyright 2008 Michael Ellerman, IBM Corporation.
4362e7701SMichael Ellerman */
5362e7701SMichael Ellerman
6362e7701SMichael Ellerman#include <asm/feature-fixups.h>
7362e7701SMichael Ellerman#include <asm/ppc_asm.h>
82d1b2027SKumar Gala#include <asm/synch.h>
9ec0c464cSChristophe Leroy#include <asm/asm-compat.h>
10362e7701SMichael Ellerman
11362e7701SMichael Ellerman	.text
12362e7701SMichael Ellerman
13362e7701SMichael Ellerman#define globl(x)		\
14362e7701SMichael Ellerman	.globl x;	\
15362e7701SMichael Ellermanx:
16362e7701SMichael Ellerman
17362e7701SMichael Ellermanglobl(ftr_fixup_test1)
18362e7701SMichael Ellerman	or	1,1,1
19362e7701SMichael Ellerman	or	2,2,2	/* fixup will nop out this instruction */
20362e7701SMichael Ellerman	or	3,3,3
21362e7701SMichael Ellerman
22362e7701SMichael Ellermanglobl(end_ftr_fixup_test1)
23362e7701SMichael Ellerman
24362e7701SMichael Ellermanglobl(ftr_fixup_test1_orig)
25362e7701SMichael Ellerman	or	1,1,1
26362e7701SMichael Ellerman	or	2,2,2
27362e7701SMichael Ellerman	or	3,3,3
28362e7701SMichael Ellerman
29362e7701SMichael Ellermanglobl(ftr_fixup_test1_expected)
30362e7701SMichael Ellerman	or	1,1,1
31362e7701SMichael Ellerman	nop
32362e7701SMichael Ellerman	or	3,3,3
33362e7701SMichael Ellerman
34362e7701SMichael Ellermanglobl(ftr_fixup_test2)
35362e7701SMichael Ellerman	or	1,1,1
36362e7701SMichael Ellerman	or	2,2,2	/* fixup will replace this with ftr_fixup_test2_alt */
37362e7701SMichael Ellerman	or	3,3,3
38362e7701SMichael Ellerman
39362e7701SMichael Ellermanglobl(end_ftr_fixup_test2)
40362e7701SMichael Ellerman
41362e7701SMichael Ellermanglobl(ftr_fixup_test2_orig)
42362e7701SMichael Ellerman	or	1,1,1
43362e7701SMichael Ellerman	or	2,2,2
44362e7701SMichael Ellerman	or	3,3,3
45362e7701SMichael Ellerman
46362e7701SMichael Ellermanglobl(ftr_fixup_test2_alt)
47362e7701SMichael Ellerman	or	31,31,31
48362e7701SMichael Ellerman
49362e7701SMichael Ellermanglobl(ftr_fixup_test2_expected)
50362e7701SMichael Ellerman	or	1,1,1
51362e7701SMichael Ellerman	or	31,31,31
52362e7701SMichael Ellerman	or	3,3,3
53362e7701SMichael Ellerman
54362e7701SMichael Ellermanglobl(ftr_fixup_test3)
55362e7701SMichael Ellerman	or	1,1,1
56362e7701SMichael Ellerman	or	2,2,2	/* fixup will fail to replace this */
57362e7701SMichael Ellerman	or	3,3,3
58362e7701SMichael Ellerman
59362e7701SMichael Ellermanglobl(end_ftr_fixup_test3)
60362e7701SMichael Ellerman
61362e7701SMichael Ellermanglobl(ftr_fixup_test3_orig)
62362e7701SMichael Ellerman	or	1,1,1
63362e7701SMichael Ellerman	or	2,2,2
64362e7701SMichael Ellerman	or	3,3,3
65362e7701SMichael Ellerman
66362e7701SMichael Ellermanglobl(ftr_fixup_test3_alt)
67362e7701SMichael Ellerman	or	31,31,31
68362e7701SMichael Ellerman	or	31,31,31
69362e7701SMichael Ellerman
70362e7701SMichael Ellermanglobl(ftr_fixup_test4)
71362e7701SMichael Ellerman	or	1,1,1
72362e7701SMichael Ellerman	or	2,2,2
73362e7701SMichael Ellerman	or	2,2,2
74362e7701SMichael Ellerman	or	2,2,2
75362e7701SMichael Ellerman	or	2,2,2
76362e7701SMichael Ellerman	or	3,3,3
77362e7701SMichael Ellerman
78362e7701SMichael Ellermanglobl(end_ftr_fixup_test4)
79362e7701SMichael Ellerman
80362e7701SMichael Ellermanglobl(ftr_fixup_test4_expected)
81362e7701SMichael Ellerman	or	1,1,1
82362e7701SMichael Ellerman	or	31,31,31
83362e7701SMichael Ellerman	or	31,31,31
84362e7701SMichael Ellerman	nop
85362e7701SMichael Ellerman	nop
86362e7701SMichael Ellerman	or	3,3,3
87362e7701SMichael Ellerman
88362e7701SMichael Ellermanglobl(ftr_fixup_test4_orig)
89362e7701SMichael Ellerman	or	1,1,1
90362e7701SMichael Ellerman	or	2,2,2
91362e7701SMichael Ellerman	or	2,2,2
92362e7701SMichael Ellerman	or	2,2,2
93362e7701SMichael Ellerman	or	2,2,2
94362e7701SMichael Ellerman	or	3,3,3
95362e7701SMichael Ellerman
96362e7701SMichael Ellermanglobl(ftr_fixup_test4_alt)
97362e7701SMichael Ellerman	or	31,31,31
98362e7701SMichael Ellerman	or	31,31,31
99362e7701SMichael Ellerman
100362e7701SMichael Ellerman
101362e7701SMichael Ellermanglobl(ftr_fixup_test5)
102362e7701SMichael Ellerman	or	1,1,1
103362e7701SMichael EllermanBEGIN_FTR_SECTION
104362e7701SMichael Ellerman	or	2,2,2
105362e7701SMichael Ellerman	or	2,2,2
106362e7701SMichael Ellerman	or	2,2,2
107362e7701SMichael Ellerman	or	2,2,2
108362e7701SMichael Ellerman	or	2,2,2
109362e7701SMichael Ellerman	or	2,2,2
110362e7701SMichael Ellerman	or	2,2,2
111362e7701SMichael EllermanFTR_SECTION_ELSE
112362e7701SMichael Ellerman2:	b	3f
113362e7701SMichael Ellerman3:	or	5,5,5
114362e7701SMichael Ellerman	beq	3b
115362e7701SMichael Ellerman	b	1f
116362e7701SMichael Ellerman	or	6,6,6
117362e7701SMichael Ellerman	b	2b
118362e7701SMichael Ellerman1:	bdnz	3b
119362e7701SMichael EllermanALT_FTR_SECTION_END(0, 1)
120362e7701SMichael Ellerman	or	1,1,1
121362e7701SMichael Ellerman
122362e7701SMichael Ellermanglobl(end_ftr_fixup_test5)
123362e7701SMichael Ellerman
124362e7701SMichael Ellermanglobl(ftr_fixup_test5_expected)
125362e7701SMichael Ellerman	or	1,1,1
126362e7701SMichael Ellerman2:	b	3f
127362e7701SMichael Ellerman3:	or	5,5,5
128362e7701SMichael Ellerman	beq	3b
129362e7701SMichael Ellerman	b	1f
130362e7701SMichael Ellerman	or	6,6,6
131362e7701SMichael Ellerman	b	2b
132362e7701SMichael Ellerman1:	bdnz	3b
133362e7701SMichael Ellerman	or	1,1,1
134362e7701SMichael Ellerman
135362e7701SMichael Ellermanglobl(ftr_fixup_test6)
136362e7701SMichael Ellerman1:	or	1,1,1
137362e7701SMichael EllermanBEGIN_FTR_SECTION
138362e7701SMichael Ellerman	or	5,5,5
1395888da18SKumar Gala2:	PPC_LCMPI	r3,0
140362e7701SMichael Ellerman	beq	4f
141362e7701SMichael Ellerman	blt	2b
142362e7701SMichael Ellerman	b	1b
143362e7701SMichael Ellerman	b	4f
144362e7701SMichael EllermanFTR_SECTION_ELSE
145362e7701SMichael Ellerman2:	or	2,2,2
1465888da18SKumar Gala	PPC_LCMPI	r3,1
147362e7701SMichael Ellerman	beq	3f
148362e7701SMichael Ellerman	blt	2b
149362e7701SMichael Ellerman	b	3f
150362e7701SMichael Ellerman	b	1b
151362e7701SMichael EllermanALT_FTR_SECTION_END(0, 1)
152362e7701SMichael Ellerman3:	or	1,1,1
153362e7701SMichael Ellerman	or	2,2,2
154362e7701SMichael Ellerman4:	or	3,3,3
155362e7701SMichael Ellerman
156362e7701SMichael Ellermanglobl(end_ftr_fixup_test6)
157362e7701SMichael Ellerman
158362e7701SMichael Ellermanglobl(ftr_fixup_test6_expected)
159362e7701SMichael Ellerman1:	or	1,1,1
160362e7701SMichael Ellerman2:	or	2,2,2
1615888da18SKumar Gala	PPC_LCMPI	r3,1
162362e7701SMichael Ellerman	beq	3f
163362e7701SMichael Ellerman	blt	2b
164362e7701SMichael Ellerman	b	3f
165362e7701SMichael Ellerman	b	1b
16632810d91SMichael Ellerman3:	or	1,1,1
167362e7701SMichael Ellerman	or	2,2,2
16832810d91SMichael Ellerman	or	3,3,3
169362e7701SMichael Ellerman
1706158faedSMichael Ellermanglobl(ftr_fixup_test7)
1716158faedSMichael Ellerman	or	1,1,1
1726158faedSMichael EllermanBEGIN_FTR_SECTION
1736158faedSMichael Ellerman	or	2,2,2
1746158faedSMichael Ellerman	or	2,2,2
1756158faedSMichael Ellerman	or	2,2,2
1766158faedSMichael Ellerman	or	2,2,2
1776158faedSMichael Ellerman	or	2,2,2
1786158faedSMichael Ellerman	or	2,2,2
1796158faedSMichael Ellerman	or	2,2,2
1806158faedSMichael EllermanFTR_SECTION_ELSE
1816158faedSMichael Ellerman2:	b	3f
1826158faedSMichael Ellerman3:	or	5,5,5
1836158faedSMichael Ellerman	beq	3b
1846158faedSMichael Ellerman	b	1f
1856158faedSMichael Ellerman	or	6,6,6
1866158faedSMichael Ellerman	b	2b
1876158faedSMichael Ellerman	bdnz	3b
1886158faedSMichael Ellerman1:
1896158faedSMichael EllermanALT_FTR_SECTION_END(0, 1)
1906158faedSMichael Ellerman	or	1,1,1
1916158faedSMichael Ellerman	or	1,1,1
1926158faedSMichael Ellerman
1936158faedSMichael Ellermanglobl(end_ftr_fixup_test7)
1946158faedSMichael Ellerman	nop
1956158faedSMichael Ellerman
1966158faedSMichael Ellermanglobl(ftr_fixup_test7_expected)
1976158faedSMichael Ellerman	or	1,1,1
1986158faedSMichael Ellerman2:	b	3f
1996158faedSMichael Ellerman3:	or	5,5,5
2006158faedSMichael Ellerman	beq	3b
2016158faedSMichael Ellerman	b	1f
2026158faedSMichael Ellerman	or	6,6,6
2036158faedSMichael Ellerman	b	2b
2046158faedSMichael Ellerman	bdnz	3b
2056158faedSMichael Ellerman1:	or	1,1,1
206362e7701SMichael Ellerman
207c0337288SMichael Ellerman#if 0
208c0337288SMichael Ellerman/* Test that if we have a larger else case the assembler spots it and
209c0337288SMichael Ellerman * reports an error. #if 0'ed so as not to break the build normally.
210c0337288SMichael Ellerman */
211b58e7987SMichael Ellermanftr_fixup_test_too_big:
212c0337288SMichael Ellerman	or	1,1,1
213c0337288SMichael EllermanBEGIN_FTR_SECTION
214c0337288SMichael Ellerman	or	2,2,2
215c0337288SMichael Ellerman	or	2,2,2
216c0337288SMichael Ellerman	or	2,2,2
217c0337288SMichael EllermanFTR_SECTION_ELSE
218c0337288SMichael Ellerman	or	3,3,3
219c0337288SMichael Ellerman	or	3,3,3
220c0337288SMichael Ellerman	or	3,3,3
221c0337288SMichael Ellerman	or	3,3,3
222c0337288SMichael EllermanALT_FTR_SECTION_END(0, 1)
223c0337288SMichael Ellerman	or	1,1,1
224c0337288SMichael Ellerman#endif
225c0337288SMichael Ellerman
226362e7701SMichael Ellerman#define	MAKE_MACRO_TEST(TYPE)						\
227362e7701SMichael Ellermanglobl(ftr_fixup_test_ ##TYPE##_macros)					\
228362e7701SMichael Ellerman	or	1,1,1;							\
229362e7701SMichael Ellerman	/* Basic test, this section should all be nop'ed */		\
230362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
231362e7701SMichael Ellerman	or	2,2,2;							\
232362e7701SMichael Ellerman	or	2,2,2;							\
233362e7701SMichael Ellerman	or	2,2,2;							\
234362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 1)						\
235362e7701SMichael Ellerman	or	1,1,1;							\
236362e7701SMichael Ellerman	or	1,1,1;							\
237362e7701SMichael Ellerman	/* Basic test, this section should NOT be nop'ed */		\
238362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
239362e7701SMichael Ellerman	or	2,2,2;							\
240362e7701SMichael Ellerman	or	2,2,2;							\
241362e7701SMichael Ellerman	or	2,2,2;							\
242362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0)						\
243362e7701SMichael Ellerman	or	1,1,1;							\
244362e7701SMichael Ellerman	or	1,1,1;							\
245362e7701SMichael Ellerman	/* Nesting test, inner section should be nop'ed */		\
246362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
247362e7701SMichael Ellerman	or	2,2,2;							\
248362e7701SMichael Ellerman	or	2,2,2;							\
249362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(80)					\
250362e7701SMichael Ellerman	or	3,3,3;							\
251362e7701SMichael Ellerman	or	3,3,3;							\
252362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 80)					\
253362e7701SMichael Ellerman	or	2,2,2;							\
254362e7701SMichael Ellerman	or	2,2,2;							\
255362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0)						\
256362e7701SMichael Ellerman	or	1,1,1;							\
257362e7701SMichael Ellerman	or	1,1,1;							\
258362e7701SMichael Ellerman	/* Nesting test, whole section should be nop'ed */		\
259362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
260362e7701SMichael Ellerman	or	2,2,2;							\
261362e7701SMichael Ellerman	or	2,2,2;							\
262362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(80)					\
263362e7701SMichael Ellerman	or	3,3,3;							\
264362e7701SMichael Ellerman	or	3,3,3;							\
265362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 0, 80)					\
266362e7701SMichael Ellerman	or	2,2,2;							\
267362e7701SMichael Ellerman	or	2,2,2;							\
268362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 1)						\
269362e7701SMichael Ellerman	or	1,1,1;							\
270362e7701SMichael Ellerman	or	1,1,1;							\
271362e7701SMichael Ellerman	/* Nesting test, none should be nop'ed */			\
272362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
273362e7701SMichael Ellerman	or	2,2,2;							\
274362e7701SMichael Ellerman	or	2,2,2;							\
275362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(80)					\
276362e7701SMichael Ellerman	or	3,3,3;							\
277362e7701SMichael Ellerman	or	3,3,3;							\
278362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 0, 80)					\
279362e7701SMichael Ellerman	or	2,2,2;							\
280362e7701SMichael Ellerman	or	2,2,2;							\
281362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0)						\
282362e7701SMichael Ellerman	or	1,1,1;							\
283362e7701SMichael Ellerman	or	1,1,1;							\
284362e7701SMichael Ellerman	/* Basic alt section test, default case should be taken */	\
285362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
286362e7701SMichael Ellerman	or	3,3,3;							\
287362e7701SMichael Ellerman	or	3,3,3;							\
288362e7701SMichael Ellerman	or	3,3,3;							\
289362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
290362e7701SMichael Ellerman	or	5,5,5;							\
291362e7701SMichael Ellerman	or	5,5,5;							\
292362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0)						\
293362e7701SMichael Ellerman	or	1,1,1;							\
294362e7701SMichael Ellerman	or	1,1,1;							\
295362e7701SMichael Ellerman	/* Basic alt section test, else case should be taken */		\
296362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
297362e7701SMichael Ellerman	or	3,3,3;							\
298362e7701SMichael Ellerman	or	3,3,3;							\
299362e7701SMichael Ellerman	or	3,3,3;							\
300362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
301362e7701SMichael Ellerman	or	31,31,31;						\
302362e7701SMichael Ellerman	or	31,31,31;						\
303362e7701SMichael Ellerman	or	31,31,31;						\
304362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1)						\
305362e7701SMichael Ellerman	or	1,1,1;							\
306362e7701SMichael Ellerman	or	1,1,1;							\
307362e7701SMichael Ellerman	/* Alt with smaller else case, should be padded with nops */	\
308362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
309362e7701SMichael Ellerman	or	3,3,3;							\
310362e7701SMichael Ellerman	or	3,3,3;							\
311362e7701SMichael Ellerman	or	3,3,3;							\
312362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
313362e7701SMichael Ellerman	or	31,31,31;						\
314362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1)						\
315362e7701SMichael Ellerman	or	1,1,1;							\
316362e7701SMichael Ellerman	or	1,1,1;							\
317362e7701SMichael Ellerman	/* Alt section with nested section in default case */		\
318362e7701SMichael Ellerman	/* Default case should be taken, with nop'ed inner section */	\
319362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
320362e7701SMichael Ellerman	or	3,3,3;							\
321362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
322362e7701SMichael Ellerman	or	3,3,3;							\
323362e7701SMichael Ellerman	or	3,3,3;							\
324362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 95)					\
325362e7701SMichael Ellerman	or	3,3,3;							\
326362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
327362e7701SMichael Ellerman	or	2,2,2;							\
328362e7701SMichael Ellerman	or	2,2,2;							\
329362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0)						\
330362e7701SMichael Ellerman	or	1,1,1;							\
331362e7701SMichael Ellerman	or	1,1,1;							\
332362e7701SMichael Ellerman	/* Alt section with nested section in else, default taken */	\
333362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
334362e7701SMichael Ellerman	or	3,3,3;							\
335362e7701SMichael Ellerman	or	3,3,3;							\
336362e7701SMichael Ellerman	or	3,3,3;							\
337362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
338362e7701SMichael Ellerman	or	5,5,5;							\
339362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
340362e7701SMichael Ellerman	or	3,3,3;							\
341362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 95)					\
342362e7701SMichael Ellerman	or	5,5,5;							\
343362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0)						\
344362e7701SMichael Ellerman	or	1,1,1;							\
345362e7701SMichael Ellerman	or	1,1,1;							\
346362e7701SMichael Ellerman	/* Alt section with nested section in else, else taken & nop */	\
347362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
348362e7701SMichael Ellerman	or	3,3,3;							\
349362e7701SMichael Ellerman	or	3,3,3;							\
350362e7701SMichael Ellerman	or	3,3,3;							\
351362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
352362e7701SMichael Ellerman	or	5,5,5;							\
353362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
354362e7701SMichael Ellerman	or	3,3,3;							\
355362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 95)					\
356362e7701SMichael Ellerman	or	5,5,5;							\
357362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1)						\
358362e7701SMichael Ellerman	or	1,1,1;							\
359362e7701SMichael Ellerman	or	1,1,1;							\
360362e7701SMichael Ellerman	/* Feature section with nested alt section, default taken */	\
361362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
362362e7701SMichael Ellerman	or	2,2,2;							\
363362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
364362e7701SMichael Ellerman	or	1,1,1;							\
365362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95)					\
366362e7701SMichael Ellerman	or	5,5,5;							\
367362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 95)				\
368362e7701SMichael Ellerman	or	2,2,2;							\
369362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0)						\
370362e7701SMichael Ellerman	or	1,1,1;							\
371362e7701SMichael Ellerman	or	1,1,1;							\
372362e7701SMichael Ellerman	/* Feature section with nested alt section, else taken */	\
373362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
374362e7701SMichael Ellerman	or	2,2,2;							\
375362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
376362e7701SMichael Ellerman	or	1,1,1;							\
377362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95)					\
378362e7701SMichael Ellerman	or	5,5,5;							\
379362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 95)				\
380362e7701SMichael Ellerman	or	2,2,2;							\
381362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0)						\
382362e7701SMichael Ellerman	or	1,1,1;							\
383362e7701SMichael Ellerman	or	1,1,1;							\
384362e7701SMichael Ellerman	/* Feature section with nested alt section, all nop'ed */	\
385362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
386362e7701SMichael Ellerman	or	2,2,2;							\
387362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
388362e7701SMichael Ellerman	or	1,1,1;							\
389362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95)					\
390362e7701SMichael Ellerman	or	5,5,5;							\
391362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 95)				\
392362e7701SMichael Ellerman	or	2,2,2;							\
393362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 1)						\
394362e7701SMichael Ellerman	or	1,1,1;							\
395362e7701SMichael Ellerman	or	1,1,1;							\
396362e7701SMichael Ellerman	/* Nested alt sections, default with inner default taken */	\
397362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
398362e7701SMichael Ellerman	or	2,2,2;							\
399362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
400362e7701SMichael Ellerman	or	1,1,1;							\
401362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95)					\
402362e7701SMichael Ellerman	or	5,5,5;							\
403362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 95)				\
404362e7701SMichael Ellerman	or	2,2,2;							\
405362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
406362e7701SMichael Ellerman	or	31,31,31;						\
407362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94)					\
408362e7701SMichael Ellerman	or	5,5,5;							\
409362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94)					\
410362e7701SMichael Ellerman	or	1,1,1;							\
411362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 94)				\
412362e7701SMichael Ellerman	or	31,31,31;						\
413362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0)						\
414362e7701SMichael Ellerman	or	1,1,1;							\
415362e7701SMichael Ellerman	or	1,1,1;							\
416362e7701SMichael Ellerman	/* Nested alt sections, default with inner else taken */	\
417362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
418362e7701SMichael Ellerman	or	2,2,2;							\
419362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
420362e7701SMichael Ellerman	or	1,1,1;							\
421362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95)					\
422362e7701SMichael Ellerman	or	5,5,5;							\
423362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 95)				\
424362e7701SMichael Ellerman	or	2,2,2;							\
425362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
426362e7701SMichael Ellerman	or	31,31,31;						\
427362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94)					\
428362e7701SMichael Ellerman	or	5,5,5;							\
429362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94)					\
430362e7701SMichael Ellerman	or	1,1,1;							\
431362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 94)				\
432362e7701SMichael Ellerman	or	31,31,31;						\
433362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0)						\
434362e7701SMichael Ellerman	or	1,1,1;							\
435362e7701SMichael Ellerman	or	1,1,1;							\
436362e7701SMichael Ellerman	/* Nested alt sections, else with inner default taken */	\
437362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
438362e7701SMichael Ellerman	or	2,2,2;							\
439362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
440362e7701SMichael Ellerman	or	1,1,1;							\
441362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95)					\
442362e7701SMichael Ellerman	or	5,5,5;							\
443362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 95)				\
444362e7701SMichael Ellerman	or	2,2,2;							\
445362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
446362e7701SMichael Ellerman	or	31,31,31;						\
447362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94)					\
448362e7701SMichael Ellerman	or	5,5,5;							\
449362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94)					\
450362e7701SMichael Ellerman	or	1,1,1;							\
451362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 94)				\
452362e7701SMichael Ellerman	or	31,31,31;						\
453362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1)						\
454362e7701SMichael Ellerman	or	1,1,1;							\
455362e7701SMichael Ellerman	or	1,1,1;							\
456362e7701SMichael Ellerman	/* Nested alt sections, else with inner else taken */		\
457362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
458362e7701SMichael Ellerman	or	2,2,2;							\
459362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95)					\
460362e7701SMichael Ellerman	or	1,1,1;							\
461362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95)					\
462362e7701SMichael Ellerman	or	5,5,5;							\
463362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 95)				\
464362e7701SMichael Ellerman	or	2,2,2;							\
465362e7701SMichael Ellerman##TYPE##_SECTION_ELSE							\
466362e7701SMichael Ellerman	or	31,31,31;						\
467362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94)					\
468362e7701SMichael Ellerman	or	5,5,5;							\
469362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94)					\
470362e7701SMichael Ellerman	or	1,1,1;							\
471362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 94)				\
472362e7701SMichael Ellerman	or	31,31,31;						\
473362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1)						\
474362e7701SMichael Ellerman	or	1,1,1;							\
475362e7701SMichael Ellerman	or	1,1,1;							\
476362e7701SMichael Ellerman	/* Nested alt sections, else can have large else case */	\
477362e7701SMichael EllermanBEGIN_##TYPE##_SECTION							\
478362e7701SMichael Ellerman	or	2,2,2;							\
479362e7701SMichael Ellerman	or	2,2,2;							\
480362e7701SMichael Ellerman	or	2,2,2;							\
481362e7701SMichael Ellerman	or	2,2,2;							\
482362e7701SMichael Ellerman##TYPE##_SECTION_ELSE 							\
483362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94) 					\
484362e7701SMichael Ellerman	or	5,5,5;							\
485362e7701SMichael Ellerman	or	5,5,5;							\
486362e7701SMichael Ellerman	or	5,5,5;							\
487362e7701SMichael Ellerman	or	5,5,5;							\
488362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94) 					\
489362e7701SMichael Ellerman	or	1,1,1;							\
490362e7701SMichael Ellerman	or	1,1,1;							\
491362e7701SMichael Ellerman	or	1,1,1;							\
492362e7701SMichael Ellerman	or	1,1,1;							\
493362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 94)				\
494362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1)						\
495362e7701SMichael Ellerman	or	1,1,1;							\
496362e7701SMichael Ellerman	or	1,1,1;
497362e7701SMichael Ellerman
498362e7701SMichael Ellerman#define	MAKE_MACRO_TEST_EXPECTED(TYPE)					\
499362e7701SMichael Ellermanglobl(ftr_fixup_test_ ##TYPE##_macros_expected)				\
500362e7701SMichael Ellerman	or	1,1,1;							\
501362e7701SMichael Ellerman	/* Basic test, this section should all be nop'ed */		\
502362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
503362e7701SMichael Ellerman	nop;								\
504362e7701SMichael Ellerman	nop;								\
505362e7701SMichael Ellerman	nop;								\
506362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 1) */					\
507362e7701SMichael Ellerman	or	1,1,1;							\
508362e7701SMichael Ellerman	or	1,1,1;							\
509362e7701SMichael Ellerman	/* Basic test, this section should NOT be nop'ed */		\
510362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
511362e7701SMichael Ellerman	or	2,2,2;							\
512362e7701SMichael Ellerman	or	2,2,2;							\
513362e7701SMichael Ellerman	or	2,2,2;							\
514362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */					\
515362e7701SMichael Ellerman	or	1,1,1;							\
516362e7701SMichael Ellerman	or	1,1,1;							\
517362e7701SMichael Ellerman	/* Nesting test, inner section should be nop'ed */		\
518362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
519362e7701SMichael Ellerman	or	2,2,2;							\
520362e7701SMichael Ellerman	or	2,2,2;							\
521362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(80) */					\
522362e7701SMichael Ellerman	nop;								\
523362e7701SMichael Ellerman	nop;								\
524362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 80) */				\
525362e7701SMichael Ellerman	or	2,2,2;							\
526362e7701SMichael Ellerman	or	2,2,2;							\
527362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */					\
528362e7701SMichael Ellerman	or	1,1,1;							\
529362e7701SMichael Ellerman	or	1,1,1;							\
530362e7701SMichael Ellerman	/* Nesting test, whole section should be nop'ed */		\
531362e7701SMichael Ellerman	/* NB. inner section is not nop'ed, but then entire outer is */	\
532362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
533362e7701SMichael Ellerman	nop;								\
534362e7701SMichael Ellerman	nop;								\
535362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(80) */					\
536362e7701SMichael Ellerman	nop;								\
537362e7701SMichael Ellerman	nop;								\
538362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 0, 80) */				\
539362e7701SMichael Ellerman	nop;								\
540362e7701SMichael Ellerman	nop;								\
541362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 1) */					\
542362e7701SMichael Ellerman	or	1,1,1;							\
543362e7701SMichael Ellerman	or	1,1,1;							\
544362e7701SMichael Ellerman	/* Nesting test, none should be nop'ed */			\
545362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
546362e7701SMichael Ellerman	or	2,2,2;							\
547362e7701SMichael Ellerman	or	2,2,2;							\
548362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(80) */					\
549362e7701SMichael Ellerman	or	3,3,3;							\
550362e7701SMichael Ellerman	or	3,3,3;							\
551362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 0, 80) */				\
552362e7701SMichael Ellerman	or	2,2,2;							\
553362e7701SMichael Ellerman	or	2,2,2;							\
554362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */					\
555362e7701SMichael Ellerman	or	1,1,1;							\
556362e7701SMichael Ellerman	or	1,1,1;							\
557362e7701SMichael Ellerman	/* Basic alt section test, default case should be taken */	\
558362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
559362e7701SMichael Ellerman	or	3,3,3;							\
560362e7701SMichael Ellerman	or	3,3,3;							\
561362e7701SMichael Ellerman	or	3,3,3;							\
562362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
563362e7701SMichael Ellerman	/* or	5,5,5; */						\
564362e7701SMichael Ellerman	/* or	5,5,5; */						\
565362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */					\
566362e7701SMichael Ellerman	or	1,1,1;							\
567362e7701SMichael Ellerman	or	1,1,1;							\
568362e7701SMichael Ellerman	/* Basic alt section test, else case should be taken */		\
569362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
570362e7701SMichael Ellerman	/* or	3,3,3; */						\
571362e7701SMichael Ellerman	/* or	3,3,3; */						\
572362e7701SMichael Ellerman	/* or	3,3,3; */						\
573362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
574362e7701SMichael Ellerman	or	31,31,31;						\
575362e7701SMichael Ellerman	or	31,31,31;						\
576362e7701SMichael Ellerman	or	31,31,31;						\
577362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */					\
578362e7701SMichael Ellerman	or	1,1,1;							\
579362e7701SMichael Ellerman	or	1,1,1;							\
580362e7701SMichael Ellerman	/* Alt with smaller else case, should be padded with nops */	\
581362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
582362e7701SMichael Ellerman	/* or	3,3,3; */						\
583362e7701SMichael Ellerman	/* or	3,3,3; */						\
584362e7701SMichael Ellerman	/* or	3,3,3; */						\
585362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
586362e7701SMichael Ellerman	or	31,31,31;						\
587362e7701SMichael Ellerman	nop;								\
588362e7701SMichael Ellerman	nop;								\
589362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */					\
590362e7701SMichael Ellerman	or	1,1,1;							\
591362e7701SMichael Ellerman	or	1,1,1;							\
592362e7701SMichael Ellerman	/* Alt section with nested section in default case */		\
593362e7701SMichael Ellerman	/* Default case should be taken, with nop'ed inner section */	\
594362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
595362e7701SMichael Ellerman	or	3,3,3;							\
596362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
597362e7701SMichael Ellerman	nop;								\
598362e7701SMichael Ellerman	nop;								\
599362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 95) */				\
600362e7701SMichael Ellerman	or	3,3,3;							\
601362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
602362e7701SMichael Ellerman	/* or	2,2,2; */						\
603362e7701SMichael Ellerman	/* or	2,2,2; */						\
604362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */					\
605362e7701SMichael Ellerman	or	1,1,1;							\
606362e7701SMichael Ellerman	or	1,1,1;							\
607362e7701SMichael Ellerman	/* Alt section with nested section in else, default taken */	\
608362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
609362e7701SMichael Ellerman	or	3,3,3;							\
610362e7701SMichael Ellerman	or	3,3,3;							\
611362e7701SMichael Ellerman	or	3,3,3;							\
612362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
613362e7701SMichael Ellerman	/* or	5,5,5; */						\
614362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
615362e7701SMichael Ellerman	/* or	3,3,3; */						\
616362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 95) */				\
617362e7701SMichael Ellerman	/* or	5,5,5; */						\
618362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */					\
619362e7701SMichael Ellerman	or	1,1,1;							\
620362e7701SMichael Ellerman	or	1,1,1;							\
621362e7701SMichael Ellerman	/* Alt section with nested section in else, else taken & nop */	\
622362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
623362e7701SMichael Ellerman	/* or	3,3,3; */						\
624362e7701SMichael Ellerman	/* or	3,3,3; */						\
625362e7701SMichael Ellerman	/* or	3,3,3; */						\
626362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
627362e7701SMichael Ellerman	or	5,5,5;							\
628362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
629362e7701SMichael Ellerman	nop;								\
630362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 95) */				\
631362e7701SMichael Ellerman	or	5,5,5;							\
632362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */					\
633362e7701SMichael Ellerman	or	1,1,1;							\
634362e7701SMichael Ellerman	or	1,1,1;							\
635362e7701SMichael Ellerman	/* Feature section with nested alt section, default taken */	\
636362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
637362e7701SMichael Ellerman	or	2,2,2;							\
638362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
639362e7701SMichael Ellerman	or	1,1,1;							\
640362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */					\
641362e7701SMichael Ellerman	/* or	5,5,5; */						\
642362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */				\
643362e7701SMichael Ellerman	or	2,2,2;							\
644362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */					\
645362e7701SMichael Ellerman	or	1,1,1;							\
646362e7701SMichael Ellerman	or	1,1,1;							\
647362e7701SMichael Ellerman	/* Feature section with nested alt section, else taken */	\
648362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
649362e7701SMichael Ellerman	or	2,2,2;							\
650362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
651362e7701SMichael Ellerman	/* or	1,1,1; */						\
652362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */					\
653362e7701SMichael Ellerman	or	5,5,5;							\
654362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */				\
655362e7701SMichael Ellerman	or	2,2,2;							\
656362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */					\
657362e7701SMichael Ellerman	or	1,1,1;							\
658362e7701SMichael Ellerman	or	1,1,1;							\
659362e7701SMichael Ellerman	/* Feature section with nested alt section, all nop'ed */	\
660362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
661362e7701SMichael Ellerman	nop;								\
662362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
663362e7701SMichael Ellerman	nop;								\
664362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */					\
665362e7701SMichael Ellerman	/* or	5,5,5; */						\
666362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */				\
667362e7701SMichael Ellerman	nop;								\
668362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 1) */					\
669362e7701SMichael Ellerman	or	1,1,1;							\
670362e7701SMichael Ellerman	or	1,1,1;							\
671362e7701SMichael Ellerman	/* Nested alt sections, default with inner default taken */	\
672362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
673362e7701SMichael Ellerman	or	2,2,2;							\
674362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
675362e7701SMichael Ellerman	or	1,1,1;							\
676362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */					\
677362e7701SMichael Ellerman	/* or	5,5,5; */						\
678362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */				\
679362e7701SMichael Ellerman	or	2,2,2;							\
680362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
681362e7701SMichael Ellerman	/* or	31,31,31; */						\
682362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */					\
683362e7701SMichael Ellerman	/* or	5,5,5; */						\
684362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */					\
685362e7701SMichael Ellerman	/* or	1,1,1; */						\
686362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */				\
687362e7701SMichael Ellerman	/* or	31,31,31; */						\
688362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */					\
689362e7701SMichael Ellerman	or	1,1,1;							\
690362e7701SMichael Ellerman	or	1,1,1;							\
691362e7701SMichael Ellerman	/* Nested alt sections, default with inner else taken */	\
692362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
693362e7701SMichael Ellerman	or	2,2,2;							\
694362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
695362e7701SMichael Ellerman	/* or	1,1,1; */						\
696362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */					\
697362e7701SMichael Ellerman	or	5,5,5;							\
698362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */				\
699362e7701SMichael Ellerman	or	2,2,2;							\
700362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
701362e7701SMichael Ellerman	/* or	31,31,31; */						\
702362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */					\
703362e7701SMichael Ellerman	/* or	5,5,5; */						\
704362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */					\
705362e7701SMichael Ellerman	/* or	1,1,1; */						\
706362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */				\
707362e7701SMichael Ellerman	/* or	31,31,31; */						\
708362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */					\
709362e7701SMichael Ellerman	or	1,1,1;							\
710362e7701SMichael Ellerman	or	1,1,1;							\
711362e7701SMichael Ellerman	/* Nested alt sections, else with inner default taken */	\
712362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
713362e7701SMichael Ellerman	/* or	2,2,2; */						\
714362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
715362e7701SMichael Ellerman	/* or	1,1,1; */						\
716362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */					\
717362e7701SMichael Ellerman	/* or	5,5,5; */						\
718362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */				\
719362e7701SMichael Ellerman	/* or	2,2,2; */						\
720362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
721362e7701SMichael Ellerman	or	31,31,31;						\
722362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */					\
723362e7701SMichael Ellerman	or	5,5,5;							\
724362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */					\
725362e7701SMichael Ellerman	/* or	1,1,1; */						\
726362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */				\
727362e7701SMichael Ellerman	or	31,31,31;						\
728362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */					\
729362e7701SMichael Ellerman	or	1,1,1;							\
730362e7701SMichael Ellerman	or	1,1,1;							\
731362e7701SMichael Ellerman	/* Nested alt sections, else with inner else taken */		\
732362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
733362e7701SMichael Ellerman	/* or	2,2,2; */						\
734362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */					\
735362e7701SMichael Ellerman	/* or	1,1,1; */						\
736362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */					\
737362e7701SMichael Ellerman	/* or	5,5,5; */						\
738362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */				\
739362e7701SMichael Ellerman	/* or	2,2,2; */						\
740362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
741362e7701SMichael Ellerman	or	31,31,31;						\
742362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */					\
743362e7701SMichael Ellerman	/* or	5,5,5; */						\
744362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */					\
745362e7701SMichael Ellerman	or	1,1,1;							\
746362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) */				\
747362e7701SMichael Ellerman	or	31,31,31;						\
748362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */					\
749362e7701SMichael Ellerman	or	1,1,1;							\
750362e7701SMichael Ellerman	or	1,1,1;							\
751362e7701SMichael Ellerman	/* Nested alt sections, else can have large else case */	\
752362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */						\
753362e7701SMichael Ellerman	/* or	2,2,2; */						\
754362e7701SMichael Ellerman	/* or	2,2,2; */						\
755362e7701SMichael Ellerman	/* or	2,2,2; */						\
756362e7701SMichael Ellerman	/* or	2,2,2; */						\
757362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */						\
758362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */					\
759362e7701SMichael Ellerman	/* or	5,5,5; */						\
760362e7701SMichael Ellerman	/* or	5,5,5; */						\
761362e7701SMichael Ellerman	/* or	5,5,5; */						\
762362e7701SMichael Ellerman	/* or	5,5,5; */						\
763362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */					\
764362e7701SMichael Ellerman	or	1,1,1;							\
765362e7701SMichael Ellerman	or	1,1,1;							\
766362e7701SMichael Ellerman	or	1,1,1;							\
767362e7701SMichael Ellerman	or	1,1,1;							\
768362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) */				\
769362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */					\
770362e7701SMichael Ellerman	or	1,1,1;							\
771362e7701SMichael Ellerman	or	1,1,1;
772362e7701SMichael Ellerman
773362e7701SMichael EllermanMAKE_MACRO_TEST(FTR);
774362e7701SMichael EllermanMAKE_MACRO_TEST_EXPECTED(FTR);
775362e7701SMichael Ellerman
776362e7701SMichael Ellerman#ifdef CONFIG_PPC64
777362e7701SMichael EllermanMAKE_MACRO_TEST(FW_FTR);
778362e7701SMichael EllermanMAKE_MACRO_TEST_EXPECTED(FW_FTR);
779362e7701SMichael Ellerman#endif
7802d1b2027SKumar Gala
7812d1b2027SKumar Galaglobl(lwsync_fixup_test)
7822d1b2027SKumar Gala1:	or	1,1,1
7832d1b2027SKumar Gala	LWSYNC
7842d1b2027SKumar Galaglobl(end_lwsync_fixup_test)
7852d1b2027SKumar Gala
7862d1b2027SKumar Galaglobl(lwsync_fixup_test_expected_LWSYNC)
7872d1b2027SKumar Gala1:	or	1,1,1
7882d1b2027SKumar Gala	lwsync
7892d1b2027SKumar Gala
7902d1b2027SKumar Galaglobl(lwsync_fixup_test_expected_SYNC)
7912d1b2027SKumar Gala1:	or	1,1,1
7922d1b2027SKumar Gala	sync
7932d1b2027SKumar Gala
794