Lines Matching refs:variant
509 addHRegUse(u, HRmRead, op.variant.reg); in s390_opnd_RMI_get_reg_usage()
513 s390_amode_get_reg_usage(u, op.variant.am); in s390_opnd_RMI_get_reg_usage()
533 addHRegUse(u, HRmWrite, insn->variant.load.dst); in s390_insn_get_reg_usage()
534 s390_amode_get_reg_usage(u, insn->variant.load.src); in s390_insn_get_reg_usage()
538 addHRegUse(u, HRmWrite, insn->variant.load_immediate.dst); in s390_insn_get_reg_usage()
542 addHRegUse(u, HRmRead, insn->variant.store.src); in s390_insn_get_reg_usage()
543 s390_amode_get_reg_usage(u, insn->variant.store.dst); in s390_insn_get_reg_usage()
547 addHRegUse(u, HRmRead, insn->variant.move.src); in s390_insn_get_reg_usage()
548 addHRegUse(u, HRmWrite, insn->variant.move.dst); in s390_insn_get_reg_usage()
552 s390_opnd_RMI_get_reg_usage(u, insn->variant.cond_move.src); in s390_insn_get_reg_usage()
553 addHRegUse(u, HRmWrite, insn->variant.cond_move.dst); in s390_insn_get_reg_usage()
557 addHRegUse(u, HRmWrite, insn->variant.alu.dst); in s390_insn_get_reg_usage()
558 addHRegUse(u, HRmRead, insn->variant.alu.dst); /* op1 */ in s390_insn_get_reg_usage()
559 s390_opnd_RMI_get_reg_usage(u, insn->variant.alu.op2); in s390_insn_get_reg_usage()
563 addHRegUse(u, HRmRead, insn->variant.mul.dst_lo); /* op1 */ in s390_insn_get_reg_usage()
564 addHRegUse(u, HRmWrite, insn->variant.mul.dst_lo); in s390_insn_get_reg_usage()
565 addHRegUse(u, HRmWrite, insn->variant.mul.dst_hi); in s390_insn_get_reg_usage()
566 s390_opnd_RMI_get_reg_usage(u, insn->variant.mul.op2); in s390_insn_get_reg_usage()
570 addHRegUse(u, HRmRead, insn->variant.div.op1_lo); in s390_insn_get_reg_usage()
571 addHRegUse(u, HRmRead, insn->variant.div.op1_hi); in s390_insn_get_reg_usage()
572 addHRegUse(u, HRmWrite, insn->variant.div.op1_lo); in s390_insn_get_reg_usage()
573 addHRegUse(u, HRmWrite, insn->variant.div.op1_hi); in s390_insn_get_reg_usage()
574 s390_opnd_RMI_get_reg_usage(u, insn->variant.div.op2); in s390_insn_get_reg_usage()
578 addHRegUse(u, HRmRead, insn->variant.divs.op1); in s390_insn_get_reg_usage()
579 addHRegUse(u, HRmWrite, insn->variant.divs.op1); /* quotient */ in s390_insn_get_reg_usage()
580 addHRegUse(u, HRmWrite, insn->variant.divs.rem); /* remainder */ in s390_insn_get_reg_usage()
581 s390_opnd_RMI_get_reg_usage(u, insn->variant.divs.op2); in s390_insn_get_reg_usage()
585 addHRegUse(u, HRmWrite, insn->variant.clz.num_bits); in s390_insn_get_reg_usage()
586 addHRegUse(u, HRmWrite, insn->variant.clz.clobber); in s390_insn_get_reg_usage()
587 s390_opnd_RMI_get_reg_usage(u, insn->variant.clz.src); in s390_insn_get_reg_usage()
591 addHRegUse(u, HRmWrite, insn->variant.unop.dst); in s390_insn_get_reg_usage()
592 s390_opnd_RMI_get_reg_usage(u, insn->variant.unop.src); in s390_insn_get_reg_usage()
596 s390_opnd_RMI_get_reg_usage(u, insn->variant.test.src); in s390_insn_get_reg_usage()
600 addHRegUse(u, HRmWrite, insn->variant.cc2bool.dst); in s390_insn_get_reg_usage()
604 addHRegUse(u, HRmRead, insn->variant.cas.op1); in s390_insn_get_reg_usage()
605 s390_amode_get_reg_usage(u, insn->variant.cas.op2); in s390_insn_get_reg_usage()
606 addHRegUse(u, HRmRead, insn->variant.cas.op3); in s390_insn_get_reg_usage()
607 addHRegUse(u, HRmWrite, insn->variant.cas.old_mem); in s390_insn_get_reg_usage()
611 addHRegUse(u, HRmRead, insn->variant.compare.src1); in s390_insn_get_reg_usage()
612 s390_opnd_RMI_get_reg_usage(u, insn->variant.compare.src2); in s390_insn_get_reg_usage()
616 s390_opnd_RMI_get_reg_usage(u, insn->variant.branch.dst); in s390_insn_get_reg_usage()
640 for (i = 0; i < insn->variant.helper_call.num_args; ++i) { in s390_insn_get_reg_usage()
652 addHRegUse(u, HRmWrite, insn->variant.bfp_triop.dst); in s390_insn_get_reg_usage()
653 addHRegUse(u, HRmRead, insn->variant.bfp_triop.dst); /* first */ in s390_insn_get_reg_usage()
654 addHRegUse(u, HRmRead, insn->variant.bfp_triop.op2); /* second */ in s390_insn_get_reg_usage()
655 addHRegUse(u, HRmRead, insn->variant.bfp_triop.op3); /* third */ in s390_insn_get_reg_usage()
659 addHRegUse(u, HRmWrite, insn->variant.bfp_binop.dst); in s390_insn_get_reg_usage()
660 addHRegUse(u, HRmRead, insn->variant.bfp_binop.dst); /* left */ in s390_insn_get_reg_usage()
661 addHRegUse(u, HRmRead, insn->variant.bfp_binop.op2); /* right */ in s390_insn_get_reg_usage()
665 addHRegUse(u, HRmWrite, insn->variant.bfp_unop.dst); in s390_insn_get_reg_usage()
666 addHRegUse(u, HRmRead, insn->variant.bfp_unop.op); /* operand */ in s390_insn_get_reg_usage()
670 addHRegUse(u, HRmWrite, insn->variant.bfp_compare.dst); in s390_insn_get_reg_usage()
671 addHRegUse(u, HRmRead, insn->variant.bfp_compare.op1); /* left */ in s390_insn_get_reg_usage()
672 addHRegUse(u, HRmRead, insn->variant.bfp_compare.op2); /* right */ in s390_insn_get_reg_usage()
676 addHRegUse(u, HRmWrite, insn->variant.bfp128_binop.dst_hi); in s390_insn_get_reg_usage()
677 addHRegUse(u, HRmWrite, insn->variant.bfp128_binop.dst_lo); in s390_insn_get_reg_usage()
678 addHRegUse(u, HRmRead, insn->variant.bfp128_binop.dst_hi); /* left */ in s390_insn_get_reg_usage()
679 addHRegUse(u, HRmRead, insn->variant.bfp128_binop.dst_lo); /* left */ in s390_insn_get_reg_usage()
680 addHRegUse(u, HRmRead, insn->variant.bfp128_binop.op2_hi); /* right */ in s390_insn_get_reg_usage()
681 addHRegUse(u, HRmRead, insn->variant.bfp128_binop.op2_lo); /* right */ in s390_insn_get_reg_usage()
685 addHRegUse(u, HRmWrite, insn->variant.bfp128_compare.dst); in s390_insn_get_reg_usage()
686 addHRegUse(u, HRmRead, insn->variant.bfp128_compare.op1_hi); /* left */ in s390_insn_get_reg_usage()
687 addHRegUse(u, HRmRead, insn->variant.bfp128_compare.op1_lo); /* left */ in s390_insn_get_reg_usage()
688 addHRegUse(u, HRmRead, insn->variant.bfp128_compare.op2_hi); /* right */ in s390_insn_get_reg_usage()
689 addHRegUse(u, HRmRead, insn->variant.bfp128_compare.op2_lo); /* right */ in s390_insn_get_reg_usage()
693 addHRegUse(u, HRmWrite, insn->variant.bfp128_unop.dst_hi); in s390_insn_get_reg_usage()
694 addHRegUse(u, HRmWrite, insn->variant.bfp128_unop.dst_lo); in s390_insn_get_reg_usage()
695 addHRegUse(u, HRmRead, insn->variant.bfp128_unop.op_hi); in s390_insn_get_reg_usage()
696 addHRegUse(u, HRmRead, insn->variant.bfp128_unop.op_lo); in s390_insn_get_reg_usage()
700 addHRegUse(u, HRmWrite, insn->variant.bfp128_unop.dst_hi); in s390_insn_get_reg_usage()
701 addHRegUse(u, HRmWrite, insn->variant.bfp128_unop.dst_lo); in s390_insn_get_reg_usage()
702 addHRegUse(u, HRmRead, insn->variant.bfp128_unop.op_hi); in s390_insn_get_reg_usage()
706 addHRegUse(u, HRmWrite, insn->variant.bfp128_unop.dst_hi); in s390_insn_get_reg_usage()
707 addHRegUse(u, HRmRead, insn->variant.bfp128_unop.op_hi); in s390_insn_get_reg_usage()
708 addHRegUse(u, HRmRead, insn->variant.bfp128_unop.op_lo); in s390_insn_get_reg_usage()
726 op->variant.reg = lookupHRegRemap(m, op->variant.reg); in s390_opnd_RMI_map_regs()
733 s390_amode_map_regs(m, op->variant.am); in s390_opnd_RMI_map_regs()
747 insn->variant.load.dst = lookupHRegRemap(m, insn->variant.load.dst); in s390_insn_map_regs()
748 s390_amode_map_regs(m, insn->variant.load.src); in s390_insn_map_regs()
752 s390_amode_map_regs(m, insn->variant.store.dst); in s390_insn_map_regs()
753 insn->variant.store.src = lookupHRegRemap(m, insn->variant.store.src); in s390_insn_map_regs()
757 insn->variant.move.dst = lookupHRegRemap(m, insn->variant.move.dst); in s390_insn_map_regs()
758 insn->variant.move.src = lookupHRegRemap(m, insn->variant.move.src); in s390_insn_map_regs()
762 insn->variant.cond_move.dst = lookupHRegRemap(m, insn->variant.cond_move.dst); in s390_insn_map_regs()
763 s390_opnd_RMI_map_regs(m, &insn->variant.cond_move.src); in s390_insn_map_regs()
767 insn->variant.load_immediate.dst = in s390_insn_map_regs()
768 lookupHRegRemap(m, insn->variant.load_immediate.dst); in s390_insn_map_regs()
772 insn->variant.alu.dst = lookupHRegRemap(m, insn->variant.alu.dst); in s390_insn_map_regs()
773 s390_opnd_RMI_map_regs(m, &insn->variant.alu.op2); in s390_insn_map_regs()
777 insn->variant.mul.dst_hi = lookupHRegRemap(m, insn->variant.mul.dst_hi); in s390_insn_map_regs()
778 insn->variant.mul.dst_lo = lookupHRegRemap(m, insn->variant.mul.dst_lo); in s390_insn_map_regs()
779 s390_opnd_RMI_map_regs(m, &insn->variant.mul.op2); in s390_insn_map_regs()
783 insn->variant.div.op1_hi = lookupHRegRemap(m, insn->variant.div.op1_hi); in s390_insn_map_regs()
784 insn->variant.div.op1_lo = lookupHRegRemap(m, insn->variant.div.op1_lo); in s390_insn_map_regs()
785 s390_opnd_RMI_map_regs(m, &insn->variant.div.op2); in s390_insn_map_regs()
789 insn->variant.divs.op1 = lookupHRegRemap(m, insn->variant.divs.op1); in s390_insn_map_regs()
790 insn->variant.divs.rem = lookupHRegRemap(m, insn->variant.divs.rem); in s390_insn_map_regs()
791 s390_opnd_RMI_map_regs(m, &insn->variant.divs.op2); in s390_insn_map_regs()
795 insn->variant.clz.num_bits = lookupHRegRemap(m, insn->variant.clz.num_bits); in s390_insn_map_regs()
796 insn->variant.clz.clobber = lookupHRegRemap(m, insn->variant.clz.clobber); in s390_insn_map_regs()
797 s390_opnd_RMI_map_regs(m, &insn->variant.clz.src); in s390_insn_map_regs()
801 insn->variant.unop.dst = lookupHRegRemap(m, insn->variant.unop.dst); in s390_insn_map_regs()
802 s390_opnd_RMI_map_regs(m, &insn->variant.unop.src); in s390_insn_map_regs()
806 s390_opnd_RMI_map_regs(m, &insn->variant.test.src); in s390_insn_map_regs()
810 insn->variant.cc2bool.dst = lookupHRegRemap(m, insn->variant.cc2bool.dst); in s390_insn_map_regs()
814 insn->variant.cas.op1 = lookupHRegRemap(m, insn->variant.cas.op1); in s390_insn_map_regs()
815 s390_amode_map_regs(m, insn->variant.cas.op2); in s390_insn_map_regs()
816 insn->variant.cas.op3 = lookupHRegRemap(m, insn->variant.cas.op3); in s390_insn_map_regs()
817 insn->variant.cas.old_mem = lookupHRegRemap(m, insn->variant.cas.old_mem); in s390_insn_map_regs()
821 insn->variant.compare.src1 = lookupHRegRemap(m, insn->variant.compare.src1); in s390_insn_map_regs()
822 s390_opnd_RMI_map_regs(m, &insn->variant.compare.src2); in s390_insn_map_regs()
826 s390_opnd_RMI_map_regs(m, &insn->variant.branch.dst); in s390_insn_map_regs()
840 insn->variant.bfp_triop.dst = lookupHRegRemap(m, insn->variant.bfp_triop.dst); in s390_insn_map_regs()
841 insn->variant.bfp_triop.op2 = lookupHRegRemap(m, insn->variant.bfp_triop.op2); in s390_insn_map_regs()
842 insn->variant.bfp_triop.op3 = lookupHRegRemap(m, insn->variant.bfp_triop.op3); in s390_insn_map_regs()
846 insn->variant.bfp_binop.dst = lookupHRegRemap(m, insn->variant.bfp_binop.dst); in s390_insn_map_regs()
847 insn->variant.bfp_binop.op2 = lookupHRegRemap(m, insn->variant.bfp_binop.op2); in s390_insn_map_regs()
851 insn->variant.bfp_unop.dst = lookupHRegRemap(m, insn->variant.bfp_unop.dst); in s390_insn_map_regs()
852 insn->variant.bfp_unop.op = lookupHRegRemap(m, insn->variant.bfp_unop.op); in s390_insn_map_regs()
856 insn->variant.bfp_compare.dst = lookupHRegRemap(m, insn->variant.bfp_compare.dst); in s390_insn_map_regs()
857 insn->variant.bfp_compare.op1 = lookupHRegRemap(m, insn->variant.bfp_compare.op1); in s390_insn_map_regs()
858 insn->variant.bfp_compare.op2 = lookupHRegRemap(m, insn->variant.bfp_compare.op2); in s390_insn_map_regs()
862 insn->variant.bfp128_binop.dst_hi = in s390_insn_map_regs()
863 lookupHRegRemap(m, insn->variant.bfp128_binop.dst_hi); in s390_insn_map_regs()
864 insn->variant.bfp128_binop.dst_lo = in s390_insn_map_regs()
865 lookupHRegRemap(m, insn->variant.bfp128_binop.dst_lo); in s390_insn_map_regs()
866 insn->variant.bfp128_binop.op2_hi = in s390_insn_map_regs()
867 lookupHRegRemap(m, insn->variant.bfp128_binop.op2_hi); in s390_insn_map_regs()
868 insn->variant.bfp128_binop.op2_lo = in s390_insn_map_regs()
869 lookupHRegRemap(m, insn->variant.bfp128_binop.op2_lo); in s390_insn_map_regs()
873 insn->variant.bfp128_compare.dst = in s390_insn_map_regs()
874 lookupHRegRemap(m, insn->variant.bfp128_compare.dst); in s390_insn_map_regs()
875 insn->variant.bfp128_compare.op1_hi = in s390_insn_map_regs()
876 lookupHRegRemap(m, insn->variant.bfp128_compare.op1_hi); in s390_insn_map_regs()
877 insn->variant.bfp128_compare.op1_lo = in s390_insn_map_regs()
878 lookupHRegRemap(m, insn->variant.bfp128_compare.op1_lo); in s390_insn_map_regs()
879 insn->variant.bfp128_compare.op2_hi = in s390_insn_map_regs()
880 lookupHRegRemap(m, insn->variant.bfp128_compare.op2_hi); in s390_insn_map_regs()
881 insn->variant.bfp128_compare.op2_lo = in s390_insn_map_regs()
882 lookupHRegRemap(m, insn->variant.bfp128_compare.op2_lo); in s390_insn_map_regs()
886 insn->variant.bfp128_unop.dst_hi = in s390_insn_map_regs()
887 lookupHRegRemap(m, insn->variant.bfp128_unop.dst_hi); in s390_insn_map_regs()
888 insn->variant.bfp128_unop.dst_lo = in s390_insn_map_regs()
889 lookupHRegRemap(m, insn->variant.bfp128_unop.dst_lo); in s390_insn_map_regs()
890 insn->variant.bfp128_unop.op_hi = in s390_insn_map_regs()
891 lookupHRegRemap(m, insn->variant.bfp128_unop.op_hi); in s390_insn_map_regs()
892 insn->variant.bfp128_unop.op_lo = in s390_insn_map_regs()
893 lookupHRegRemap(m, insn->variant.bfp128_unop.op_lo); in s390_insn_map_regs()
897 insn->variant.bfp128_unop.dst_hi = in s390_insn_map_regs()
898 lookupHRegRemap(m, insn->variant.bfp128_unop.dst_hi); in s390_insn_map_regs()
899 insn->variant.bfp128_unop.dst_lo = in s390_insn_map_regs()
900 lookupHRegRemap(m, insn->variant.bfp128_unop.dst_lo); in s390_insn_map_regs()
901 insn->variant.bfp128_unop.op_hi = in s390_insn_map_regs()
902 lookupHRegRemap(m, insn->variant.bfp128_unop.op_hi); in s390_insn_map_regs()
906 insn->variant.bfp128_unop.dst_hi = in s390_insn_map_regs()
907 lookupHRegRemap(m, insn->variant.bfp128_unop.dst_hi); in s390_insn_map_regs()
908 insn->variant.bfp128_unop.op_hi = in s390_insn_map_regs()
909 lookupHRegRemap(m, insn->variant.bfp128_unop.op_hi); in s390_insn_map_regs()
910 insn->variant.bfp128_unop.op_lo = in s390_insn_map_regs()
911 lookupHRegRemap(m, insn->variant.bfp128_unop.op_lo); in s390_insn_map_regs()
930 hregClass(insn->variant.move.src) == hregClass(insn->variant.move.dst)) { in s390_insn_is_reg_reg_move()
931 *src = insn->variant.move.src; in s390_insn_is_reg_reg_move()
932 *dst = insn->variant.move.dst; in s390_insn_is_reg_reg_move()
3947 insn->variant.load.src = src; in s390_insn_load()
3948 insn->variant.load.dst = dst; in s390_insn_load()
3963 insn->variant.store.src = src; in s390_insn_store()
3964 insn->variant.store.dst = dst; in s390_insn_store()
3979 insn->variant.move.src = src; in s390_insn_move()
3980 insn->variant.move.dst = dst; in s390_insn_move()
3995 insn->variant.cond_move.cond = cond; in s390_insn_cond_move()
3996 insn->variant.cond_move.src = src; in s390_insn_cond_move()
3997 insn->variant.cond_move.dst = dst; in s390_insn_cond_move()
4012 insn->variant.load_immediate.dst = dst; in s390_insn_load_immediate()
4013 insn->variant.load_immediate.value = value; in s390_insn_load_immediate()
4026 insn->variant.alu.tag = tag; in s390_insn_alu()
4027 insn->variant.alu.dst = dst; in s390_insn_alu()
4028 insn->variant.alu.op2 = op2; in s390_insn_alu()
4045 insn->variant.mul.dst_hi = dst_hi; in s390_insn_mul()
4046 insn->variant.mul.dst_lo = dst_lo; in s390_insn_mul()
4047 insn->variant.mul.op2 = op2; in s390_insn_mul()
4048 insn->variant.mul.signed_multiply = signed_multiply; in s390_insn_mul()
4066 insn->variant.div.op1_hi = op1_hi; in s390_insn_div()
4067 insn->variant.div.op1_lo = op1_lo; in s390_insn_div()
4068 insn->variant.div.op2 = op2; in s390_insn_div()
4069 insn->variant.div.signed_divide = signed_divide; in s390_insn_div()
4086 insn->variant.divs.rem = rem; /* remainder */ in s390_insn_divs()
4087 insn->variant.divs.op1 = op1; /* also quotient */ in s390_insn_divs()
4088 insn->variant.divs.op2 = op2; in s390_insn_divs()
4105 insn->variant.clz.num_bits = num_bits; in s390_insn_clz()
4106 insn->variant.clz.clobber = clobber; in s390_insn_clz()
4107 insn->variant.clz.src = src; in s390_insn_clz()
4120 insn->variant.unop.tag = tag; in s390_insn_unop()
4121 insn->variant.unop.dst = dst; in s390_insn_unop()
4122 insn->variant.unop.src = opnd; in s390_insn_unop()
4137 insn->variant.test.src = src; in s390_insn_test()
4150 insn->variant.cc2bool.cond = cond; in s390_insn_cc2bool()
4151 insn->variant.cc2bool.dst = dst; in s390_insn_cc2bool()
4167 insn->variant.cas.op1 = op1; in s390_insn_cas()
4168 insn->variant.cas.op2 = op2; in s390_insn_cas()
4169 insn->variant.cas.op3 = op3; in s390_insn_cas()
4170 insn->variant.cas.old_mem = old_mem; in s390_insn_cas()
4186 insn->variant.compare.src1 = src1; in s390_insn_compare()
4187 insn->variant.compare.src2 = src2; in s390_insn_compare()
4188 insn->variant.compare.signed_comparison = signed_comparison; in s390_insn_compare()
4201 insn->variant.branch.kind = kind; in s390_insn_branch()
4202 insn->variant.branch.dst = dst; in s390_insn_branch()
4203 insn->variant.branch.cond = cond; in s390_insn_branch()
4217 insn->variant.helper_call.cond = cond; in s390_insn_helper_call()
4218 insn->variant.helper_call.target = target; in s390_insn_helper_call()
4219 insn->variant.helper_call.num_args = num_args; in s390_insn_helper_call()
4220 insn->variant.helper_call.name = name; in s390_insn_helper_call()
4234 insn->variant.bfp_triop.tag = tag; in s390_insn_bfp_triop()
4235 insn->variant.bfp_triop.dst = dst; in s390_insn_bfp_triop()
4236 insn->variant.bfp_triop.op2 = op2; in s390_insn_bfp_triop()
4237 insn->variant.bfp_triop.op3 = op3; in s390_insn_bfp_triop()
4238 insn->variant.bfp_triop.rounding_mode = rounding_mode; in s390_insn_bfp_triop()
4252 insn->variant.bfp_binop.tag = tag; in s390_insn_bfp_binop()
4253 insn->variant.bfp_binop.dst = dst; in s390_insn_bfp_binop()
4254 insn->variant.bfp_binop.op2 = op2; in s390_insn_bfp_binop()
4255 insn->variant.bfp_binop.rounding_mode = rounding_mode; in s390_insn_bfp_binop()
4269 insn->variant.bfp_unop.tag = tag; in s390_insn_bfp_unop()
4270 insn->variant.bfp_unop.dst = dst; in s390_insn_bfp_unop()
4271 insn->variant.bfp_unop.op = op; in s390_insn_bfp_unop()
4272 insn->variant.bfp_unop.rounding_mode = rounding_mode; in s390_insn_bfp_unop()
4287 insn->variant.bfp_compare.dst = dst; in s390_insn_bfp_compare()
4288 insn->variant.bfp_compare.op1 = op1; in s390_insn_bfp_compare()
4289 insn->variant.bfp_compare.op2 = op2; in s390_insn_bfp_compare()
4304 insn->variant.bfp128_binop.tag = tag; in s390_insn_bfp128_binop()
4305 insn->variant.bfp128_binop.dst_hi = dst_hi; in s390_insn_bfp128_binop()
4306 insn->variant.bfp128_binop.dst_lo = dst_lo; in s390_insn_bfp128_binop()
4307 insn->variant.bfp128_binop.op2_hi = op2_hi; in s390_insn_bfp128_binop()
4308 insn->variant.bfp128_binop.op2_lo = op2_lo; in s390_insn_bfp128_binop()
4309 insn->variant.bfp128_binop.rounding_mode = rounding_mode; in s390_insn_bfp128_binop()
4324 insn->variant.bfp128_unop.tag = tag; in s390_insn_bfp128_unop()
4325 insn->variant.bfp128_unop.dst_hi = dst_hi; in s390_insn_bfp128_unop()
4326 insn->variant.bfp128_unop.dst_lo = dst_lo; in s390_insn_bfp128_unop()
4327 insn->variant.bfp128_unop.op_hi = op_hi; in s390_insn_bfp128_unop()
4328 insn->variant.bfp128_unop.op_lo = op_lo; in s390_insn_bfp128_unop()
4329 insn->variant.bfp128_unop.rounding_mode = rounding_mode; in s390_insn_bfp128_unop()
4343 insn->variant.bfp128_compare.dst = dst; in s390_insn_bfp128_compare()
4344 insn->variant.bfp128_compare.op1_hi = op1_hi; in s390_insn_bfp128_compare()
4345 insn->variant.bfp128_compare.op1_lo = op1_lo; in s390_insn_bfp128_compare()
4346 insn->variant.bfp128_compare.op2_hi = op2_hi; in s390_insn_bfp128_compare()
4347 insn->variant.bfp128_compare.op2_lo = op2_lo; in s390_insn_bfp128_compare()
4361 insn->variant.bfp128_unop.tag = tag; in s390_insn_bfp128_convert_to()
4362 insn->variant.bfp128_unop.dst_hi = dst_hi; in s390_insn_bfp128_convert_to()
4363 insn->variant.bfp128_unop.dst_lo = dst_lo; in s390_insn_bfp128_convert_to()
4364 insn->variant.bfp128_unop.op_hi = op; in s390_insn_bfp128_convert_to()
4365 insn->variant.bfp128_unop.op_lo = INVALID_HREG; /* unused */ in s390_insn_bfp128_convert_to()
4366 insn->variant.bfp128_unop.rounding_mode = S390_ROUND_NEAREST_EVEN; /* unused */ in s390_insn_bfp128_convert_to()
4381 insn->variant.bfp128_unop.tag = tag; in s390_insn_bfp128_convert_from()
4382 insn->variant.bfp128_unop.dst_hi = dst; in s390_insn_bfp128_convert_from()
4383 insn->variant.bfp128_unop.dst_lo = INVALID_HREG; /* unused */ in s390_insn_bfp128_convert_from()
4384 insn->variant.bfp128_unop.op_hi = op_hi; in s390_insn_bfp128_convert_from()
4385 insn->variant.bfp128_unop.op_lo = op_lo; in s390_insn_bfp128_convert_from()
4386 insn->variant.bfp128_unop.rounding_mode = rounding_mode; in s390_insn_bfp128_convert_from()
4496 p += vex_sprintf(p, "%s", s390_hreg_as_string(op->variant.reg)); in s390_sprintf()
4500 p += vex_sprintf(p, "%s", s390_amode_as_string(op->variant.am)); in s390_sprintf()
4504 value = op->variant.imm; in s390_sprintf()
4550 s390_sprintf(buf, "%M %R,%A", "v-load", insn->variant.load.dst, in s390_insn_as_string()
4551 insn->variant.load.src); in s390_insn_as_string()
4555 s390_sprintf(buf, "%M %R,%A", "v-store", insn->variant.store.src, in s390_insn_as_string()
4556 insn->variant.store.dst); in s390_insn_as_string()
4560 s390_sprintf(buf, "%M %R,%R", "v-move", insn->variant.move.dst, in s390_insn_as_string()
4561 insn->variant.move.src); in s390_insn_as_string()
4566 insn->variant.cond_move.cond, insn->variant.cond_move.dst, in s390_insn_as_string()
4567 &insn->variant.cond_move.src); in s390_insn_as_string()
4571 s390_sprintf(buf, "%M %R,%I", "v-loadi", insn->variant.load_immediate.dst, in s390_insn_as_string()
4572 insn->variant.load_immediate.value); in s390_insn_as_string()
4576 switch (insn->variant.alu.tag) { in s390_insn_as_string()
4588 s390_sprintf(buf, "%M %R,%R,%O", op, insn->variant.alu.dst, in s390_insn_as_string()
4589 insn->variant.alu.dst /* op1 same as dst */, in s390_insn_as_string()
4590 &insn->variant.alu.op2); in s390_insn_as_string()
4594 if (insn->variant.mul.signed_multiply) { in s390_insn_as_string()
4599 s390_sprintf(buf, "%M %R,%O", op, insn->variant.mul.dst_hi, in s390_insn_as_string()
4600 &insn->variant.mul.op2); in s390_insn_as_string()
4604 if (insn->variant.div.signed_divide) { in s390_insn_as_string()
4609 s390_sprintf(buf, "%M %R,%O", op, insn->variant.div.op1_hi, in s390_insn_as_string()
4610 &insn->variant.div.op2); in s390_insn_as_string()
4614 s390_sprintf(buf, "%M %R,%O", "v-divsi", insn->variant.divs.op1, in s390_insn_as_string()
4615 &insn->variant.divs.op2); in s390_insn_as_string()
4619 s390_sprintf(buf, "%M %R,%O", "v-clz", insn->variant.clz.num_bits, in s390_insn_as_string()
4620 &insn->variant.clz.src); in s390_insn_as_string()
4624 switch (insn->variant.unop.tag) { in s390_insn_as_string()
4644 s390_sprintf(buf, "%M %R,%O", op, insn->variant.unop.dst, in s390_insn_as_string()
4645 &insn->variant.unop.src); in s390_insn_as_string()
4649 s390_sprintf(buf, "%M %O", "v-test", &insn->variant.test.src); in s390_insn_as_string()
4653 s390_sprintf(buf, "%M %R,%C", "v-cc2b", insn->variant.cc2bool.dst, in s390_insn_as_string()
4654 insn->variant.cc2bool.cond); in s390_insn_as_string()
4658 s390_sprintf(buf, "%M %R,%A,%R,%R", "v-cas", insn->variant.cas.op1, in s390_insn_as_string()
4659 insn->variant.cas.op2, insn->variant.cas.op3, in s390_insn_as_string()
4660 insn->variant.cas.old_mem); in s390_insn_as_string()
4664 if (insn->variant.compare.signed_comparison) { in s390_insn_as_string()
4669 s390_sprintf(buf, "%M %R,%O", op, insn->variant.compare.src1, in s390_insn_as_string()
4670 &insn->variant.compare.src2); in s390_insn_as_string()
4674 switch (insn->variant.branch.kind) { in s390_insn_as_string()
4691 s390_sprintf(buf, "if (%C) %s %O", insn->variant.branch.cond, op, in s390_insn_as_string()
4692 &insn->variant.branch.dst); in s390_insn_as_string()
4697 if (insn->variant.helper_call.cond != S390_CC_ALWAYS) { in s390_insn_as_string()
4699 insn->variant.helper_call.cond, in s390_insn_as_string()
4700 insn->variant.helper_call.name, in s390_insn_as_string()
4701 insn->variant.helper_call.target, in s390_insn_as_string()
4702 insn->variant.helper_call.num_args); in s390_insn_as_string()
4705 insn->variant.helper_call.name, in s390_insn_as_string()
4706 insn->variant.helper_call.target, in s390_insn_as_string()
4707 insn->variant.helper_call.num_args); in s390_insn_as_string()
4713 switch (insn->variant.bfp_triop.tag) { in s390_insn_as_string()
4718 s390_sprintf(buf, "%M %R,%R,%R,%R", op, insn->variant.bfp_triop.dst, in s390_insn_as_string()
4719 insn->variant.bfp_triop.dst /* op1 same as dst */, in s390_insn_as_string()
4720 insn->variant.bfp_triop.op2, insn->variant.bfp_triop.op3); in s390_insn_as_string()
4724 switch (insn->variant.bfp_binop.tag) { in s390_insn_as_string()
4731 s390_sprintf(buf, "%M %R,%R,%R", op, insn->variant.bfp_binop.dst, in s390_insn_as_string()
4732 insn->variant.bfp_binop.dst /* op1 same as dst */, in s390_insn_as_string()
4733 insn->variant.bfp_binop.op2); in s390_insn_as_string()
4737 s390_sprintf(buf, "%M %R,%R,%R", "v-fcmp", insn->variant.bfp_compare.dst, in s390_insn_as_string()
4738 insn->variant.bfp_compare.op1, insn->variant.bfp_compare.op2); in s390_insn_as_string()
4742 switch (insn->variant.bfp_unop.tag) { in s390_insn_as_string()
4767 s390_sprintf(buf, "%M %R,%R", op, insn->variant.bfp_unop.dst, in s390_insn_as_string()
4768 insn->variant.bfp_unop.op); in s390_insn_as_string()
4772 switch (insn->variant.bfp128_binop.tag) { in s390_insn_as_string()
4780 s390_sprintf(buf, "%M %R,%R,%R", op, insn->variant.bfp128_binop.dst_hi, in s390_insn_as_string()
4781 insn->variant.bfp128_binop.dst_hi /* op1 same as dst */, in s390_insn_as_string()
4782 insn->variant.bfp128_binop.op2_hi); in s390_insn_as_string()
4787 s390_sprintf(buf, "%M %R,%R,%R", "v-fcmp", insn->variant.bfp128_compare.dst, in s390_insn_as_string()
4788 insn->variant.bfp128_compare.op1_hi, in s390_insn_as_string()
4789 insn->variant.bfp128_compare.op2_hi); in s390_insn_as_string()
4795 switch (insn->variant.bfp128_unop.tag) { in s390_insn_as_string()
4811 s390_sprintf(buf, "%M %R,%R", op, insn->variant.bfp128_unop.dst_hi, in s390_insn_as_string()
4812 insn->variant.bfp128_unop.op_hi); in s390_insn_as_string()
4843 switch (insn->variant.unop.tag) { in s390_insn_as_string()
4855 switch (insn->variant.bfp_unop.tag) { in s390_insn_as_string()
4881 switch (insn->variant.bfp128_unop.tag) { in s390_insn_as_string()
4970 src = insn->variant.load.src; in s390_insn_load_emit()
4972 r = hregNumber(insn->variant.load.dst); in s390_insn_load_emit()
4974 if (hregClass(insn->variant.load.dst) == HRcFlt64) { in s390_insn_load_emit()
5019 dst = insn->variant.store.dst; in s390_insn_store_emit()
5021 r = hregNumber(insn->variant.store.src); in s390_insn_store_emit()
5026 if (hregClass(insn->variant.store.src) == HRcFlt64) { in s390_insn_store_emit()
5111 dst = hregNumber(insn->variant.move.dst); in s390_insn_move_emit()
5112 src = hregNumber(insn->variant.move.src); in s390_insn_move_emit()
5114 dst_class = hregClass(insn->variant.move.dst); in s390_insn_move_emit()
5115 src_class = hregClass(insn->variant.move.src); in s390_insn_move_emit()
5140 ULong value = insn->variant.load_immediate.value; in s390_insn_load_immediate_emit()
5142 r = hregNumber(insn->variant.load_immediate.dst); in s390_insn_load_immediate_emit()
5144 if (hregClass(insn->variant.load_immediate.dst) == HRcFlt64) { in s390_insn_load_immediate_emit()
5179 dst = hregNumber(insn->variant.alu.dst); in s390_insn_alu_emit()
5180 op2 = insn->variant.alu.op2; in s390_insn_alu_emit()
5184 UInt r2 = hregNumber(op2.variant.reg); in s390_insn_alu_emit()
5190 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5204 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5223 const s390_amode *src = op2.variant.am; in s390_insn_alu_emit()
5234 if (insn->variant.alu.tag == S390_ALU_LSH || in s390_insn_alu_emit()
5235 insn->variant.alu.tag == S390_ALU_RSH || in s390_insn_alu_emit()
5236 insn->variant.alu.tag == S390_ALU_RSHA) { in s390_insn_alu_emit()
5251 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5265 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5287 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5304 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5336 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5372 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5387 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5403 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5424 value = op2.variant.imm; in s390_insn_alu_emit()
5431 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5461 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5480 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
5559 s390_opnd_RMI opnd = insn->variant.unop.src; in s390_widen_emit()
5563 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_widen_emit()
5564 UChar r2 = hregNumber(opnd.variant.reg); in s390_widen_emit()
5614 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_widen_emit()
5615 const s390_amode *src = opnd.variant.am; in s390_widen_emit()
5675 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_widen_emit()
5676 ULong value = opnd.variant.imm; in s390_widen_emit()
5735 opnd = insn->variant.unop.src; in s390_negate_emit()
5739 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_negate_emit()
5740 UChar r2 = hregNumber(opnd.variant.reg); in s390_negate_emit()
5757 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_negate_emit()
5760 buf = s390_emit_load_mem(buf, insn->size, R0, opnd.variant.am); in s390_negate_emit()
5777 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_negate_emit()
5778 ULong value = opnd.variant.imm; in s390_negate_emit()
5807 switch (insn->variant.unop.tag) { in s390_insn_unop_emit()
5831 opnd = insn->variant.test.src; in s390_insn_test_emit()
5835 UInt reg = hregNumber(opnd.variant.reg); in s390_insn_test_emit()
5850 const s390_amode *am = opnd.variant.am; in s390_insn_test_emit()
5868 ULong value = opnd.variant.imm; in s390_insn_test_emit()
5896 UChar r1 = hregNumber(insn->variant.cc2bool.dst); in s390_insn_cc2bool_emit()
5897 s390_cc_t cond = insn->variant.cc2bool.cond; in s390_insn_cc2bool_emit()
5922 r1 = hregNumber(insn->variant.cas.op1); /* expected value */ in s390_insn_cas_emit()
5923 r3 = hregNumber(insn->variant.cas.op3); in s390_insn_cas_emit()
5924 old= hregNumber(insn->variant.cas.old_mem); in s390_insn_cas_emit()
5925 am = insn->variant.cas.op2; in s390_insn_cas_emit()
5966 op1 = insn->variant.compare.src1; in s390_insn_compare_emit()
5967 op2 = insn->variant.compare.src2; in s390_insn_compare_emit()
5968 signed_comparison = insn->variant.compare.signed_comparison; in s390_insn_compare_emit()
5973 UInt r2 = hregNumber(op2.variant.reg); in s390_insn_compare_emit()
5995 const s390_amode *am = op2.variant.am; in s390_insn_compare_emit()
6032 ULong value = op2.variant.imm; in s390_insn_compare_emit()
6070 r1 = hregNumber(insn->variant.mul.dst_hi); in s390_insn_mul_emit()
6072 op2 = insn->variant.mul.op2; in s390_insn_mul_emit()
6073 signed_multiply = insn->variant.mul.signed_multiply; in s390_insn_mul_emit()
6077 UInt r2 = hregNumber(op2.variant.reg); in s390_insn_mul_emit()
6100 const s390_amode *am = op2.variant.am; in s390_insn_mul_emit()
6145 ULong value = op2.variant.imm; in s390_insn_mul_emit()
6185 r1 = hregNumber(insn->variant.div.op1_hi); in s390_insn_div_emit()
6186 op2 = insn->variant.div.op2; in s390_insn_div_emit()
6187 signed_divide = insn->variant.div.signed_divide; in s390_insn_div_emit()
6191 UInt r2 = hregNumber(op2.variant.reg); in s390_insn_div_emit()
6212 const s390_amode *am = op2.variant.am; in s390_insn_div_emit()
6249 ULong value = op2.variant.imm; in s390_insn_div_emit()
6286 r1 = hregNumber(insn->variant.divs.rem); in s390_insn_divs_emit()
6287 op2 = insn->variant.divs.op2; in s390_insn_divs_emit()
6291 UInt r2 = hregNumber(op2.variant.reg); in s390_insn_divs_emit()
6297 const s390_amode *am = op2.variant.am; in s390_insn_divs_emit()
6306 ULong value = op2.variant.imm; in s390_insn_divs_emit()
6327 r1 = hregNumber(insn->variant.clz.num_bits); in s390_insn_clz_emit()
6328 r1p1 = hregNumber(insn->variant.clz.clobber); in s390_insn_clz_emit()
6334 src = insn->variant.clz.src; in s390_insn_clz_emit()
6339 r2 = hregNumber(src.variant.reg); in s390_insn_clz_emit()
6343 const s390_amode *am = src.variant.am; in s390_insn_clz_emit()
6354 ULong value = src.variant.imm; in s390_insn_clz_emit()
6402 cond = insn->variant.branch.cond; in s390_insn_branch_emit()
6403 dst = insn->variant.branch.dst; in s390_insn_branch_emit()
6424 switch (insn->variant.branch.kind) { in s390_insn_branch_emit()
6447 p = s390_emit_LGR(p, S390_REGNO_RETURN_VALUE, hregNumber(dst.variant.reg)); in s390_insn_branch_emit()
6451 const s390_amode *am = dst.variant.am; in s390_insn_branch_emit()
6461 p = s390_emit_load_64imm(p, S390_REGNO_RETURN_VALUE, dst.variant.imm); in s390_insn_branch_emit()
6499 cond = insn->variant.helper_call.cond; in s390_insn_helper_call_emit()
6500 target = insn->variant.helper_call.target; in s390_insn_helper_call_emit()
6562 cond = insn->variant.cond_move.cond; in s390_insn_cond_move_emit()
6563 dst = insn->variant.cond_move.dst; in s390_insn_cond_move_emit()
6564 src = insn->variant.cond_move.src; in s390_insn_cond_move_emit()
6580 p = s390_emit_LGR(p, hregNumber(dst), hregNumber(src.variant.reg)); in s390_insn_cond_move_emit()
6584 p = s390_emit_load_mem(p, insn->size, hregNumber(dst), src.variant.am); in s390_insn_cond_move_emit()
6588 ULong value = src.variant.imm; in s390_insn_cond_move_emit()
6657 UInt r1 = hregNumber(insn->variant.bfp_triop.dst); in s390_insn_bfp_triop_emit()
6658 UInt r2 = hregNumber(insn->variant.bfp_triop.op2); in s390_insn_bfp_triop_emit()
6659 UInt r3 = hregNumber(insn->variant.bfp_triop.op3); in s390_insn_bfp_triop_emit()
6660 s390_round_t rounding_mode = insn->variant.bfp_triop.rounding_mode; in s390_insn_bfp_triop_emit()
6668 switch (insn->variant.bfp_triop.tag) { in s390_insn_bfp_triop_emit()
6676 switch (insn->variant.bfp_triop.tag) { in s390_insn_bfp_triop_emit()
6701 UInt r1 = hregNumber(insn->variant.bfp_binop.dst); in s390_insn_bfp_binop_emit()
6702 UInt r2 = hregNumber(insn->variant.bfp_binop.op2); in s390_insn_bfp_binop_emit()
6703 s390_round_t rounding_mode = insn->variant.bfp_binop.rounding_mode; in s390_insn_bfp_binop_emit()
6711 switch (insn->variant.bfp_binop.tag) { in s390_insn_bfp_binop_emit()
6721 switch (insn->variant.bfp_binop.tag) { in s390_insn_bfp_binop_emit()
6748 UInt r1 = hregNumber(insn->variant.bfp_unop.dst); in s390_insn_bfp_unop_emit()
6749 UInt r2 = hregNumber(insn->variant.bfp_unop.op); in s390_insn_bfp_unop_emit()
6750 s390_round_t rounding_mode = insn->variant.bfp_unop.rounding_mode; in s390_insn_bfp_unop_emit()
6756 switch (insn->variant.bfp_unop.tag) { in s390_insn_bfp_unop_emit()
6770 switch (insn->variant.bfp_unop.tag) { in s390_insn_bfp_unop_emit()
6837 UInt dst = hregNumber(insn->variant.bfp_compare.dst); in s390_insn_bfp_compare_emit()
6838 UInt r1 = hregNumber(insn->variant.bfp_compare.op1); in s390_insn_bfp_compare_emit()
6839 UInt r2 = hregNumber(insn->variant.bfp_compare.op2); in s390_insn_bfp_compare_emit()
6863 UInt r1_hi = hregNumber(insn->variant.bfp128_binop.dst_hi); in s390_insn_bfp128_binop_emit()
6864 UInt r1_lo = hregNumber(insn->variant.bfp128_binop.dst_lo); in s390_insn_bfp128_binop_emit()
6865 UInt r2_hi = hregNumber(insn->variant.bfp128_binop.op2_hi); in s390_insn_bfp128_binop_emit()
6866 UInt r2_lo = hregNumber(insn->variant.bfp128_binop.op2_lo); in s390_insn_bfp128_binop_emit()
6867 s390_round_t rounding_mode = insn->variant.bfp_binop.rounding_mode; in s390_insn_bfp128_binop_emit()
6880 switch (insn->variant.bfp128_binop.tag) { in s390_insn_bfp128_binop_emit()
6903 UInt dst = hregNumber(insn->variant.bfp128_compare.dst); in s390_insn_bfp128_compare_emit()
6904 UInt r1_hi = hregNumber(insn->variant.bfp128_compare.op1_hi); in s390_insn_bfp128_compare_emit()
6905 UInt r1_lo = hregNumber(insn->variant.bfp128_compare.op1_lo); in s390_insn_bfp128_compare_emit()
6906 UInt r2_hi = hregNumber(insn->variant.bfp128_compare.op2_hi); in s390_insn_bfp128_compare_emit()
6907 UInt r2_lo = hregNumber(insn->variant.bfp128_compare.op2_lo); in s390_insn_bfp128_compare_emit()
6926 UInt r1_hi = hregNumber(insn->variant.bfp128_unop.dst_hi); in s390_insn_bfp128_unop_emit()
6927 UInt r1_lo = hregNumber(insn->variant.bfp128_unop.dst_lo); in s390_insn_bfp128_unop_emit()
6928 UInt r2_hi = hregNumber(insn->variant.bfp128_unop.op_hi); in s390_insn_bfp128_unop_emit()
6929 UInt r2_lo = hregNumber(insn->variant.bfp128_unop.op_lo); in s390_insn_bfp128_unop_emit()
6930 s390_round_t rounding_mode = insn->variant.bfp_binop.rounding_mode; in s390_insn_bfp128_unop_emit()
6943 switch (insn->variant.bfp128_unop.tag) { in s390_insn_bfp128_unop_emit()
6969 UInt r1_hi = hregNumber(insn->variant.bfp128_unop.dst_hi); in s390_insn_bfp128_convert_to_emit()
6970 UInt r1_lo = hregNumber(insn->variant.bfp128_unop.dst_lo); in s390_insn_bfp128_convert_to_emit()
6971 UInt r2 = hregNumber(insn->variant.bfp128_unop.op_hi); in s390_insn_bfp128_convert_to_emit()
6978 switch (insn->variant.bfp128_unop.tag) { in s390_insn_bfp128_convert_to_emit()
6996 UInt r1 = hregNumber(insn->variant.bfp128_unop.dst_hi); in s390_insn_bfp128_convert_from_emit()
6997 UInt r2_hi = hregNumber(insn->variant.bfp128_unop.op_hi); in s390_insn_bfp128_convert_from_emit()
6998 UInt r2_lo = hregNumber(insn->variant.bfp128_unop.op_lo); in s390_insn_bfp128_convert_from_emit()
6999 s390_round_t rounding_mode = insn->variant.bfp_binop.rounding_mode; in s390_insn_bfp128_convert_from_emit()
7009 switch (insn->variant.bfp_unop.tag) { in s390_insn_bfp128_convert_from_emit()