1 /* 2 Copyright (C) 2001 Radek Doulik 3 * Licensed under the MIT license. See LICENSE file in the project root for full license information. 4 */ 5 6 #ifndef S390X_H 7 #define S390X_H 8 #include <glib.h> 9 #include <assert.h> 10 #include <limits.h> 11 12 #define FLOAT_REGS 2 /* No. float registers for parms */ 13 #define GENERAL_REGS 5 /* No. general registers for parms */ 14 15 #define ARG_BASE s390_r10 /* Register for addressing arguments*/ 16 #define STKARG \ 17 (i*(sizeof(stackval))) /* Displacement of ith argument */ 18 19 #define MINV_POS 160 /* MonoInvocation stack offset */ 20 #define STACK_POS (MINV_POS - sizeof (stackval) * sig->param_count) 21 #define OBJ_POS 8 22 #define TYPE_OFFSET (G_STRUCT_OFFSET (stackval, type)) 23 24 #define MIN_CACHE_LINE 256 25 26 /*------------------------------------------------------------------*/ 27 /* Sequence to add an int/long long to parameters to stack_from_data*/ 28 /*------------------------------------------------------------------*/ 29 #define ADD_ISTACK_PARM(r, i) \ 30 if (reg_param < GENERAL_REGS-(r)) { \ 31 s390_lay (p, s390_r4, 0, STK_BASE, \ 32 local_start + (reg_param - this_flag) * sizeof(long)); \ 33 reg_param += (i); \ 34 } else { \ 35 s390_lay (p, s390_r4, 0, STK_BASE, \ 36 sz.stack_size + MINV_POS + stack_param * sizeof(long)); \ 37 stack_param += (i); \ 38 } 39 40 /*------------------------------------------------------------------*/ 41 /* Sequence to add a float/double to parameters to stack_from_data */ 42 /*------------------------------------------------------------------*/ 43 #define ADD_RSTACK_PARM(i) \ 44 if (fpr_param < FLOAT_REGS) { \ 45 s390_lay (p, s390_r4, 0, STK_BASE, \ 46 float_pos + (fpr_param * sizeof(float) * (i))); \ 47 fpr_param++; \ 48 } else { \ 49 stack_param += (stack_param % (i)); \ 50 s390_lay (p, s390_r4, 0, STK_BASE, \ 51 sz.stack_size + MINV_POS + stack_param * sizeof(float) * (i)); \ 52 stack_param += (i); \ 53 } 54 55 /*------------------------------------------------------------------*/ 56 /* Sequence to add a structure ptr to parameters to stack_from_data */ 57 /*------------------------------------------------------------------*/ 58 #define ADD_TSTACK_PARM \ 59 if (reg_param < GENERAL_REGS) { \ 60 s390_ly (p, s390_r4, 0, STK_BASE, \ 61 local_start + (reg_param - this_flag) * sizeof(long)); \ 62 reg_param++; \ 63 } else { \ 64 s390_ly (p, s390_r4, 0, STK_BASE, \ 65 sz.stack_size + MINV_POS + stack_param * sizeof(long)); \ 66 stack_param++; \ 67 } 68 69 #define ADD_PSTACK_PARM(r, i) \ 70 if (reg_param < GENERAL_REGS-(r)) { \ 71 s390_lay (p, s390_r4, 0, STK_BASE, \ 72 local_start + (reg_param - this_flag) * sizeof(long)); \ 73 reg_param += (i); \ 74 } else { \ 75 s390_ly (p, s390_r4, 0, STK_BASE, \ 76 sz.stack_size + MINV_POS + stack_param * sizeof(long)); \ 77 stack_param++; \ 78 } 79 80 typedef enum { 81 s390_r0 = 0, 82 s390_r1, 83 s390_r2, 84 s390_r3, 85 s390_r4, 86 s390_r5, 87 s390_r6, 88 s390_r7, 89 s390_r8, 90 s390_r9, 91 s390_r10, 92 s390_r11, 93 s390_r12, 94 s390_r13, 95 s390_r14, 96 s390_r15, 97 } S390IntRegister; 98 99 typedef enum { 100 s390_f0 = 0, 101 s390_f1, 102 s390_f2, 103 s390_f3, 104 s390_f4, 105 s390_f5, 106 s390_f6, 107 s390_f7, 108 s390_f8, 109 s390_f9, 110 s390_f10, 111 s390_f11, 112 s390_f12, 113 s390_f13, 114 s390_f14, 115 s390_f15, 116 } S390FloatRegister; 117 118 typedef enum { 119 s390_a0 = 0, 120 s390_a1, 121 s390_a2, 122 s390_a3, 123 s390_a4, 124 s390_a5, 125 s390_a6, 126 s390_a7, 127 s390_a8, 128 s390_a9, 129 s390_a10, 130 s390_a11, 131 s390_a12, 132 s390_a13, 133 s390_a14, 134 s390_a15, 135 } S390AccRegister; 136 137 typedef enum { 138 s390_fpc = 256, 139 } S390SpecialRegister; 140 141 typedef enum { 142 s390_VR0 = 0, 143 s390_VR1 = 1, 144 s390_VR2 = 2, 145 s390_VR3 = 3, 146 s390_VR4 = 4, 147 s390_VR5 = 5, 148 s390_VR6 = 6, 149 s390_VR7 = 7, 150 s390_VR8 = 8, 151 s390_VR9 = 9, 152 s390_VR10 = 10, 153 s390_VR11 = 11, 154 s390_VR12 = 12, 155 s390_VR13 = 13, 156 s390_VR14 = 14, 157 s390_VR15 = 15, 158 s390_VR16 = 16, 159 s390_VR17 = 17, 160 s390_VR18 = 18, 161 s390_VR19 = 19, 162 s390_VR20 = 20, 163 s390_VR21 = 21, 164 s390_VR22 = 22, 165 s390_VR23 = 23, 166 s390_VR24 = 24, 167 s390_VR25 = 25, 168 s390_VR26 = 26, 169 s390_VR27 = 27, 170 s390_VR28 = 28, 171 s390_VR29 = 29, 172 s390_VR30 = 30, 173 s390_VR31 = 31, 174 s390_VR_NREG = 32, 175 } s390_VR_Reg_No; 176 177 #define s390_is_imm16(val) ((glong)val >= (glong) SHRT_MIN && \ 178 (glong)val <= (glong) SHRT_MAX) 179 #define s390_is_imm32(val) ((glong)val >= (glong) INT_MIN && \ 180 (glong)val <= (glong) INT_MAX) 181 #define s390_is_uimm16(val) ((glong)val >= 0 && (glong)val <= (glong) USHRT_MAX) 182 #define s390_is_uimm32(val) ((glong)val >= 0 && (glong)val <= (glong) UINT_MAX) 183 #define s390_is_uimm20(val) ((glong)val >= 0 && (glong)val <= 1048575) 184 #define s390_is_imm20(val) ((glong)val >= -524288 && (glong)val <= 524287) 185 #define s390_is_imm12(val) ((glong)val >= (glong)-4096 && \ 186 (glong)val <= (glong)4095) 187 #define s390_is_uimm12(val) ((glong)val >= 0 && (glong)val <= 4095) 188 189 #define STK_BASE s390_r15 190 #define S390_SP s390_r15 191 #define S390_FP s390_r11 192 #define S390_MINIMAL_STACK_SIZE 160 193 #define S390_REG_SAVE_OFFSET 48 194 #define S390_PARM_SAVE_OFFSET 16 195 #define S390_RET_ADDR_OFFSET 112 196 #define S390_FLOAT_SAVE_OFFSET 128 197 198 #define S390_CC_ZR 8 199 #define S390_CC_NE 7 200 #define S390_CC_NZ 7 201 #define S390_CC_LT 4 202 #define S390_CC_GT 2 203 #define S390_CC_GE 11 204 #define S390_CC_NM 11 205 #define S390_CC_LE 13 206 #define S390_CC_OV 1 207 #define S390_CC_NO 14 208 #define S390_CC_CY 3 209 #define S390_CC_NC 12 210 #define S390_CC_UN 15 211 212 #define s390_word(addr, value) do \ 213 { \ 214 * (guint32 *) addr = (guint32) value; \ 215 addr += sizeof(guint32); \ 216 } while (0) 217 218 #define s390_float(addr, value) do \ 219 { \ 220 * (gfloat *) addr = (gfloat) value; \ 221 addr += sizeof(gfloat); \ 222 } while (0) 223 224 #define s390_llong(addr, value) do \ 225 { \ 226 * (guint64 *) addr = (guint64) value; \ 227 addr += sizeof(guint64); \ 228 } while (0) 229 230 #define s390_double(addr, value) do \ 231 { \ 232 * (gdouble *) addr = (gdouble) value; \ 233 addr += sizeof(gdouble); \ 234 } while (0) 235 236 typedef struct { 237 short op; 238 } E_Format; 239 240 typedef struct { 241 char op; 242 int im; 243 } I_Format; 244 245 typedef struct { 246 short op; 247 char xx; 248 char ri1 : 4; 249 char ri2 : 4; 250 } IE_Format; 251 252 typedef struct { 253 short op; 254 short m1 : 4; 255 short ri2 : 12; 256 short i3; 257 } MII_Format; 258 259 typedef struct { 260 char op; 261 char r1 : 4; 262 char r2 : 4; 263 } RR_Format; 264 265 typedef struct { 266 short op; 267 char r1 : 4; 268 char xx : 4; 269 char r3 : 4; 270 char r4 : 4; 271 } __attribute__ ((__packed__)) RRD_Format; 272 273 typedef struct { 274 short op; 275 char xx; 276 char r1 : 4; 277 char r2 : 4; 278 } RRE_Format; 279 280 typedef struct { 281 short op; 282 char r1 : 4; 283 char xx : 4; 284 char r3 : 4; 285 char r2 : 4; 286 } RRF_Format_1; 287 288 typedef struct { 289 short op; 290 char m3 : 4; 291 char xx : 4; 292 char r1 : 4; 293 char r2 : 4; 294 } RRF_Format_2; 295 296 typedef struct { 297 short op; 298 char r3 : 4; 299 char m4 : 4; 300 char r1 : 4; 301 char r2 : 4; 302 } RRF_Format_3; 303 304 typedef struct { 305 short op; 306 char m3 : 4; 307 char m4 : 4; 308 char r1 : 4; 309 char r2 : 4; 310 } RRF_Format_4; 311 312 typedef struct { 313 char op1; 314 char r1 : 4; 315 char r2 : 4; 316 short b4 : 4; 317 short d4 : 12; 318 char m3 : 4; 319 char xx : 4; 320 char op2; 321 } RRS_Format; 322 323 typedef struct { 324 char op; 325 char r1 : 4; 326 char x2 : 4; 327 short b2 : 4; 328 short d2 : 12; 329 } RX_Format; 330 331 typedef struct { 332 char op1; 333 char r3 : 4; 334 char x2 : 4; 335 short b2 : 4; 336 short d2 : 12; 337 char r1 : 4; 338 char xx : 4; 339 char op2; 340 } RXF_Format; 341 342 typedef struct { 343 char op1; 344 char r1 : 4; 345 char x2 : 4; 346 int b2 : 4; 347 int d2 : 20; 348 char op2; 349 } __attribute__ ((__packed__)) RXY_Format; 350 351 typedef struct { 352 char op; 353 char r1 : 4; 354 char r3 : 4; 355 short b2 : 4; 356 short d2 : 12; 357 } RS_Format_1; 358 359 typedef struct { 360 char op; 361 char r1 : 4; 362 char m3 : 4; 363 short b2 : 4; 364 short d2 : 12; 365 } RS_Format_2; 366 367 typedef struct { 368 char op; 369 char r1 : 4; 370 char xx : 4; 371 short b2 : 4; 372 short dl2 : 12; 373 char dh2; 374 } RS_Format_3; 375 376 typedef struct { 377 char op1; 378 char r1 : 4; 379 char r3 : 4; 380 short b2 : 4; 381 short dl2 : 12; 382 char dh2; 383 char op2; 384 } __attribute__ ((__packed__)) RSY_Format_1; 385 386 typedef struct { 387 char op1; 388 char r1 : 4; 389 char m3 : 4; 390 short b2 : 4; 391 short dl2 : 12; 392 char dh2; 393 char op2; 394 } __attribute__ ((__packed__)) RSY_Format_2; 395 396 typedef struct { 397 char op1; 398 char l1 : 4; 399 char xx : 4; 400 short b1 : 4; 401 short d1 : 12; 402 char yy; 403 char op2; 404 } __attribute__ ((__packed__)) RSL_Format; 405 406 typedef struct { 407 char op; 408 char r1 : 4; 409 char r3 : 4; 410 short i2; 411 } __attribute__ ((__packed__)) RSI_Format; 412 413 typedef struct { 414 char op1; 415 char m1 : 4; 416 char op2 : 4; 417 short i2; 418 } __attribute__ ((__packed__)) RI_Format; 419 420 typedef struct { 421 char op1; 422 char r1 : 4; 423 char r3 : 4; 424 short i2; 425 char xx; 426 char op2; 427 } __attribute__ ((__packed__)) RIE_Format_1; 428 429 typedef struct { 430 char op1; 431 char r1 : 4; 432 char r3 : 4; 433 short i2; 434 char m2 : 4; 435 char xx : 4; 436 char op2; 437 } __attribute__ ((__packed__)) RIE_Format_2; 438 439 typedef struct { 440 char op1; 441 char r1 : 4; 442 char r3 : 4; 443 short d; 444 char i; 445 char op2; 446 } __attribute__ ((__packed__)) RIE_Format_3; 447 448 typedef struct { 449 char op1; 450 char r1 : 4; 451 char yy : 4; 452 short i2; 453 char m3 : 4; 454 char xx : 4; 455 char op2; 456 } __attribute__ ((__packed__)) RIE_Format_4; 457 458 typedef struct { 459 char op1; 460 char r1 : 4; 461 char r3 : 4; 462 short ri2; 463 char xx; 464 char op2; 465 } __attribute__ ((__packed__)) RIE_Format_5; 466 467 typedef struct { 468 char op1; 469 char r1 : 4; 470 char r2 : 4; 471 char i3; 472 char i4; 473 char i5; 474 char op2; 475 } __attribute__ ((__packed__)) RIE_Format_6; 476 477 typedef struct { 478 char op1; 479 char r1 : 4; 480 char m3 : 4; 481 short i2; 482 char xx; 483 char op2; 484 } __attribute__ ((__packed__)) RIE_Format_7; 485 486 typedef struct { 487 char op1; 488 char r1 : 4; 489 char m3 : 4; 490 int b4 : 4; 491 int d4 : 12; 492 char i2; 493 char op2; 494 } __attribute__ ((__packed__)) RIS_Format; 495 496 typedef struct { 497 char op1; 498 char r1 : 4; 499 char op2 : 4; 500 int i2; 501 } __attribute__ ((__packed__)) RIL_Format_1; 502 503 typedef struct { 504 char op1; 505 char m1 : 4; 506 char op2 : 4; 507 int i2; 508 } __attribute__ ((__packed__)) RIL_Format_2; 509 510 typedef struct { 511 short op1; 512 char r1 : 4; 513 char x2 : 4; 514 short b2 : 4; 515 short d1 : 12; 516 char m3 : 4; 517 char xx : 4; 518 char op2; 519 } __attribute__ ((__packed__)) RXE_Format; 520 521 typedef struct { 522 char op; 523 char i2; 524 short b1 : 4; 525 short d1 : 12; 526 } __attribute__ ((__packed__)) SI_Format; 527 528 typedef struct { 529 short op; 530 char b1 : 4; 531 short d1 : 12; 532 short i2; 533 } __attribute__ ((__packed__)) SIL_Format; 534 535 typedef struct { 536 char op1; 537 char i2; 538 char b1 : 4; 539 int d1 : 20; 540 char op2; 541 } __attribute__ ((__packed__)) SIY_Format; 542 543 typedef struct { 544 char op1; 545 char m1 : 4; 546 char xx : 4; 547 short b3 : 4; 548 short d3 : 12; 549 short ri2; 550 } __attribute__ ((__packed__)) SMI_Format; 551 552 typedef struct { 553 short op; 554 short b2 : 4; 555 short d2 : 12; 556 } __attribute__ ((__packed__)) S_Format; 557 558 typedef struct { 559 char op; 560 char ll; 561 short b1 : 4; 562 short d1 : 12; 563 short b2 : 4; 564 short d2 : 12; 565 } __attribute__ ((__packed__)) SS_Format_1; 566 567 typedef struct { 568 char op; 569 char l1 : 4; 570 char l2 : 4; 571 short b1 : 4; 572 short d1 : 12; 573 short b2 : 4; 574 short d2 : 12; 575 } __attribute__ ((__packed__)) SS_Format_2; 576 577 typedef struct { 578 char op; 579 char r1 : 4; 580 char r3 : 4; 581 short b1 : 4; 582 short d1 : 12; 583 short b2 : 4; 584 short d2 : 12; 585 } __attribute__ ((__packed__)) SS_Format_3; 586 587 typedef struct { 588 char op; 589 char r1 : 4; 590 char r3 : 4; 591 short b2 : 4; 592 short d2 : 12; 593 short b4 : 4; 594 short d4 : 12; 595 } __attribute__ ((__packed__)) SS_Format_4; 596 597 typedef struct { 598 short op; 599 short tb1 : 4; 600 short d1 : 12; 601 short b2 : 4; 602 short d2 : 12; 603 } __attribute__ ((__packed__)) SSE_Format; 604 605 typedef struct { 606 short op; 607 char r3 : 4; 608 char o2 : 4; 609 short b1 : 4; 610 short d1 : 12; 611 short b2 : 4; 612 short d2 : 12; 613 } __attribute__ ((__packed__)) SSF_Format; 614 615 typedef struct { 616 short op1; 617 char v1 : 4; 618 char xx : 4; 619 short i2; 620 char m3 : 4; 621 char rxb : 4; 622 char op2; 623 } __attribute__ ((__packed__)) VRIa_Format; 624 625 typedef struct { 626 short op1; 627 char v1 : 4; 628 char xx : 4; 629 char i2; 630 char i3; 631 char m4 : 4; 632 char rxb : 4; 633 char op2; 634 } __attribute__ ((__packed__)) VRIb_Format; 635 636 typedef struct { 637 short op1; 638 char v1 : 4; 639 char v3 : 4; 640 short i2; 641 char m4 : 4; 642 char rxb : 4; 643 char op2; 644 } __attribute__ ((__packed__)) VRIc_Format; 645 646 typedef struct { 647 short op1; 648 char v1 : 4; 649 char v2 : 4; 650 char v3 : 4; 651 char xx : 4; 652 char i4; 653 char m5 : 4; 654 char rxb : 4; 655 char op2; 656 } __attribute__ ((__packed__)) VRId_Format; 657 658 typedef struct { 659 short op1; 660 char v1 : 4; 661 char v2 : 4; 662 short i3 : 12; 663 char m5 : 4; 664 char m4 : 4; 665 char rxb : 4; 666 char op2; 667 } __attribute__ ((__packed__)) VRIe_Format; 668 669 typedef struct { 670 short op1; 671 char v1 : 4; 672 char v2 : 4; 673 char xx; 674 char m5 : 4; 675 char m4 : 4; 676 char m3 : 4; 677 char rxb : 4; 678 char op2; 679 } __attribute__ ((__packed__)) VRRa_Format; 680 681 typedef struct { 682 short op1; 683 char v1 : 4; 684 char v2 : 4; 685 char v3 : 4; 686 char xx : 4; 687 char m5 : 4; 688 char yy : 4; 689 char m4 : 4; 690 char rxb : 4; 691 char op2; 692 } __attribute__ ((__packed__)) VRRb_Format; 693 694 typedef struct { 695 short op1; 696 char v1 : 4; 697 char v2 : 4; 698 char v3 : 4; 699 char xx : 4; 700 char m5 : 4; 701 char m4 : 4; 702 char m3 : 4; 703 char rxb : 4; 704 char op2; 705 } __attribute__ ((__packed__)) VRRc_Format; 706 707 typedef struct { 708 short op1; 709 char v1 : 4; 710 char v2 : 4; 711 char v3 : 4; 712 char m5 : 4; 713 char m6 : 4; 714 char xx : 4; 715 char v4 : 4; 716 char rxb : 4; 717 char op2; 718 } __attribute__ ((__packed__)) VRRd_Format; 719 720 typedef struct { 721 short op1; 722 char v1 : 4; 723 char v2 : 4; 724 char v3 : 4; 725 char m6 : 4; 726 char xx : 4; 727 char m5 : 4; 728 char v4 : 4; 729 char rxb : 4; 730 char op2; 731 } __attribute__ ((__packed__)) VRRe_Format; 732 733 typedef struct { 734 short op1; 735 char v1 : 4; 736 char r2 : 4; 737 char r3 : 4; 738 short xx; 739 char rxb : 4; 740 char op2; 741 } __attribute__ ((__packed__)) VRRf_Format; 742 743 typedef struct { 744 short op1; 745 char v1 : 4; 746 char v3 : 4; 747 char b2 : 4; 748 short d2 : 12; 749 char m4 : 4; 750 char rxb : 4; 751 char op2; 752 } __attribute__ ((__packed__)) VRSa_Format; 753 754 typedef struct { 755 short op1; 756 char v1 : 4; 757 char r3 : 4; 758 char b2 : 4; 759 short d2 : 12; 760 char m4 : 4; 761 char rxb : 4; 762 char op2; 763 } __attribute__ ((__packed__)) VRSb_Format; 764 765 typedef struct { 766 short op1; 767 char r1 : 4; 768 char v3 : 4; 769 char b2 : 4; 770 short d2 : 12; 771 char m4 : 4; 772 char rxb : 4; 773 char op2; 774 } __attribute__ ((__packed__)) VRSc_Format; 775 776 typedef struct { 777 short op1; 778 char v1 : 4; 779 char v2 : 4; 780 char b2 : 4; 781 short d2 : 12; 782 char m3 : 4; 783 char rxb : 4; 784 char op2; 785 } __attribute__ ((__packed__)) VRV_Format; 786 787 typedef struct { 788 short op1; 789 char v1 : 4; 790 char x2 : 4; 791 char b2 : 4; 792 short d2 : 12; 793 char m3 : 4; 794 char rxb : 4; 795 char op2; 796 } __attribute__ ((__packed__)) VRX_Format; 797 798 #define s390_emit16(c, x) do \ 799 { \ 800 *((guint16 *) c) = (guint16) x; \ 801 c += sizeof(guint16); \ 802 } while(0) 803 804 #define s390_emit32(c, x) do \ 805 { \ 806 *((guint32 *) c) = (guint32) x; \ 807 c += sizeof(guint32); \ 808 } while(0) 809 810 #define S390_E(c,opc) s390_emit16(c,opc) 811 812 #define S390_I(c,opc,imm) s390_emit16(c, (opc << 8 | imm)) 813 814 #define S390_RR(c,opc,g1,g2) s390_emit16(c, (opc << 8 | (g1) << 4 | g2)) 815 816 #define S390_RRE(c,opc,g1,g2) s390_emit32(c, (opc << 16 | (g1) << 4 | g2)) 817 818 #define S390_RRF_1(c,opc,g1,g2,g3) s390_emit32(c, (opc << 16 | (g3) << 12 | (g1) << 4 | g2)) 819 820 #define S390_RRF_2(c,opc,g1,k3,g2) s390_emit32(c, (opc << 16 | (k3) << 12 | (g1) << 4 | g2)) 821 822 #define S390_RRF_3(c,opc,g1,g2,k4,g3) s390_emit32(c, (opc << 16 | (g3) << 12 | (k4) << 8 | (g1) << 4 | g2)) 823 824 #define S390_RRF_4(c,opc,g1,m3,g2,m4) s390_emit32(c, (opc << 16 | (m3) << 12 | (m4) << 8 | (g1) << 4 | g2)) 825 826 #define S390_RX(c,opc,g1,n2,s2,p2) s390_emit32(c, (opc << 24 | (g1) << 20 | (n2) << 16 | (s2) << 12 | ((p2) & 0xfff))) 827 828 #define S390_RXE(c,opc,g1,n2,s2,p2) do \ 829 { \ 830 s390_emit16(c, ((opc & 0xff00) | (g1) << 4 | n2)); \ 831 s390_emit32(c, ((s2) << 28 | (((p2) & 0xfff) << 16) | \ 832 (opc & 0xff))); \ 833 } while (0) 834 835 #define S390_RXY(c,opc,g1,n2,s2,p2) do \ 836 { \ 837 s390_emit16(c, ((opc & 0xff00) | (g1) << 4 | n2)); \ 838 s390_emit32(c, ((s2) << 28 | (((p2) & 0xfff) << 16) | \ 839 ((((p2) & 0xff000) >> 12) << 8) | \ 840 (opc & 0xff))); \ 841 } while (0) 842 843 #define S390_RS_1(c,opc,g1,g3,s2,p2) s390_emit32(c, (opc << 24 | (g1) << 20 | (g3) << 16 | (s2) << 12 | ((p2) & 0xfff))) 844 845 #define S390_RS_2(c,opc,g1,k3,s2,p2) s390_emit32(c, (opc << 24 | (g1) << 20 | (k3) << 16 | (s2) << 12 | ((p2) & 0xfff))) 846 847 #define S390_RS_3(c,opc,g1,s2,p2) s390_emit32(c, (opc << 24 | (g1) << 20 | (s2) << 12 | ((p2) & 0xfff))) 848 849 #define S390_RSY_1(c,opc,g1,g3,s2,p2) do \ 850 { \ 851 s390_emit16(c, ((opc & 0xff00) | (g1) << 4 | g3)); \ 852 s390_emit32(c, ((s2) << 28 | (((p2) & 0xfff) << 16) | \ 853 ((((p2) & 0xff000) >> 12) << 8) | \ 854 (opc & 0xff))); \ 855 } while (0) 856 857 #define S390_RSY_2(c,opc,g1,k3,s2,p2) do \ 858 { \ 859 s390_emit16(c, ((opc & 0xff00) | (g1) << 4 | k3)); \ 860 s390_emit32(c, ((s2) << 28 | (((p2) & 0xfff) << 16) | \ 861 ((((p2) & 0xff000) >> 12) << 8) | \ 862 (opc & 0xff))); \ 863 } while (0) 864 865 #define S390_RSL(c,opc,ln,s1,p1) do \ 866 { \ 867 s390_emit16(c, ((opc & 0xff00) | (ln) << 4)); \ 868 s390_emit32(c, ((s1) << 28 | ((s1 & 0xfff) << 16) | \ 869 (opc & 0xff))); \ 870 } while (0) 871 872 #define S390_RSI(c,opc,g1,g3,m2) s390_emit32(c, (opc << 24 | (g1) << 20 | (g3) << 16 | (m2 & 0xffff))) 873 874 #define S390_RI(c,opc,g1,m2) s390_emit32(c, ((opc >> 4) << 24 | (g1) << 20 | (opc & 0x0f) << 16 | (m2 & 0xffff))) 875 876 #define S390_RIE_1(c,opc,g1,g3,m2) do \ 877 { \ 878 s390_emit16(c, ((opc & 0xff00) | (g1) << 4 | g3)); \ 879 s390_emit32(c, ((m2) << 16 | (opc & 0xff))); \ 880 } while (0) 881 882 #define S390_RIE_2(c,opc,g1,g2,m3,v) do \ 883 { \ 884 s390_emit16(c, ((opc & 0xff00) | (g1) << 4 | g2)); \ 885 s390_emit16(c, (v)); \ 886 s390_emit16(c, ((m3) << 12 | (opc & 0xff))); \ 887 } while (0) 888 889 #define S390_RIE_3(c,opc,g1,i,m3,d) do \ 890 { \ 891 s390_emit16(c, ((opc & 0xff00) | (g1) << 4 | m3)); \ 892 s390_emit16(c, (d)); \ 893 s390_emit16(c, ((i) << 8 | (opc & 0xff))); \ 894 } while (0) 895 896 #define S390_RIE_4(c,opc,g1,i2,m3) do \ 897 { \ 898 s390_emit16(c, ((opc & 0xff00) | (g1) << 4); \ 899 s390_emit16(c, (i2)); \ 900 s390_emit16(c, ((m3) << 12 | (opc & 0xff))); \ 901 } while (0) 902 903 #define S390_RIL_1(c,opc,g1,m2) do \ 904 { \ 905 s390_emit16(c, ((opc >> 4) << 8 | (g1) << 4 | (opc & 0xf))); \ 906 s390_emit32(c, m2); \ 907 } while (0) 908 909 #define S390_RIL_2(c,opc,k1,m2) do \ 910 { \ 911 s390_emit16(c, ((opc >> 4) << 8 | (k1) << 4 | (opc & 0xf))); \ 912 s390_emit32(c, m2); \ 913 } while (0) 914 915 #define S390_RIS(c,opc,r,i,m3,b,d) do \ 916 { \ 917 s390_emit16(c, ((opc, & 0xff00) | (r1) << 4) | (r2)); \ 918 s390_emit16(c, ((b) << 12) | (d)); \ 919 s390_emit16(c, ((i) << 4) | ((opc) & 0xff)); \ 920 } 921 922 #define S390_RRS(c,opc,r1,r2,m3,b,d) do \ 923 { \ 924 s390_emit16(c, ((opc, & 0xff00) | (r1) << 4) | (r2)); \ 925 s390_emit16(c, ((b) << 12) | (d)); \ 926 s390_emit16(c, ((m3) << 12) | ((opc) & 0xff)); \ 927 } 928 929 #define S390_SI(c,opc,s1,p1,m2) s390_emit32(c, (opc << 24 | (m2) << 16 | (s1) << 12 | ((p1) & 0xfff))); 930 931 #define S390_SIY(c,opc,s1,p1,m2) do \ 932 { \ 933 s390_emit16(c, ((opc & 0xff00) | m2)); \ 934 s390_emit32(c, ((s1) << 24 | (((p2) & 0xfffff) << 8) | \ 935 (opc & 0xff))); \ 936 } while (0) 937 938 #define S390_SIY_1(c,opc,d1,b1,i2) do \ 939 { \ 940 s390_emit16(c, ((opc & 0xff00) | i2)); \ 941 s390_emit32(c, ((b1) << 28 | (((d1) & 0xfff) << 16) | \ 942 ((((d1) & 0xff000) >> 12) << 8) | \ 943 (opc & 0xff))); \ 944 } while (0) 945 946 #define S390_S(c,opc,s2,p2) s390_emit32(c, (opc << 16 | (s2) << 12 | ((p2) & 0xfff))) 947 948 #define S390_SS_1(c,opc,ln,s1,p1,s2,p2) do \ 949 { \ 950 s390_emit32(c, (opc << 24 | ((ln-1) & 0xff) << 16 | \ 951 (s1) << 12 | ((p1) & 0xfff))); \ 952 s390_emit16(c, ((s2) << 12 | ((p2) & 0xfff))); \ 953 } while (0) 954 955 #define S390_SS_2(c,opc,n1,n2,s1,p1,s2,p2) do \ 956 { \ 957 s390_emit32(c, (opc << 24 | (n1) << 16 | (n2) << 12 | \ 958 (s1) << 12 | ((p1) & 0xfff))); \ 959 s390_emit16(c, ((s2) << 12 | ((p2) & 0xfff))); \ 960 } while (0) 961 962 #define S390_SS_3(c,opc,g1,g3,s1,p1,s2,p2) do \ 963 { \ 964 s390_emit32(c, (opc << 24 | (g1) << 16 | (g3) << 12 | \ 965 (s1) << 12 | ((p1) & 0xfff))); \ 966 s390_emit16(c, ((s2) << 12 | ((p2) & 0xfff))); \ 967 } while (0) 968 969 #define S390_SS_4(c,opc,g1,g3,s2,p2,s4,p4) do \ 970 { \ 971 s390_emit32(c, (opc << 24 | (g1) << 16 | (g3) << 12 | \ 972 (s2) << 12 | ((p2) & 0xfff))); \ 973 s390_emit16(c, ((s4) << 12 | ((p4) & 0xfff))); \ 974 } while (0) 975 976 #define S390_SSE(c,opc,s1,p1,s2,p2) do \ 977 { \ 978 s390_emit16(c, opc); \ 979 s390_emit16(c, ((s1) << 12 | ((p1) & 0xfff))); \ 980 s390_emit16(c, ((s2) << 12 | ((p2) & 0xfff))); \ 981 } while (0) 982 983 #define S390_SSF(c,opc,r3,s1,p1,s2,p2) do \ 984 { \ 985 s390_emit16(c, (((opc) & 0xff00) << 8) | ((r3) << 4) | \ 986 ((opc) & 0xf)); \ 987 s390_emit16(c, ((s1) << 12 | ((p1) & 0xfff))); \ 988 s390_emit16(c, ((s2) << 12 | ((p2) & 0xfff))); \ 989 } while (0) 990 991 #define S390_VRIa(c,opc,v1,i2,m3) do \ 992 { \ 993 char rxb = (((v1) > 15) << 7); \ 994 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4)); \ 995 s390_emit16(c, (i2)); \ 996 s390_emit16(c, (((m3) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 997 } while (0) 998 999 #define S390_VRIb(c,opc,v1,i2,i3,m4) do \ 1000 { \ 1001 char rxb = (((v1) > 15) << 7); \ 1002 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4)); \ 1003 s390_emit16(c, (((i2) << 8) | (i3))); \ 1004 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1005 } while (0) 1006 1007 #define S390_VRIc(c,opc,v1,v3,i2,m4) do \ 1008 { \ 1009 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6) | \ 1010 (((v3) > 15) << 5); \ 1011 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1012 s390_emit16(c, (v4)); \ 1013 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1014 } while (0) 1015 1016 #define S390_VRId(c,opc,v1,v2,v3,i4,m5) do \ 1017 { \ 1018 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6) | \ 1019 (((v3) > 15) << 5); \ 1020 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1021 s390_emit16(c, ((v3) << 12) | (i2)); \ 1022 s390_emit16(c, (((m5) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1023 } while (0) 1024 1025 #define S390_VRIe(c,opc,v1,v2,i3,m4,m5) do \ 1026 { \ 1027 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6); \ 1028 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1029 s390_emit16(c, ((i2) << 8) | (m5)); \ 1030 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1031 } while (0) 1032 1033 #define S390_VRRa(c,opc,v1,v2,m3,m4,m5) do \ 1034 { \ 1035 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6); \ 1036 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1037 s390_emit16(c, ((m5) << 4) | (m4)); \ 1038 s390_emit16(c, (((m3) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1039 } while (0) 1040 1041 #define S390_VRRb(c,opc,v1,v2,v3,m4,m5) do \ 1042 { \ 1043 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6) | \ 1044 (((v3) > 15) << 5); \ 1045 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1046 s390_emit16(c, ((v3) << 12) | ((m5) << 4) | (m4)); \ 1047 s390_emit16(c, (((m3) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1048 } while (0) 1049 1050 #define S390_VRRc(c,opc,v1,v2,m3,m4,m5) do \ 1051 { \ 1052 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6) | \ 1053 (((v3) > 15) << 5); \ 1054 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1055 s390_emit16(c, (((v3) << 12)| (m5) << 4)); \ 1056 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1057 } while (0) 1058 1059 #define S390_VRRd(c,opc,v1,v2,v3,v4,m5,m6) do \ 1060 { \ 1061 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6) | \ 1062 (((v3) > 15) << 5) | (((v4) > 15) << 4); \ 1063 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1064 s390_emit16(c, (((v3) << 12)| ((m6) << 8)) | ((m5) << 4)); \ 1065 s390_emit16(c, (((v4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1066 } while (0) 1067 1068 #define S390_VRRe(c,opc,v1,v2,v3,m4,m5,m6) do \ 1069 { \ 1070 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6) | \ 1071 (((v3) > 15) << 5); \ 1072 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1073 s390_emit16(c, (((v3) << 12)| ((m6) << 8)) | (m5)); \ 1074 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1075 } while (0) 1076 1077 #define S390_VRRf(c,opc,v1,r2) do \ 1078 { \ 1079 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6); \ 1080 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1081 s390_emit16(c, ((r2) << 12)| ((r3) << r8) | (m5)); \ 1082 s390_emit16(c, (((rxb) << 8) | ((opc) & 0xff))); \ 1083 } while (0) 1084 1085 #define S390_VRSa(c,opc,v1,v3,b2,d2,m4) do \ 1086 { \ 1087 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6); \ 1088 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v3))); \ 1089 s390_emit16(c, ((b2) << 12)| (d2)); \ 1090 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1091 } while (0) 1092 1093 #define S390_VRSb(c,opc,v1,r3,b2,d2,m4) do \ 1094 { \ 1095 char rxb = (((v1) > 15) << 7); \ 1096 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((r3))); \ 1097 s390_emit16(c, ((b2) << 12)| (d2)); \ 1098 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1099 } while (0) 1100 1101 #define S390_VRSc(c,opc,r1,v3,b2,d2,m4) do \ 1102 { \ 1103 char rxb = (((v1) > 15) << 7); \ 1104 s390_emit16(c, (((opc) & 0xff00) << 8) | ((r1) << 4) | ((v3))); \ 1105 s390_emit16(c, ((b2) << 12)| (d2)); \ 1106 s390_emit16(c, (((m4) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1107 } while (0) 1108 1109 #define S390_VRV(c,opc,v1,v2,b2,d2,m3) do \ 1110 { \ 1111 char rxb = (((v1) > 15) << 7) | (((v2) > 15) << 6); \ 1112 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((v2))); \ 1113 s390_emit16(c, ((b2) << 12)| (d2)); \ 1114 s390_emit16(c, (((m3) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1115 } while (0) 1116 1117 #define S390_VRX(c,opc,v1,x2,b2,d2,m3) do \ 1118 { \ 1119 char rxb = ((v1) > 15) << 7; \ 1120 s390_emit16(c, (((opc) & 0xff00) << 8) | ((v1) << 4) | ((x2))); \ 1121 s390_emit16(c, ((b2) << 12)| (d2)); \ 1122 s390_emit16(c, (((m3) << 12) | ((rxb) << 8) | ((opc) & 0xff))); \ 1123 } while (0) 1124 1125 #define s390_a(c, r, x, b, d) S390_RX(c, 0x5a, r, x, b, d) 1126 #define s390_adb(c, r, x, b, d) S390_RXE(c, 0xed1a, r, x, b, d) 1127 #define s390_adbr(c, r1, r2) S390_RRE(c, 0xb31a, r1, r2) 1128 #define s390_aebr(c, r1, r2) S390_RRE(c, 0xb30a, r1, r2) 1129 #define s390_afi(c, r, v) S390_RIL_1(c, 0xc29, r, v); 1130 #define s390_ag(c, r, x, b, d) S390_RXY(c, 0xe308, r, x, b, d) 1131 #define s390_agf(c, r, x, b, d) S390_RXY(c, 0xe318, r, x, b, d) 1132 #define s390_agfi(c, r, v) S390_RIL_1(c, 0xc28, r, v) 1133 #define s390_afgr(c, r1, r2) S390_RRE(c, 0xb918, r1, r2) 1134 #define s390_agh(c, r, x, b, d) S390_RXY(c, 0xe338, r, b, d) 1135 #define s390_aghi(c, r, v) S390_RI(c, 0xa7b, r, v) 1136 #define s390_aghik(c, r1, r3, v) S390_RIE_1(c, 0xecd9, r1, r3, v) 1137 #define s390_agr(c, r1, r2) S390_RRE(c, 0xb908, r1, r2) 1138 #define s390_agrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9e8, r1, r2, r3) 1139 #define s390_agsi(c, r, v) S390_SIY(c, 0xeb7a, r v) 1140 #define s390_ahhhr(c, r1, r2, r3) S390_RRF_1(c, 0xb9c8, r1, r2, r3) 1141 #define s390_ahhlr(c, r1, r2, r3) S390_RRF_1(c, 0xb9d8, r1, r2, r3) 1142 #define s390_ahi(c, r, v) S390_RI(c, 0xa7a, r, v) 1143 #define s390_ahik(c, r1, r3, v) S390_RIE_1(c, 0xecd8, r1, r3, v) 1144 #define s390_ahy(c, r, x, b, d) S390_RXY(c, 0xe37a, r, b, d) 1145 #define s390_aih(c, r, v) S390_RIL_1(c, 0xcc8, r, v) 1146 #define s390_al(c, r, x, b, d) S390_RX(c, 0x5e, r, x, b, d) 1147 #define s390_alc(c, r, x, b, d) S390_RXY(c, 0xe398, r, x, b, d) 1148 #define s390_alcg(c, r, x, b, d) S390_RXY(c, 0xe388, r, x, b, d) 1149 #define s390_alcgr(c, r1, r2) S390_RRE(c, 0xb988, r1, r2) 1150 #define s390_alcr(c, r1, r2) S390_RRE(c, 0xb998, r1, r2) 1151 #define s390_alfi(c, r, v) S390_RIL_1(c, 0xc2b, r, v) 1152 #define s390_alg(c, r, x, b, d) S390_RXY(c, 0xe30a, r, x, b, d) 1153 #define s390_algf(c, r, x, b, d) S390_RXY(c, 0xe31a, r, x, b, d) 1154 #define s390_algfi(c, r, v) S390_RIL_1(c, 0xc2a, r, v) 1155 #define s390_algfr(c, r1, r2) S390_RRE(c, 0xb91a, r1, r2) 1156 #define s390_alghsik(c, r1, r3, v) S390_RIE_1(c, 0xecdb, r1, r3, v) 1157 #define s390_algr(c, r1, r2) S390_RRE(c, 0xb90a, r1, r2) 1158 #define s390_algrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9ea, r1, r2, r3) 1159 #define s390_algsi(c, d1, b1, i2) S390_SIY_1(c, 0xeb7e, d1, b1, i2) 1160 #define s390_alhhhr(c, r1, r2, r3) S390_RRF_1(c, 0xb9ca, r1, r2, r3) 1161 #define s390_alhhlr(c, r1, r2, r3) S390_RRF_1(c, 0xb9da, r1, r2, r3) 1162 #define s390_alhsik(c, r1, r3, v) S390_RIE_1(c, 0xecda, r1, r3, v) 1163 #define s390_alr(c, r1, r2) S390_RR(c, 0x1e, r1, r2) 1164 #define s390_alrk(c, r1, r2) S390_RRF(c, 0xb9fa, r1, r2) 1165 #define s390_alsi(c, d1, b1, i2) S390_SIY_1(c, 0xeb6e, d1, b1, i2) 1166 #define s390_alsih(c, r, v) S390_RIL_1(c, 0xcca, r, v) 1167 #define s390_alsihn(c, r, v) S390_RIL_1(c, 0xccb, r, v) 1168 #define s390_aly(c, r, x, b, d) S390_RXY(c, 0xe35e, r, x, b, d) 1169 #define s390_ar(c, r1, r2) S390_RR(c, 0x1a, r1, r2) 1170 #define s390_ark(c, r1, r2, r3) S390_RRF_1(c, 0xb9f8, r1, r2, r3) 1171 #define s390_asi(c, r, v) S390_SIY(c, 0xeb6a, r, v) 1172 #define s390_axbr(c, r1, r2) S390_RRE(c, 0xb34a, r1, r2) 1173 #define s390_ay(c, r, x, b, d) S390_RXY(c, 0xe35a, r, x, b, d) 1174 #define s390_basr(c, r1, r2) S390_RR(c, 0x0d, r1, r2) 1175 #define s390_bctr(c, r1, r2) S390_RR(c, 0x06, r1, r2) 1176 #define s390_bctrg(c, r1, r2) S390_RRE(c, 0xb946, r1, r2) 1177 #define s390_bi(c, x, b, d) S390_RXY(c, 0xe347, S390_CC_UN, x, b, d) 1178 #define s390_bic(c, m, x, b, d) S390_RXY(c, 0xe347, m, x, b, d) 1179 #define s390_bnzr(c, r) S390_RR(c, 0x07, 0x07, r) 1180 #define s390_bras(c, r, o) S390_RI(c, 0xa75, r, o) 1181 #define s390_brasl(c, r, o) S390_RIL_1(c, 0xc05, r, o) 1182 #define s390_brc(c, m, d) S390_RI(c, 0xa74, m, d) 1183 #define s390_brcl(c, m, d) S390_RIL_2(c, 0xc04, m, d) 1184 #define s390_br(c, r) S390_RR(c, 0x07, 0xf, r) 1185 #define s390_break(c) S390_RR(c, 0, 0, 0) 1186 #define s390_bzr(c, r) S390_RR(c, 0x07, 0x08, r) 1187 #define s390_c(c, r, x, b, d) S390_RX(c, 0x59, r, x, b, d) 1188 #define s390_cdb(c, r, x, b, d) S390_RXE(c, 0xed19, r, x, b, d) 1189 #define s390_cdbr(c, r1, r2) S390_RRE(c, 0xb319, r1, r2) 1190 #define s390_cdfbr(c, r1, r2) S390_RRE(c, 0xb395, r1, r2) 1191 #define s390_cdgbr(c, r1, r2) S390_RRE(c, 0xb3a5, r1, r2) 1192 #define s390_cdlfbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb391, r1, m3, r2, m4) 1193 #define s390_cdlgbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb3a1, r1, m3, r2, m4) 1194 #define s390_cds(c, r1, r2, b, d) S390_RX(c, 0xbb, r1, r2, b, d) 1195 #define s390_cdsg(c, r1, r2, b, d) S390_RSY_1(c, 0xeb3e, r1, r2, b, d) 1196 #define s390_cdsy(c, r1, r2, b, d) S390_RSY_1(c, 0xeb31, r1, r2, b, d) 1197 #define s390_cebr(c, r1, r2) S390_RRE(c, 0xb309, r1, r2) 1198 #define s390_cegbr(c, r1, r2) S390_RRE(c, 0xb3a4, r1, r2) 1199 #define s390_cfdbr(c, r1, m, r2) S390_RRF_2(c, 0xb399, r1, m, r2) 1200 #define s390_cfi(c, r, v) S390_RIL_1(c, 0xc2d, r, v) 1201 #define s390_cgdbr(c, r1, m, r2) S390_RRF_2(c, 0xb3a9, r1, m, r2) 1202 #define s390_cg(c, r, x, b, d) S390_RXY(c, 0xe320, r, x, b, d) 1203 #define s390_cgfi(c, r, v) S390_RIL_1(c, 0xc2c, r, v) 1204 #define s390_cgfrl(c, r, v) S390_RIL_1(c, 0xc6c, r, v) 1205 #define s390_cghi(c, r, i) S390_RI(c, 0xa7f, r, i) 1206 #define s390_cgib(c, r, i, m, b, d) S390_RIS(c, 0xecfc, r, i, m, b, d) 1207 #define s390_cgij(c, r, i, m, d) S390_RIE_3(c, 0xec7c, r, i, m, d) 1208 #define s390_cgit(c, r, i, m) S390_RIE_4(c, 0xec70, r, i m); 1209 #define s390_cgr(c, r1, r2) S390_RRE(c, 0xb920, r1, r2) 1210 #define s390_cgrb(c, r1, r2, m3, b, d) S390_RRS(c, 0xece4, r1, r2, m3, b, d) 1211 #define s390_cgrj(c, r1, r2, m3, v) S390_RIE_2(c, 0xec64, r1, r2, m3, v) 1212 #define s390_cgrl(c, r, v) S390_RIL_1(c, 0xc68, r, v) 1213 #define s390_chi(c, r, i) S390_RI(c, 0xa7e, r, i) 1214 #define s390_cib(c, r, i, m, b, d) S390_RIS(c, 0xecfe, r, i, m, b, d) 1215 #define s390_cij(c, r, i, m, d) S390_RIE_3(c, 0xec7e, r, i, m, d) 1216 #define s390_cit(c, r, i, m) S390_RIE_4(c, 0xec72, r, i m); 1217 #define s390_cl(c, r, x, b, d) S390_RX(c, 0x55, r, x, b, d) 1218 #define s390_clfdbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb39d, r1, m3, r2, m4) 1219 #define s390_clg(c, r, x, b, d) S390_RXY(c, 0xe321, r, x, b, d) 1220 #define s390_clgib(c, r, i, m, b, d) S390_RIS(c, 0xecfd, r, i, m, b, d) 1221 #define s390_clgij(c, r, i, b) S390_RIE_3(c, 0xec7d, r, i, m, d) 1222 #define s390_clgr(c, r1, r2) S390_RRE(c, 0xb921, r1, r2) 1223 #define s390_clgdbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb3ad, r1, m3, r2, m4) 1224 #define s390_clgrj(c, r1, r2, m, v) S390_RIE_2(c, 0xec65, r1, r2, m, v) 1225 #define s390_clgrb(c, r1, r2, m3, b, d) S390_RRS(c, 0xece5, r1, r2, m3, b, d) 1226 #define s390_cli(c, b, d, v) S390_SI(c, 0x95, b, d, v) 1227 #define s390_clib(c, r, i, m, b, d) S390_RIS(c, 0xecff, r, i, m, b, d) 1228 #define s390_clij(c, r, i, b) S390_RIE_3(c, 0xec7f, r, i, m, d) 1229 #define s390_clr(c, r1, r2) S390_RR(c, 0x15, r1, r2) 1230 #define s390_clrb(c, r1, r2, m3, b, d) S390_RRS(c, 0xecf7, r1, r2, m3, b, d) 1231 #define s390_clrj(c, r1, r2, m, v) S390_RIE_2(c, 0xec77, r1, r2, m, v) 1232 #define s390_cr(c, r1, r2) S390_RR(c, 0x19, r1, r2) 1233 #define s390_crb(c, r1, r2, m3, b, d) S390_RRS(c, 0xecf6, r1, r2, m3, b, d) 1234 #define s390_crj(c, r1, r2, m3, v) S390_RIE_2(c, 0xec76, r1, r2, m3, v) 1235 #define s390_crl(c, r, v) S390_RIL_1(c, 0xc6d, r, v) 1236 #define s390_crt(c, r1, r2, m3) S390_RRF_2(c, 0xb972, r1, r2, m3); 1237 #define s390_cgrt(c, r1, r2, m3) S390_RRF_2(c, 0xb960, r1, r2, m3); 1238 #define s390_cs(c, r1, r2, b, d) S390_RX(c, 0xba, r1, r2, b, d) 1239 #define s390_csg(c, r1, r2, b, d) S390_RSY_1(c, 0xeb30, r1, r2, b, d) 1240 #define s390_csst(c, d1, b1, d2, b2, r) S390_SSF(c, 0xc82, b1, d1, b2, d2, r) 1241 #define s390_csy(c, r1, r2, b, d) S390_RSY_1(c, 0xeb14, r1, r2, b, d) 1242 #define s390_cxgbr(c, r1, r2) S390_RRE(c, 0xb3a6, r1, r2) 1243 #define s390_ddbr(c, r1, r2) S390_RRE(c, 0xb31d, r1, r2) 1244 #define s390_debr(c, r1, r2) S390_RRE(c, 0xb30d, r1, r2) 1245 #define s390_didbr(c, r1, r2, m, r3) S390_RRF_3(c, 0xb35b, r1, r2, m, r3) 1246 #define s390_dlgr(c, r1, r2) S390_RRE(c, 0xb987, r1, r2) 1247 #define s390_dlr(c, r1, r2) S390_RRE(c, 0xb997, r1, r2) 1248 #define s390_dr(c, r1, r2) S390_RR(c, 0x1d, r1, r2) 1249 #define s390_dsgfr(c, r1, r2) S390_RRE(c, 0xb91d, r1, r2) 1250 #define s390_dsgr(c, r1, r2) S390_RRE(c, 0xb90d, r1, r2) 1251 #define s390_ear(c, r1, r2) S390_RRE(c, 0xb24f, r1, r2) 1252 #define s390_ic(c, r, x, b, d) S390_RX(c, 0x43, r, x, b, d) 1253 #define s390_icm(c, r, m, b, d) S390_RX(c, 0xbf, r, m, b, d) 1254 #define s390_icmy(c, r, x, b, d) S390_RXY(c, 0xeb81, r, x, b, d) 1255 #define s390_icy(c, r, x, b, d) S390_RXY(c, 0xe373, r, x, b, d) 1256 #define s390_iihf(c, r, v) S390_RIL_1(c, 0xc08, r, v) 1257 #define s390_iihh(c, r, v) S390_RI(c, 0xa50, r, v) 1258 #define s390_iihl(c, r, v) S390_RI(c, 0xa51, r, v) 1259 #define s390_iilf(c, r, v) S390_RIL_1(c, 0xc09, r, v) 1260 #define s390_iilh(c, r, v) S390_RI(c, 0xa52, r, v) 1261 #define s390_iill(c, r, v) S390_RI(c, 0xa53, r, v) 1262 #define s390_j(c,d) s390_brc(c, S390_CC_UN, d) 1263 #define s390_jc(c, m, d) s390_brc(c, m, d) 1264 #define s390_jcl(c, m, d) s390_brcl(c, m, d) 1265 #define s390_jcy(c, d) s390_brc(c, S390_CC_CY, d) 1266 #define s390_je(c, d) s390_brc(c, S390_CC_EQ, d) 1267 #define s390_jeo(c, d) s390_brc(c, S390_CC_ZR|S390_CC_OV, d) 1268 #define s390_jh(c, d) s390_brc(c, S390_CC_GT, d) 1269 #define s390_jhe(c, d) s390_brc(c, S390_CC_GT|S390_CC_EQ, d) 1270 #define s390_jho(c, d) s390_brc(c, S390_CC_GT|S390_CC_OV, d) 1271 #define s390_jl(c, d) s390_brc(c, S390_CC_LT, d) 1272 #define s390_jle(c, d) s390_brc(c, S390_CC_LT|S390_CC_EQ, d) 1273 #define s390_jlo(c, d) s390_brc(c, S390_CC_LT|S390_CC_OV, d) 1274 #define s390_jm(c, d) s390_brc(c, S390_CC_LT, d) 1275 #define s390_jnc(c, d) s390_brc(c, S390_CC_NC, d) 1276 #define s390_jne(c, d) s390_brc(c, S390_CC_NZ, d) 1277 #define s390_jnh(c, d) s390_brc(c, S390_CC_LE, d) 1278 #define s390_jnl(c, d) s390_brc(c, S390_CC_GE, d) 1279 #define s390_jnz(c, d) s390_brc(c, S390_CC_NZ, d) 1280 #define s390_jo(c, d) s390_brc(c, S390_CC_OV, d) 1281 #define s390_jno(c, d) s390_brc(c, S390_CC_NO, d) 1282 #define s390_jp(c, d) s390_brc(c, S390_CC_GT, d) 1283 #define s390_jz(c, d) s390_brc(c, S390_CC_ZR, d) 1284 #define s390_jg(c,d) s390_brcl(c, S390_CC_UN, d) 1285 #define s390_jgcy(c, d) s390_brcl(c, S390_CC_CY, d) 1286 #define s390_jge(c, d) s390_brcl(c, S390_CC_EQ, d) 1287 #define s390_jgeo(c, d) s390_brcl(c, S390_CC_ZR|S390_CC_OV, d) 1288 #define s390_jgh(c, d) s390_brcl(c, S390_CC_GT, d) 1289 #define s390_jgho(c, d) s390_brcl(c, S390_CC_GT|S390_CC_OV, d) 1290 #define s390_jgl(c, d) s390_brcl(c, S390_CC_LT, d) 1291 #define s390_jglo(c, d) s390_brcl(c, S390_CC_LT|S390_CC_OV, d) 1292 #define s390_jgm(c, d) s390_brcl(c, S390_CC_LT, d) 1293 #define s390_jgnc(c, d) s390_brcl(c, S390_CC_NC, d) 1294 #define s390_jgne(c, d) s390_brcl(c, S390_CC_NZ, d) 1295 #define s390_jgnh(c, d) s390_brcl(c, S390_CC_LE, d) 1296 #define s390_jgnl(c, d) s390_brcl(c, S390_CC_GE, d) 1297 #define s390_jgnz(c, d) s390_brcl(c, S390_CC_NZ, d) 1298 #define s390_jgo(c, d) s390_brcl(c, S390_CC_OV, d) 1299 #define s390_jgno(c, d) s390_brcl(c, S390_CC_NO, d) 1300 #define s390_jgp(c, d) s390_brcl(c, S390_CC_GT, d) 1301 #define s390_jgz(c, d) s390_brcl(c, S390_CC_ZR, d) 1302 #define s390_l(c, r, x, b, d) S390_RX(c, 0x58, r, x, b, d) 1303 #define s390_ly(c, r, x, b, d) S390_RXY(c, 0xe358, r, x, b, d) 1304 #define s390_la(c, r, x, b, d) S390_RX(c, 0x41, r, x, b, d) 1305 #define s390_laa(c, r1, r3, b, d) S390_RSY_1(c, 0xebf8, r1, r3, b, d) 1306 #define s390_laag(c, r1, r3, b, d) S390_RSY_1(c, 0xebe8, r1, r3, b, d) 1307 #define s390_lay(c, r, x, b, d) S390_RXY(c, 0xe371, r, x, b, d) 1308 #define s390_lam(c, r1, r2, b, d) S390_RS_1(c, 0x9a, r1, r2, b, d) 1309 #define s390_larl(c, r, o) S390_RIL_1(c, 0xc00, r, o) 1310 #define s390_lb(c, r, x, b, d) S390_RXY(c, 0xe376, r, x, b, d) 1311 #define s390_lbr(c, r1, r2) S390_RRE(c, 0xb926, r1, r2) 1312 #define s390_lcdbr(c, r1, r2) S390_RRE(c, 0xb313, r1, r2) 1313 #define s390_lcgr(c, r1, r2) S390_RRE(c, 0xb903, r1, r2) 1314 #define s390_lcr(c, r1, r2) S390_RR(c, 0x13, r1, r2) 1315 #define s390_ld(c, f, x, b, d) S390_RX(c, 0x68, f, x, b, d) 1316 #define s390_ldy(c, r, x, b, d) S390_RXY(c, 0xed65, r, x, b, d) 1317 #define s390_ldeb(c, r, x, b, d) S390_RXE(c, 0xed04, r, x, b, d) 1318 #define s390_ldebr(c, r1, r2) S390_RRE(c, 0xb304, r1, r2) 1319 #define s390_ldgr(c, r1, r2) S390_RRE(c, 0xb3c1, r1, r2) 1320 #define s390_ldxbr(c, r1, r2) S390_RRE(c, 0xb345, r1, r2) 1321 #define s390_ldr(c, r1, r2) S390_RR(c, 0x28, r1, r2) 1322 #define s390_le(c, f, x, b, d) S390_RX(c, 0x78, f, x, b, d) 1323 #define s390_ledbr(c, r1, r2) S390_RRE(c, 0xb344, r1, r2) 1324 #define s390_ler(c, r1, r2) S390_RR(c, 0x38, r1, r2) 1325 #define s390_ley(c, r, x, b, d) S390_RXY(c, 0xed64, r, x, b, d) 1326 #define s390_lg(c, r, x, b, d) S390_RXY(c, 0xe304, r, x, b, d) 1327 #define s390_lgb(c, r, x, b, d) S390_RXY(c, 0xe377, r, x, b, d) 1328 #define s390_lgbr(c, r1, r2) S390_RRE(c, 0xb906, r1, r2) 1329 #define s390_lgdr(c, r1, r2) S390_RRE(c, 0xb3cd, r1, r2) 1330 #define s390_lgf(c, r, x, b, d) S390_RXY(c, 0xe314, r, x, b, d) 1331 #define s390_lgfi(c, r, v) S390_RIL_1(c, 0xc01, r, v) 1332 #define s390_lgfrl(c, r1, d) S390_RIL_1(c, 0xc4c, r1, d) 1333 #define s390_lgfr(c, r1, r2) S390_RRE(c, 0xb914, r1, r2) 1334 #define s390_lgg(c, r, x, b, d) S390_RXY(c, 0xe34c, r, x, b, d) 1335 #define s390_lgh(c, r, x, b, d) S390_RXY(c, 0xe315, r, x, b, d) 1336 #define s390_lghi(c, r, v) S390_RI(c, 0xa79, r, v) 1337 #define s390_lghr(c, r1, r2) S390_RRE(c, 0xb907, r1, r2) 1338 #define s390_lgr(c, r1, r2) S390_RRE(c, 0xb904, r1, r2) 1339 #define s390_lgrl(c, r1, d) S390_RIL_1(c, 0xc48, r1, d) 1340 #define s390_lgsc(c, r, x, b, d) S390_RXY(c, 0xe34d, r, x, b, d) 1341 #define s390_lh(c, r, x, b, d) S390_RX(c, 0x48, r, x, b, d) 1342 #define s390_lhr(c, r1, r2) S390_RRE(c, 0xb927, r1, r2) 1343 #define s390_lhg(c, r, x, b, d) S390_RXY(c, 0xe315, r, x, b, d) 1344 #define s390_lhi(c, r, v) S390_RI(c, 0xa78, r, v) 1345 #define s390_lhy(c, r, x, b, d) S390_RXY(c, 0xe378, r, x, b, d) 1346 #define s390_llcr(c, r1, r2) S390_RRE(c, 0xb994, r1, r2) 1347 #define s390_llgc(c, r, x, b, d) S390_RXY(c, 0xe390, r, x, b, d) 1348 #define s390_llgcr(c, r1, r2) S390_RRE(c, 0xb984, r1, r2) 1349 #define s390_llgf(c, r, x, b, d) S390_RXY(c, 0xe316, r, x, b, d) 1350 #define s390_llgfr(c, r1, r2) S390_RRE(c, 0xb916, r1, r2) 1351 #define s390_llgh(c, r, x, b, d) S390_RXY(c, 0xe391, r, x, b, d) 1352 #define s390_llghr(c, r1, r2) S390_RRE(c, 0xb985, r1, r2) 1353 #define s390_llgfsg(c, r, x, b, d) S390_RXY(c, 0xe348, r, x, b, d) 1354 #define s390_llhr(c, r1, r2) S390_RRE(c, 0xb995, r1, r2) 1355 #define s390_llihf(c, r, v) S390_RIL_1(c, 0xc0e, r, v) 1356 #define s390_llihh(c, r, v) S390_RI(c, 0xa5c, r, v) 1357 #define s390_llihl(c, r, v) S390_RI(c, 0xa5d, r, v) 1358 #define s390_llilf(c, r, v) S390_RIL_1(c, 0xc0f, r, v) 1359 #define s390_llilh(c, r, v) S390_RI(c, 0xa5e, r, v) 1360 #define s390_llill(c, r, v) S390_RI(c, 0xa5f, r, v) 1361 #define s390_lm(c, r1, r2, b, d) S390_RS_1(c, 0x98, r1, r2, b, d) 1362 #define s390_lmg(c, r1, r2, b, d) S390_RSY_1(c, 0xeb04, r1, r2, b, d) 1363 #define s390_lndbr(c, r1, r2) S390_RRE(c, 0xb311, r1, r2) 1364 #define s390_lngr(c, r1, r2) S390_RRE(c, 0xb901, r1, r2) 1365 #define s390_lnr(c, r1, r2) S390_RR(c, 0x11, r1, r2) 1366 #define s390_lpdbr(c, r1, r2) S390_RRE(c, 0xb310, r1, r2) 1367 #define s390_lpgr(c, r1, r2) S390_RRE(c, 0xb900, r1, r2) 1368 #define s390_lpr(c, r1, r2) S390_RR(c, 0x10, r1, r2) 1369 #define s390_lr(c, r1, r2) S390_RR(c, 0x18, r1, r2) 1370 #define s390_lrl(c, r1, d) S390_RIL_1(c, 0xc4d, r1, d) 1371 #define s390_lt(c, r, x, b, d) S390_RXY(c, 0xe312, r, x, b, d) 1372 #define s390_ltg(c, r, x, b, d) S390_RXY(c, 0xe302, r, x, b, d) 1373 #define s390_ltgfr(c, r1, r2) S390_RRE(c, 0xb912, r1, r2) 1374 #define s390_ltgr(c, r1, r2) S390_RRE(c, 0xb902, r1, r2) 1375 #define s390_ltr(c, r1, r2) S390_RR(c, 0x12, r1, r2) 1376 #define s390_lzdr(c, r) S390_RRE(c, 0xb375, r, 0) 1377 #define s390_lzer(c, r) S390_RRE(c, 0xb374, r, 0) 1378 #define s390_m(c, r, x, b, d) S390_RX(c, 0x5c, r, x, b, d) 1379 #define s390_mdbr(c, r1, r2) S390_RRE(c, 0xb31c, r1, r2) 1380 #define s390_meebr(c, r1, r2) S390_RRE(c, 0xb317, r1, r2) 1381 #define s390_mg(c, r, x, b, d) S390_RXY(c, 0xe384, r, x, b, d) 1382 #define s390_mgh(c, r, x, b, d) S390_RXY(c, 0xe33c, r, x, b, d) 1383 #define s390_mgrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9ec, r1, r2, r3) 1384 #define s390_mfy(c, r, x, b, d) S390_RXY(c, 0xe35c, r, x, b, d) 1385 #define s390_mlgr(c, r1, r2) S390_RRE(c, 0xb986, r1, r2) 1386 #define s390_mlr(c, r1, r2) S390_RRE(c, 0xb996, r1, r2) 1387 #define s390_mr(c, r1, r2) S390_RR(c, 0x1c, r1, r2) 1388 #define s390_ms(c, r, x, b, d) S390_RX(c, 0x71, r, x, b, d) 1389 #define s390_msfi(c, r, v) S390_RIL_1(c, 0xc20, r, v) 1390 #define s390_msgfi(c, r, v) S390_RIL_1(c, 0xc21, r, v) 1391 #define s390_msgfr(c, r1, r2) S390_RRE(c, 0xb91c, r1, r2) 1392 #define s390_msgr(c, r1, r2) S390_RRE(c, 0xb90c, r1, r2) 1393 #define s390_msgrkc(c, r1, r2, r3) S390_RRF_1(c, 0xb9ed, r1, r2, r3) 1394 #define s390_msr(c, r1, r2) S390_RRE(c, 0xb252, r1, r2) 1395 #define s390_mvc(c, l, b1, d1, b2, d2) S390_SS_1(c, 0xd2, l, b1, d1, b2, d2) 1396 #define s390_mvcl(c, r1, r2) S390_RR(c, 0x0e, r1, r2) 1397 #define s390_mvcle(c, r1, r3, d2, b2) S390_RS_1(c, 0xa8, r1, r3, d2, b2) 1398 #define s390_mvi(c, b, d, v) S390_SI(c, 0x92, b, d, v) 1399 #define s390_n(c, r, x, b, d) S390_RX(c, 0x54, r, x, b, d) 1400 #define s390_nc(c, l, b1, d1, b2, d2) S390_SS_1(c, 0xd4, l, b1, d1, b2, d2) 1401 #define s390_ng(c, r, x, b, d) S390_RXY(c, 0xe380, r, x, b, d) 1402 #define s390_ngr(c, r1, r2) S390_RRE(c, 0xb980, r1, r2) 1403 #define s390_ngrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9e4, r1, r2, r3) 1404 #define s390_ni(c, b, d, v) S390_SI(c, 0x94, b, d, v) 1405 #define s390_nihf(c, r, v) S390_RIL_1(c, 0xc0a, r, v) 1406 #define s390_nihh(c, r, v) S390_RI(c, 0xa54, r, v) 1407 #define s390_nihl(c, r, v) S390_RI(c, 0xa55, r, v) 1408 #define s390_nilf(c, r, v) S390_RIL_1(c, 0xc0b, r, v) 1409 #define s390_nilh(c, r, v) S390_RI(c, 0xa56, r, v) 1410 #define s390_nill(c, r, v) S390_RI(c, 0xa57, r, v) 1411 #define s390_niy(c, b, d, v) S390_SIY(c, 0xeb54, b, d, v) 1412 #define s390_nop(c) S390_RR(c, 0x07, 0x0, 0) 1413 #define s390_mem(c) S390_RR(c, 0x07, 0xe, 0) 1414 #define s390_nr(c, r1, r2) S390_RR(c, 0x14, r1, r2) 1415 #define s390_nrk(c, r1, r2) S390_RRF_1(c, 0xb9f4, r1, r2) 1416 #define s390_ny(c, r, x, b, d) S390_RRY(c, 0xe354, r1, r2) 1417 #define s390_o(c, r, x, b, d) S390_RX(c, 0x56, r, x, b, d) 1418 #define s390_oihf(c, r, v) S390_RIL_1(c, 0xc0c, r, v) 1419 #define s390_oihh(c, r, v) S390_RI(c, 0xa58, r, v) 1420 #define s390_oihl(c, r, v) S390_RI(c, 0xa59, r, v) 1421 #define s390_oilf(c, r, v) S390_RIL_1(c, 0xc0d, r, v) 1422 #define s390_oilh(c, r, v) S390_RI(c, 0xa5a, r, v) 1423 #define s390_oill(c, r, v) S390_RI(c, 0xa5b, r, v) 1424 #define s390_oiy(c, b, d, v) S390_SIY(c, 0xeb56 b, d, v) 1425 #define s390_og(c, r, x, b, d) S390_RXY(c, 0xe381, r, x, b, d) 1426 #define s390_ogr(c, r1, r2) S390_RRE(c, 0xb981, r1, r2) 1427 #define s390_ogrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9e6, r1, r2, r3) 1428 #define s390_or(c, r1, r2) S390_RR(c, 0x16, r1, r2) 1429 #define s390_s(c, r, x, b, d) S390_RX(c, 0x5b, r, x, b, d) 1430 #define s390_sdb(c, r, x, b, d) S390_RXE(c, 0xed1b, r, x, b, d) 1431 #define s390_sdbr(c, r1, r2) S390_RRE(c, 0xb31b, r1, r2) 1432 #define s390_sebr(c, r1, r2) S390_RRE(c, 0xb30b, r1, r2) 1433 #define s390_sg(c, r, x, b, d) S390_RXY(c, 0xe309, r, x, b, d) 1434 #define s390_sgf(c, r, x, b, d) S390_RXY(c, 0xe319, r, x, b, d) 1435 #define s390_sgh(c, r, x, b, d) S390_RXY(c, 0xe339, r, x, b, d) 1436 #define s390_sgr(c, r1, r2) S390_RRE(c, 0xb909, r1, r2) 1437 #define s390_sgrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9e9, r1, r2, r3) 1438 #define s390_sl(c, r, x, b, d) S390_RX(c, 0x5f, r, x, b, d) 1439 #define s390_sla(c, r, b, d) S390_RS_3(c, 0x8b, r, b, d) 1440 #define s390_slag(c, r1, r2, b, d) S390_RSY_1(c, 0xeb0b, r1, r2, b, d) 1441 #define s390_slbg(c, r, x, b, d) S390_RXY(c, 0xe389, r, x, b, d) 1442 #define s390_slbgr(c, r1, r2) S390_RRE(c, 0xb989, r1, r2) 1443 #define s390_slbr(c, r1, r2) S390_RRE(c, 0xb999, r1, r2) 1444 #define s390_slda(c, r, b, d) S390_RS_3(c, 0x8f, r, b, d) 1445 #define s390_sldl(c, r, b, d) S390_RS_3(c, 0x8d, r, b, d) 1446 #define s390_slfi(c, r, v) S390_RIL_1(c, 0xc25, r, v) 1447 #define s390_slg(c, r, x, b, d) S390_RXY(c, 0xe30b, r, x, b, d) 1448 #define s390_slgf(c, r, x, b, d) S390_RXY(c, 0xe31b, r, x, b, d) 1449 #define s390_slgfr(c, r1, r2) S390_RRE(c, 0xb91b, r1, r2) 1450 #define s390_slgfi(c, r, v) S390_RIL_1(c, 0xc24, r, v) 1451 #define s390_slgr(c, r1, r2) S390_RRE(c, 0xb90b, r1, r2) 1452 #define s390_slgrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9eb, r1, r2, r3) 1453 #define s390_sll(c, r, b, d) S390_RS_3(c, 0x89, r, b, d) 1454 #define s390_sllg(c, r1, r2, b, d) S390_RSY_1(c, 0xeb0d, r1, r2, b, d) 1455 #define s390_slr(c, r1, r2) S390_RR(c, 0x1f, r1, r2) 1456 #define s390_slrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9fb, r1, r2, r3) 1457 #define s390_sqdbr(c, r1, r2) S390_RRE(c, 0xb315, r1, r2) 1458 #define s390_sqebr(c, r1, r2) S390_RRE(c, 0xb314, r1, r2) 1459 #define s390_sra(c, r, b, d) S390_RS_3(c, 0x8a, r, b, d) 1460 #define s390_srag(c, r1, r2, b, d) S390_RSY_1(c, 0xeb0a, r1, r2, b, d) 1461 #define s390_sr(c, r1, r2) S390_RR(c, 0x1b, r1, r2) 1462 #define s390_srda(c, r, b, d) S390_RS_3(c, 0x8e, r, b, d) 1463 #define s390_srdl(c, r, b, d) S390_RS_3(c, 0x8c, r, b, d) 1464 #define s390_srk(c, r1, r2, r3) S390_RRF_1(c, 0xb9f9, r1, r2, r3) 1465 #define s390_srl(c, r, b, d) S390_RS_3(c, 0x88, r, b, d) 1466 #define s390_srlg(c, r1, r2, b, d) S390_RSY_1(c, 0xeb0c, r1, r2, b, d) 1467 #define s390_st(c, r, x, b, d) S390_RX(c, 0x50, r, x, b, d) 1468 #define s390_stam(c, r1, r2, b, d) S390_RS_1(c, 0x9b, r1, r2, b, d) 1469 #define s390_stc(c, r, x, b, d) S390_RX(c, 0x42, r, x, b, d) 1470 #define s390_stcm(c, r, m, b, d) S390_RX(c, 0xbe, r, m, b, d) 1471 #define s390_stcmy(c, r, x, b, d) S390_RXY(c, 0xeb2d, r, x, b, d) 1472 #define s390_stcy(c, r, x, b, d) S390_RXY(c, 0xe372, r, x, b, d) 1473 #define s390_std(c, f, x, b, d) S390_RX(c, 0x60, f, x, b, d) 1474 #define s390_stdy(c, r, x, b, d) S390_RXY(c, 0xed67, r, x, b, d) 1475 #define s390_ste(c, f, x, b, d) S390_RX(c, 0x70, f, x, b, d) 1476 #define s390_stey(c, r, x, b, d) S390_RXY(c, 0xed66, r, x, b, d) 1477 #define s390_stfpc(c, b, d) S390_S(c, 0xb29c, b, d) 1478 #define s390_stg(c, r, x, b, d) S390_RXY(c, 0xe324, r, x, b, d) 1479 #define s390_stgsc(c, r, x, b, d) S390_RXY(c, 0xe349, r, x, b, d) 1480 #define s390_sth(c, r, x, b, d) S390_RX(c, 0x40, r, x, b, d) 1481 #define s390_sthy(c, r, x, b, d) S390_RXY(c, 0xe370, r, x, b, d) 1482 #define s390_stm(c, r1, r2, b, d) S390_RS_1(c, 0x90, r1, r2, b, d) 1483 #define s390_stmg(c, r1, r2, b, d) S390_RSY_1(c, 0xeb24, r1, r2, b, d) 1484 #define s390_sty(c, r, x, b, d) S390_RXY(c, 0xe350, r, x, b, d) 1485 #define s390_tcdb(c, r, x, b, d) S390_RXE(c, 0xed11, r, x, b, d) 1486 #define s390_tceb(c, r, x, b, d) S390_RXE(c, 0xed10, r, x, b, d) 1487 #define s390_tmhh(c, r, m) S390_RI(c, 0xa73, r, m) 1488 #define s390_tmhl(c, r, m) S390_RI(c, 0xa72, r, m) 1489 #define s390_tmlh(c, r, m) S390_RI(c, 0xa70, r, m) 1490 #define s390_tmll(c, r, m) S390_RI(c, 0xa71, r, m) 1491 #define s390_tm(c, b, d, v) S390_SI(c, 0x91, b, d, v) 1492 #define s390_x(c, r, x, b, d) S390_RX(c, 0x57, r, x, b, d) 1493 #define s390_xihf(c, r, v) S390_RIL_1(c, 0xc06, r, v) 1494 #define s390_xilf(c, r, v) S390_RIL_1(c, 0xc07, r, v) 1495 #define s390_xg(c, r, x, b, d) S390_RXY(c, 0xe382, r, x, b, d) 1496 #define s390_xgr(c, r1, r2) S390_RRE(c, 0xb982, r1, r2) 1497 #define s390_xgrk(c, r1, r2, r3) S390_RRF_1(c, 0xb9e7, r1, r2, r3) 1498 #define s390_xr(c, r1, r2) S390_RR(c, 0x17, r1, r2) 1499 #define s390_xy(c, r, x, b, d) S390_RXY(c, 0xe357, r, x, b, d) 1500 #endif 1501