1362e7701SMichael Ellerman/* 2362e7701SMichael Ellerman * Copyright 2008 Michael Ellerman, IBM Corporation. 3362e7701SMichael Ellerman * 4362e7701SMichael Ellerman * 5362e7701SMichael Ellerman * This program is free software; you can redistribute it and/or 6362e7701SMichael Ellerman * modify it under the terms of the GNU General Public License 7362e7701SMichael Ellerman * as published by the Free Software Foundation; either version 8362e7701SMichael Ellerman * 2 of the License, or (at your option) any later version. 9362e7701SMichael Ellerman */ 10362e7701SMichael Ellerman 11362e7701SMichael Ellerman#include <asm/feature-fixups.h> 12362e7701SMichael Ellerman#include <asm/ppc_asm.h> 13362e7701SMichael Ellerman 14362e7701SMichael Ellerman .text 15362e7701SMichael Ellerman 16362e7701SMichael Ellerman#define globl(x) \ 17362e7701SMichael Ellerman .globl x; \ 18362e7701SMichael Ellermanx: 19362e7701SMichael Ellerman 20362e7701SMichael Ellermanglobl(ftr_fixup_test1) 21362e7701SMichael Ellerman or 1,1,1 22362e7701SMichael Ellerman or 2,2,2 /* fixup will nop out this instruction */ 23362e7701SMichael Ellerman or 3,3,3 24362e7701SMichael Ellerman 25362e7701SMichael Ellermanglobl(end_ftr_fixup_test1) 26362e7701SMichael Ellerman 27362e7701SMichael Ellermanglobl(ftr_fixup_test1_orig) 28362e7701SMichael Ellerman or 1,1,1 29362e7701SMichael Ellerman or 2,2,2 30362e7701SMichael Ellerman or 3,3,3 31362e7701SMichael Ellerman 32362e7701SMichael Ellermanglobl(ftr_fixup_test1_expected) 33362e7701SMichael Ellerman or 1,1,1 34362e7701SMichael Ellerman nop 35362e7701SMichael Ellerman or 3,3,3 36362e7701SMichael Ellerman 37362e7701SMichael Ellermanglobl(ftr_fixup_test2) 38362e7701SMichael Ellerman or 1,1,1 39362e7701SMichael Ellerman or 2,2,2 /* fixup will replace this with ftr_fixup_test2_alt */ 40362e7701SMichael Ellerman or 3,3,3 41362e7701SMichael Ellerman 42362e7701SMichael Ellermanglobl(end_ftr_fixup_test2) 43362e7701SMichael Ellerman 44362e7701SMichael Ellermanglobl(ftr_fixup_test2_orig) 45362e7701SMichael Ellerman or 1,1,1 46362e7701SMichael Ellerman or 2,2,2 47362e7701SMichael Ellerman or 3,3,3 48362e7701SMichael Ellerman 49362e7701SMichael Ellermanglobl(ftr_fixup_test2_alt) 50362e7701SMichael Ellerman or 31,31,31 51362e7701SMichael Ellerman 52362e7701SMichael Ellermanglobl(ftr_fixup_test2_expected) 53362e7701SMichael Ellerman or 1,1,1 54362e7701SMichael Ellerman or 31,31,31 55362e7701SMichael Ellerman or 3,3,3 56362e7701SMichael Ellerman 57362e7701SMichael Ellermanglobl(ftr_fixup_test3) 58362e7701SMichael Ellerman or 1,1,1 59362e7701SMichael Ellerman or 2,2,2 /* fixup will fail to replace this */ 60362e7701SMichael Ellerman or 3,3,3 61362e7701SMichael Ellerman 62362e7701SMichael Ellermanglobl(end_ftr_fixup_test3) 63362e7701SMichael Ellerman 64362e7701SMichael Ellermanglobl(ftr_fixup_test3_orig) 65362e7701SMichael Ellerman or 1,1,1 66362e7701SMichael Ellerman or 2,2,2 67362e7701SMichael Ellerman or 3,3,3 68362e7701SMichael Ellerman 69362e7701SMichael Ellermanglobl(ftr_fixup_test3_alt) 70362e7701SMichael Ellerman or 31,31,31 71362e7701SMichael Ellerman or 31,31,31 72362e7701SMichael Ellerman 73362e7701SMichael Ellermanglobl(ftr_fixup_test4) 74362e7701SMichael Ellerman or 1,1,1 75362e7701SMichael Ellerman or 2,2,2 76362e7701SMichael Ellerman or 2,2,2 77362e7701SMichael Ellerman or 2,2,2 78362e7701SMichael Ellerman or 2,2,2 79362e7701SMichael Ellerman or 3,3,3 80362e7701SMichael Ellerman 81362e7701SMichael Ellermanglobl(end_ftr_fixup_test4) 82362e7701SMichael Ellerman 83362e7701SMichael Ellermanglobl(ftr_fixup_test4_expected) 84362e7701SMichael Ellerman or 1,1,1 85362e7701SMichael Ellerman or 31,31,31 86362e7701SMichael Ellerman or 31,31,31 87362e7701SMichael Ellerman nop 88362e7701SMichael Ellerman nop 89362e7701SMichael Ellerman or 3,3,3 90362e7701SMichael Ellerman 91362e7701SMichael Ellermanglobl(ftr_fixup_test4_orig) 92362e7701SMichael Ellerman or 1,1,1 93362e7701SMichael Ellerman or 2,2,2 94362e7701SMichael Ellerman or 2,2,2 95362e7701SMichael Ellerman or 2,2,2 96362e7701SMichael Ellerman or 2,2,2 97362e7701SMichael Ellerman or 3,3,3 98362e7701SMichael Ellerman 99362e7701SMichael Ellermanglobl(ftr_fixup_test4_alt) 100362e7701SMichael Ellerman or 31,31,31 101362e7701SMichael Ellerman or 31,31,31 102362e7701SMichael Ellerman 103362e7701SMichael Ellerman 104362e7701SMichael Ellermanglobl(ftr_fixup_test5) 105362e7701SMichael Ellerman or 1,1,1 106362e7701SMichael EllermanBEGIN_FTR_SECTION 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 Ellerman or 2,2,2 112362e7701SMichael Ellerman or 2,2,2 113362e7701SMichael Ellerman or 2,2,2 114362e7701SMichael EllermanFTR_SECTION_ELSE 115362e7701SMichael Ellerman2: b 3f 116362e7701SMichael Ellerman3: or 5,5,5 117362e7701SMichael Ellerman beq 3b 118362e7701SMichael Ellerman b 1f 119362e7701SMichael Ellerman or 6,6,6 120362e7701SMichael Ellerman b 2b 121362e7701SMichael Ellerman1: bdnz 3b 122362e7701SMichael EllermanALT_FTR_SECTION_END(0, 1) 123362e7701SMichael Ellerman or 1,1,1 124362e7701SMichael Ellerman 125362e7701SMichael Ellermanglobl(end_ftr_fixup_test5) 126362e7701SMichael Ellerman 127362e7701SMichael Ellermanglobl(ftr_fixup_test5_expected) 128362e7701SMichael Ellerman or 1,1,1 129362e7701SMichael Ellerman2: b 3f 130362e7701SMichael Ellerman3: or 5,5,5 131362e7701SMichael Ellerman beq 3b 132362e7701SMichael Ellerman b 1f 133362e7701SMichael Ellerman or 6,6,6 134362e7701SMichael Ellerman b 2b 135362e7701SMichael Ellerman1: bdnz 3b 136362e7701SMichael Ellerman or 1,1,1 137362e7701SMichael Ellerman 138362e7701SMichael Ellermanglobl(ftr_fixup_test6) 139362e7701SMichael Ellerman1: or 1,1,1 140362e7701SMichael EllermanBEGIN_FTR_SECTION 141362e7701SMichael Ellerman or 5,5,5 142*5888da18SKumar Gala2: PPC_LCMPI r3,0 143362e7701SMichael Ellerman beq 4f 144362e7701SMichael Ellerman blt 2b 145362e7701SMichael Ellerman b 1b 146362e7701SMichael Ellerman b 4f 147362e7701SMichael EllermanFTR_SECTION_ELSE 148362e7701SMichael Ellerman2: or 2,2,2 149*5888da18SKumar Gala PPC_LCMPI r3,1 150362e7701SMichael Ellerman beq 3f 151362e7701SMichael Ellerman blt 2b 152362e7701SMichael Ellerman b 3f 153362e7701SMichael Ellerman b 1b 154362e7701SMichael EllermanALT_FTR_SECTION_END(0, 1) 155362e7701SMichael Ellerman3: or 1,1,1 156362e7701SMichael Ellerman or 2,2,2 157362e7701SMichael Ellerman4: or 3,3,3 158362e7701SMichael Ellerman 159362e7701SMichael Ellermanglobl(end_ftr_fixup_test6) 160362e7701SMichael Ellerman 161362e7701SMichael Ellermanglobl(ftr_fixup_test6_expected) 162362e7701SMichael Ellerman1: or 1,1,1 163362e7701SMichael Ellerman2: or 2,2,2 164*5888da18SKumar Gala PPC_LCMPI r3,1 165362e7701SMichael Ellerman beq 3f 166362e7701SMichael Ellerman blt 2b 167362e7701SMichael Ellerman b 3f 168362e7701SMichael Ellerman b 1b 169362e7701SMichael Ellerman2: or 1,1,1 170362e7701SMichael Ellerman or 2,2,2 171362e7701SMichael Ellerman3: or 3,3,3 172362e7701SMichael Ellerman 173362e7701SMichael Ellerman 174362e7701SMichael Ellerman#define MAKE_MACRO_TEST(TYPE) \ 175362e7701SMichael Ellermanglobl(ftr_fixup_test_ ##TYPE##_macros) \ 176362e7701SMichael Ellerman or 1,1,1; \ 177362e7701SMichael Ellerman /* Basic test, this section should all be nop'ed */ \ 178362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 179362e7701SMichael Ellerman or 2,2,2; \ 180362e7701SMichael Ellerman or 2,2,2; \ 181362e7701SMichael Ellerman or 2,2,2; \ 182362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 1) \ 183362e7701SMichael Ellerman or 1,1,1; \ 184362e7701SMichael Ellerman or 1,1,1; \ 185362e7701SMichael Ellerman /* Basic test, this section should NOT be nop'ed */ \ 186362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 187362e7701SMichael Ellerman or 2,2,2; \ 188362e7701SMichael Ellerman or 2,2,2; \ 189362e7701SMichael Ellerman or 2,2,2; \ 190362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0) \ 191362e7701SMichael Ellerman or 1,1,1; \ 192362e7701SMichael Ellerman or 1,1,1; \ 193362e7701SMichael Ellerman /* Nesting test, inner section should be nop'ed */ \ 194362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 195362e7701SMichael Ellerman or 2,2,2; \ 196362e7701SMichael Ellerman or 2,2,2; \ 197362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(80) \ 198362e7701SMichael Ellerman or 3,3,3; \ 199362e7701SMichael Ellerman or 3,3,3; \ 200362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 80) \ 201362e7701SMichael Ellerman or 2,2,2; \ 202362e7701SMichael Ellerman or 2,2,2; \ 203362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0) \ 204362e7701SMichael Ellerman or 1,1,1; \ 205362e7701SMichael Ellerman or 1,1,1; \ 206362e7701SMichael Ellerman /* Nesting test, whole section should be nop'ed */ \ 207362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 208362e7701SMichael Ellerman or 2,2,2; \ 209362e7701SMichael Ellerman or 2,2,2; \ 210362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(80) \ 211362e7701SMichael Ellerman or 3,3,3; \ 212362e7701SMichael Ellerman or 3,3,3; \ 213362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 0, 80) \ 214362e7701SMichael Ellerman or 2,2,2; \ 215362e7701SMichael Ellerman or 2,2,2; \ 216362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 1) \ 217362e7701SMichael Ellerman or 1,1,1; \ 218362e7701SMichael Ellerman or 1,1,1; \ 219362e7701SMichael Ellerman /* Nesting test, none should be nop'ed */ \ 220362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 221362e7701SMichael Ellerman or 2,2,2; \ 222362e7701SMichael Ellerman or 2,2,2; \ 223362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(80) \ 224362e7701SMichael Ellerman or 3,3,3; \ 225362e7701SMichael Ellerman or 3,3,3; \ 226362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 0, 80) \ 227362e7701SMichael Ellerman or 2,2,2; \ 228362e7701SMichael Ellerman or 2,2,2; \ 229362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0) \ 230362e7701SMichael Ellerman or 1,1,1; \ 231362e7701SMichael Ellerman or 1,1,1; \ 232362e7701SMichael Ellerman /* Basic alt section test, default case should be taken */ \ 233362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 234362e7701SMichael Ellerman or 3,3,3; \ 235362e7701SMichael Ellerman or 3,3,3; \ 236362e7701SMichael Ellerman or 3,3,3; \ 237362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 238362e7701SMichael Ellerman or 5,5,5; \ 239362e7701SMichael Ellerman or 5,5,5; \ 240362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0) \ 241362e7701SMichael Ellerman or 1,1,1; \ 242362e7701SMichael Ellerman or 1,1,1; \ 243362e7701SMichael Ellerman /* Basic alt section test, else case should be taken */ \ 244362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 245362e7701SMichael Ellerman or 3,3,3; \ 246362e7701SMichael Ellerman or 3,3,3; \ 247362e7701SMichael Ellerman or 3,3,3; \ 248362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 249362e7701SMichael Ellerman or 31,31,31; \ 250362e7701SMichael Ellerman or 31,31,31; \ 251362e7701SMichael Ellerman or 31,31,31; \ 252362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1) \ 253362e7701SMichael Ellerman or 1,1,1; \ 254362e7701SMichael Ellerman or 1,1,1; \ 255362e7701SMichael Ellerman /* Alt with smaller else case, should be padded with nops */ \ 256362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 257362e7701SMichael Ellerman or 3,3,3; \ 258362e7701SMichael Ellerman or 3,3,3; \ 259362e7701SMichael Ellerman or 3,3,3; \ 260362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 261362e7701SMichael Ellerman or 31,31,31; \ 262362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1) \ 263362e7701SMichael Ellerman or 1,1,1; \ 264362e7701SMichael Ellerman or 1,1,1; \ 265362e7701SMichael Ellerman /* Alt section with nested section in default case */ \ 266362e7701SMichael Ellerman /* Default case should be taken, with nop'ed inner section */ \ 267362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 268362e7701SMichael Ellerman or 3,3,3; \ 269362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 270362e7701SMichael Ellerman or 3,3,3; \ 271362e7701SMichael Ellerman or 3,3,3; \ 272362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 95) \ 273362e7701SMichael Ellerman or 3,3,3; \ 274362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 275362e7701SMichael Ellerman or 2,2,2; \ 276362e7701SMichael Ellerman or 2,2,2; \ 277362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0) \ 278362e7701SMichael Ellerman or 1,1,1; \ 279362e7701SMichael Ellerman or 1,1,1; \ 280362e7701SMichael Ellerman /* Alt section with nested section in else, default taken */ \ 281362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 282362e7701SMichael Ellerman or 3,3,3; \ 283362e7701SMichael Ellerman or 3,3,3; \ 284362e7701SMichael Ellerman or 3,3,3; \ 285362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 286362e7701SMichael Ellerman or 5,5,5; \ 287362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 288362e7701SMichael Ellerman or 3,3,3; \ 289362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 95) \ 290362e7701SMichael Ellerman or 5,5,5; \ 291362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0) \ 292362e7701SMichael Ellerman or 1,1,1; \ 293362e7701SMichael Ellerman or 1,1,1; \ 294362e7701SMichael Ellerman /* Alt section with nested section in else, else taken & nop */ \ 295362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 296362e7701SMichael Ellerman or 3,3,3; \ 297362e7701SMichael Ellerman or 3,3,3; \ 298362e7701SMichael Ellerman or 3,3,3; \ 299362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 300362e7701SMichael Ellerman or 5,5,5; \ 301362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 302362e7701SMichael Ellerman or 3,3,3; \ 303362e7701SMichael EllermanEND_##TYPE##_SECTION_NESTED(0, 1, 95) \ 304362e7701SMichael Ellerman or 5,5,5; \ 305362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1) \ 306362e7701SMichael Ellerman or 1,1,1; \ 307362e7701SMichael Ellerman or 1,1,1; \ 308362e7701SMichael Ellerman /* Feature section with nested alt section, default taken */ \ 309362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 310362e7701SMichael Ellerman or 2,2,2; \ 311362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 312362e7701SMichael Ellerman or 1,1,1; \ 313362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95) \ 314362e7701SMichael Ellerman or 5,5,5; \ 315362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) \ 316362e7701SMichael Ellerman or 2,2,2; \ 317362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0) \ 318362e7701SMichael Ellerman or 1,1,1; \ 319362e7701SMichael Ellerman or 1,1,1; \ 320362e7701SMichael Ellerman /* Feature section with nested alt section, else taken */ \ 321362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 322362e7701SMichael Ellerman or 2,2,2; \ 323362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 324362e7701SMichael Ellerman or 1,1,1; \ 325362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95) \ 326362e7701SMichael Ellerman or 5,5,5; \ 327362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) \ 328362e7701SMichael Ellerman or 2,2,2; \ 329362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 0) \ 330362e7701SMichael Ellerman or 1,1,1; \ 331362e7701SMichael Ellerman or 1,1,1; \ 332362e7701SMichael Ellerman /* Feature section with nested alt section, all nop'ed */ \ 333362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 334362e7701SMichael Ellerman or 2,2,2; \ 335362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 336362e7701SMichael Ellerman or 1,1,1; \ 337362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95) \ 338362e7701SMichael Ellerman or 5,5,5; \ 339362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) \ 340362e7701SMichael Ellerman or 2,2,2; \ 341362e7701SMichael EllermanEND_##TYPE##_SECTION(0, 1) \ 342362e7701SMichael Ellerman or 1,1,1; \ 343362e7701SMichael Ellerman or 1,1,1; \ 344362e7701SMichael Ellerman /* Nested alt sections, default with inner default taken */ \ 345362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 346362e7701SMichael Ellerman or 2,2,2; \ 347362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 348362e7701SMichael Ellerman or 1,1,1; \ 349362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95) \ 350362e7701SMichael Ellerman or 5,5,5; \ 351362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) \ 352362e7701SMichael Ellerman or 2,2,2; \ 353362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 354362e7701SMichael Ellerman or 31,31,31; \ 355362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94) \ 356362e7701SMichael Ellerman or 5,5,5; \ 357362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94) \ 358362e7701SMichael Ellerman or 1,1,1; \ 359362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) \ 360362e7701SMichael Ellerman or 31,31,31; \ 361362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0) \ 362362e7701SMichael Ellerman or 1,1,1; \ 363362e7701SMichael Ellerman or 1,1,1; \ 364362e7701SMichael Ellerman /* Nested alt sections, default with inner else taken */ \ 365362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 366362e7701SMichael Ellerman or 2,2,2; \ 367362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 368362e7701SMichael Ellerman or 1,1,1; \ 369362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95) \ 370362e7701SMichael Ellerman or 5,5,5; \ 371362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) \ 372362e7701SMichael Ellerman or 2,2,2; \ 373362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 374362e7701SMichael Ellerman or 31,31,31; \ 375362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94) \ 376362e7701SMichael Ellerman or 5,5,5; \ 377362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94) \ 378362e7701SMichael Ellerman or 1,1,1; \ 379362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) \ 380362e7701SMichael Ellerman or 31,31,31; \ 381362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 0) \ 382362e7701SMichael Ellerman or 1,1,1; \ 383362e7701SMichael Ellerman or 1,1,1; \ 384362e7701SMichael Ellerman /* Nested alt sections, else with inner default taken */ \ 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, 1, 95) \ 392362e7701SMichael Ellerman or 2,2,2; \ 393362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 394362e7701SMichael Ellerman or 31,31,31; \ 395362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94) \ 396362e7701SMichael Ellerman or 5,5,5; \ 397362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94) \ 398362e7701SMichael Ellerman or 1,1,1; \ 399362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) \ 400362e7701SMichael Ellerman or 31,31,31; \ 401362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1) \ 402362e7701SMichael Ellerman or 1,1,1; \ 403362e7701SMichael Ellerman or 1,1,1; \ 404362e7701SMichael Ellerman /* Nested alt sections, else with inner else taken */ \ 405362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 406362e7701SMichael Ellerman or 2,2,2; \ 407362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(95) \ 408362e7701SMichael Ellerman or 1,1,1; \ 409362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(95) \ 410362e7701SMichael Ellerman or 5,5,5; \ 411362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) \ 412362e7701SMichael Ellerman or 2,2,2; \ 413362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 414362e7701SMichael Ellerman or 31,31,31; \ 415362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94) \ 416362e7701SMichael Ellerman or 5,5,5; \ 417362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94) \ 418362e7701SMichael Ellerman or 1,1,1; \ 419362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) \ 420362e7701SMichael Ellerman or 31,31,31; \ 421362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1) \ 422362e7701SMichael Ellerman or 1,1,1; \ 423362e7701SMichael Ellerman or 1,1,1; \ 424362e7701SMichael Ellerman /* Nested alt sections, else can have large else case */ \ 425362e7701SMichael EllermanBEGIN_##TYPE##_SECTION \ 426362e7701SMichael Ellerman or 2,2,2; \ 427362e7701SMichael Ellerman or 2,2,2; \ 428362e7701SMichael Ellerman or 2,2,2; \ 429362e7701SMichael Ellerman or 2,2,2; \ 430362e7701SMichael Ellerman##TYPE##_SECTION_ELSE \ 431362e7701SMichael EllermanBEGIN_##TYPE##_SECTION_NESTED(94) \ 432362e7701SMichael Ellerman or 5,5,5; \ 433362e7701SMichael Ellerman or 5,5,5; \ 434362e7701SMichael Ellerman or 5,5,5; \ 435362e7701SMichael Ellerman or 5,5,5; \ 436362e7701SMichael Ellerman##TYPE##_SECTION_ELSE_NESTED(94) \ 437362e7701SMichael Ellerman or 1,1,1; \ 438362e7701SMichael Ellerman or 1,1,1; \ 439362e7701SMichael Ellerman or 1,1,1; \ 440362e7701SMichael Ellerman or 1,1,1; \ 441362e7701SMichael EllermanALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) \ 442362e7701SMichael EllermanALT_##TYPE##_SECTION_END(0, 1) \ 443362e7701SMichael Ellerman or 1,1,1; \ 444362e7701SMichael Ellerman or 1,1,1; 445362e7701SMichael Ellerman 446362e7701SMichael Ellerman#define MAKE_MACRO_TEST_EXPECTED(TYPE) \ 447362e7701SMichael Ellermanglobl(ftr_fixup_test_ ##TYPE##_macros_expected) \ 448362e7701SMichael Ellerman or 1,1,1; \ 449362e7701SMichael Ellerman /* Basic test, this section should all be nop'ed */ \ 450362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 451362e7701SMichael Ellerman nop; \ 452362e7701SMichael Ellerman nop; \ 453362e7701SMichael Ellerman nop; \ 454362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 1) */ \ 455362e7701SMichael Ellerman or 1,1,1; \ 456362e7701SMichael Ellerman or 1,1,1; \ 457362e7701SMichael Ellerman /* Basic test, this section should NOT be nop'ed */ \ 458362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 459362e7701SMichael Ellerman or 2,2,2; \ 460362e7701SMichael Ellerman or 2,2,2; \ 461362e7701SMichael Ellerman or 2,2,2; \ 462362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */ \ 463362e7701SMichael Ellerman or 1,1,1; \ 464362e7701SMichael Ellerman or 1,1,1; \ 465362e7701SMichael Ellerman /* Nesting test, inner section should be nop'ed */ \ 466362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 467362e7701SMichael Ellerman or 2,2,2; \ 468362e7701SMichael Ellerman or 2,2,2; \ 469362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(80) */ \ 470362e7701SMichael Ellerman nop; \ 471362e7701SMichael Ellerman nop; \ 472362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 80) */ \ 473362e7701SMichael Ellerman or 2,2,2; \ 474362e7701SMichael Ellerman or 2,2,2; \ 475362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */ \ 476362e7701SMichael Ellerman or 1,1,1; \ 477362e7701SMichael Ellerman or 1,1,1; \ 478362e7701SMichael Ellerman /* Nesting test, whole section should be nop'ed */ \ 479362e7701SMichael Ellerman /* NB. inner section is not nop'ed, but then entire outer is */ \ 480362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 481362e7701SMichael Ellerman nop; \ 482362e7701SMichael Ellerman nop; \ 483362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(80) */ \ 484362e7701SMichael Ellerman nop; \ 485362e7701SMichael Ellerman nop; \ 486362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 0, 80) */ \ 487362e7701SMichael Ellerman nop; \ 488362e7701SMichael Ellerman nop; \ 489362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 1) */ \ 490362e7701SMichael Ellerman or 1,1,1; \ 491362e7701SMichael Ellerman or 1,1,1; \ 492362e7701SMichael Ellerman /* Nesting test, none should be nop'ed */ \ 493362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 494362e7701SMichael Ellerman or 2,2,2; \ 495362e7701SMichael Ellerman or 2,2,2; \ 496362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(80) */ \ 497362e7701SMichael Ellerman or 3,3,3; \ 498362e7701SMichael Ellerman or 3,3,3; \ 499362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 0, 80) */ \ 500362e7701SMichael Ellerman or 2,2,2; \ 501362e7701SMichael Ellerman or 2,2,2; \ 502362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */ \ 503362e7701SMichael Ellerman or 1,1,1; \ 504362e7701SMichael Ellerman or 1,1,1; \ 505362e7701SMichael Ellerman /* Basic alt section test, default case should be taken */ \ 506362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 507362e7701SMichael Ellerman or 3,3,3; \ 508362e7701SMichael Ellerman or 3,3,3; \ 509362e7701SMichael Ellerman or 3,3,3; \ 510362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 511362e7701SMichael Ellerman /* or 5,5,5; */ \ 512362e7701SMichael Ellerman /* or 5,5,5; */ \ 513362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */ \ 514362e7701SMichael Ellerman or 1,1,1; \ 515362e7701SMichael Ellerman or 1,1,1; \ 516362e7701SMichael Ellerman /* Basic alt section test, else case should be taken */ \ 517362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 518362e7701SMichael Ellerman /* or 3,3,3; */ \ 519362e7701SMichael Ellerman /* or 3,3,3; */ \ 520362e7701SMichael Ellerman /* or 3,3,3; */ \ 521362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 522362e7701SMichael Ellerman or 31,31,31; \ 523362e7701SMichael Ellerman or 31,31,31; \ 524362e7701SMichael Ellerman or 31,31,31; \ 525362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */ \ 526362e7701SMichael Ellerman or 1,1,1; \ 527362e7701SMichael Ellerman or 1,1,1; \ 528362e7701SMichael Ellerman /* Alt with smaller else case, should be padded with nops */ \ 529362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 530362e7701SMichael Ellerman /* or 3,3,3; */ \ 531362e7701SMichael Ellerman /* or 3,3,3; */ \ 532362e7701SMichael Ellerman /* or 3,3,3; */ \ 533362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 534362e7701SMichael Ellerman or 31,31,31; \ 535362e7701SMichael Ellerman nop; \ 536362e7701SMichael Ellerman nop; \ 537362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */ \ 538362e7701SMichael Ellerman or 1,1,1; \ 539362e7701SMichael Ellerman or 1,1,1; \ 540362e7701SMichael Ellerman /* Alt section with nested section in default case */ \ 541362e7701SMichael Ellerman /* Default case should be taken, with nop'ed inner section */ \ 542362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 543362e7701SMichael Ellerman or 3,3,3; \ 544362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 545362e7701SMichael Ellerman nop; \ 546362e7701SMichael Ellerman nop; \ 547362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 95) */ \ 548362e7701SMichael Ellerman or 3,3,3; \ 549362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 550362e7701SMichael Ellerman /* or 2,2,2; */ \ 551362e7701SMichael Ellerman /* or 2,2,2; */ \ 552362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */ \ 553362e7701SMichael Ellerman or 1,1,1; \ 554362e7701SMichael Ellerman or 1,1,1; \ 555362e7701SMichael Ellerman /* Alt section with nested section in else, default taken */ \ 556362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 557362e7701SMichael Ellerman or 3,3,3; \ 558362e7701SMichael Ellerman or 3,3,3; \ 559362e7701SMichael Ellerman or 3,3,3; \ 560362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 561362e7701SMichael Ellerman /* or 5,5,5; */ \ 562362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 563362e7701SMichael Ellerman /* or 3,3,3; */ \ 564362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 95) */ \ 565362e7701SMichael Ellerman /* or 5,5,5; */ \ 566362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */ \ 567362e7701SMichael Ellerman or 1,1,1; \ 568362e7701SMichael Ellerman or 1,1,1; \ 569362e7701SMichael Ellerman /* Alt section with nested section in else, else taken & nop */ \ 570362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 571362e7701SMichael Ellerman /* or 3,3,3; */ \ 572362e7701SMichael Ellerman /* or 3,3,3; */ \ 573362e7701SMichael Ellerman /* or 3,3,3; */ \ 574362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 575362e7701SMichael Ellerman or 5,5,5; \ 576362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 577362e7701SMichael Ellerman nop; \ 578362e7701SMichael Ellerman/* END_##TYPE##_SECTION_NESTED(0, 1, 95) */ \ 579362e7701SMichael Ellerman or 5,5,5; \ 580362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */ \ 581362e7701SMichael Ellerman or 1,1,1; \ 582362e7701SMichael Ellerman or 1,1,1; \ 583362e7701SMichael Ellerman /* Feature section with nested alt section, default taken */ \ 584362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 585362e7701SMichael Ellerman or 2,2,2; \ 586362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 587362e7701SMichael Ellerman or 1,1,1; \ 588362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */ \ 589362e7701SMichael Ellerman /* or 5,5,5; */ \ 590362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */ \ 591362e7701SMichael Ellerman or 2,2,2; \ 592362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */ \ 593362e7701SMichael Ellerman or 1,1,1; \ 594362e7701SMichael Ellerman or 1,1,1; \ 595362e7701SMichael Ellerman /* Feature section with nested alt section, else taken */ \ 596362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 597362e7701SMichael Ellerman or 2,2,2; \ 598362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 599362e7701SMichael Ellerman /* or 1,1,1; */ \ 600362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */ \ 601362e7701SMichael Ellerman or 5,5,5; \ 602362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \ 603362e7701SMichael Ellerman or 2,2,2; \ 604362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 0) */ \ 605362e7701SMichael Ellerman or 1,1,1; \ 606362e7701SMichael Ellerman or 1,1,1; \ 607362e7701SMichael Ellerman /* Feature section with nested alt section, all nop'ed */ \ 608362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 609362e7701SMichael Ellerman nop; \ 610362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 611362e7701SMichael Ellerman nop; \ 612362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */ \ 613362e7701SMichael Ellerman /* or 5,5,5; */ \ 614362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */ \ 615362e7701SMichael Ellerman nop; \ 616362e7701SMichael Ellerman/* END_##TYPE##_SECTION(0, 1) */ \ 617362e7701SMichael Ellerman or 1,1,1; \ 618362e7701SMichael Ellerman or 1,1,1; \ 619362e7701SMichael Ellerman /* Nested alt sections, default with inner default taken */ \ 620362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 621362e7701SMichael Ellerman or 2,2,2; \ 622362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 623362e7701SMichael Ellerman or 1,1,1; \ 624362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */ \ 625362e7701SMichael Ellerman /* or 5,5,5; */ \ 626362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 95) */ \ 627362e7701SMichael Ellerman or 2,2,2; \ 628362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 629362e7701SMichael Ellerman /* or 31,31,31; */ \ 630362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */ \ 631362e7701SMichael Ellerman /* or 5,5,5; */ \ 632362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */ \ 633362e7701SMichael Ellerman /* or 1,1,1; */ \ 634362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */ \ 635362e7701SMichael Ellerman /* or 31,31,31; */ \ 636362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */ \ 637362e7701SMichael Ellerman or 1,1,1; \ 638362e7701SMichael Ellerman or 1,1,1; \ 639362e7701SMichael Ellerman /* Nested alt sections, default with inner else taken */ \ 640362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 641362e7701SMichael Ellerman or 2,2,2; \ 642362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 643362e7701SMichael Ellerman /* or 1,1,1; */ \ 644362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */ \ 645362e7701SMichael Ellerman or 5,5,5; \ 646362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \ 647362e7701SMichael Ellerman or 2,2,2; \ 648362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 649362e7701SMichael Ellerman /* or 31,31,31; */ \ 650362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */ \ 651362e7701SMichael Ellerman /* or 5,5,5; */ \ 652362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */ \ 653362e7701SMichael Ellerman /* or 1,1,1; */ \ 654362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */ \ 655362e7701SMichael Ellerman /* or 31,31,31; */ \ 656362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 0) */ \ 657362e7701SMichael Ellerman or 1,1,1; \ 658362e7701SMichael Ellerman or 1,1,1; \ 659362e7701SMichael Ellerman /* Nested alt sections, else with inner default taken */ \ 660362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 661362e7701SMichael Ellerman /* or 2,2,2; */ \ 662362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 663362e7701SMichael Ellerman /* or 1,1,1; */ \ 664362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */ \ 665362e7701SMichael Ellerman /* or 5,5,5; */ \ 666362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \ 667362e7701SMichael Ellerman /* or 2,2,2; */ \ 668362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 669362e7701SMichael Ellerman or 31,31,31; \ 670362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */ \ 671362e7701SMichael Ellerman or 5,5,5; \ 672362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */ \ 673362e7701SMichael Ellerman /* or 1,1,1; */ \ 674362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 0, 94) */ \ 675362e7701SMichael Ellerman or 31,31,31; \ 676362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */ \ 677362e7701SMichael Ellerman or 1,1,1; \ 678362e7701SMichael Ellerman or 1,1,1; \ 679362e7701SMichael Ellerman /* Nested alt sections, else with inner else taken */ \ 680362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 681362e7701SMichael Ellerman /* or 2,2,2; */ \ 682362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(95) */ \ 683362e7701SMichael Ellerman /* or 1,1,1; */ \ 684362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(95) */ \ 685362e7701SMichael Ellerman /* or 5,5,5; */ \ 686362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 95) */ \ 687362e7701SMichael Ellerman /* or 2,2,2; */ \ 688362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 689362e7701SMichael Ellerman or 31,31,31; \ 690362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */ \ 691362e7701SMichael Ellerman /* or 5,5,5; */ \ 692362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */ \ 693362e7701SMichael Ellerman or 1,1,1; \ 694362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) */ \ 695362e7701SMichael Ellerman or 31,31,31; \ 696362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */ \ 697362e7701SMichael Ellerman or 1,1,1; \ 698362e7701SMichael Ellerman or 1,1,1; \ 699362e7701SMichael Ellerman /* Nested alt sections, else can have large else case */ \ 700362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION */ \ 701362e7701SMichael Ellerman /* or 2,2,2; */ \ 702362e7701SMichael Ellerman /* or 2,2,2; */ \ 703362e7701SMichael Ellerman /* or 2,2,2; */ \ 704362e7701SMichael Ellerman /* or 2,2,2; */ \ 705362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE */ \ 706362e7701SMichael Ellerman/* BEGIN_##TYPE##_SECTION_NESTED(94) */ \ 707362e7701SMichael Ellerman /* or 5,5,5; */ \ 708362e7701SMichael Ellerman /* or 5,5,5; */ \ 709362e7701SMichael Ellerman /* or 5,5,5; */ \ 710362e7701SMichael Ellerman /* or 5,5,5; */ \ 711362e7701SMichael Ellerman/* ##TYPE##_SECTION_ELSE_NESTED(94) */ \ 712362e7701SMichael Ellerman or 1,1,1; \ 713362e7701SMichael Ellerman or 1,1,1; \ 714362e7701SMichael Ellerman or 1,1,1; \ 715362e7701SMichael Ellerman or 1,1,1; \ 716362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END_NESTED(0, 1, 94) */ \ 717362e7701SMichael Ellerman/* ALT_##TYPE##_SECTION_END(0, 1) */ \ 718362e7701SMichael Ellerman or 1,1,1; \ 719362e7701SMichael Ellerman or 1,1,1; 720362e7701SMichael Ellerman 721362e7701SMichael EllermanMAKE_MACRO_TEST(FTR); 722362e7701SMichael EllermanMAKE_MACRO_TEST_EXPECTED(FTR); 723362e7701SMichael Ellerman 724362e7701SMichael Ellerman#ifdef CONFIG_PPC64 725362e7701SMichael EllermanMAKE_MACRO_TEST(FW_FTR); 726362e7701SMichael EllermanMAKE_MACRO_TEST_EXPECTED(FW_FTR); 727362e7701SMichael Ellerman#endif 728