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