Lines Matching refs:insn
364 ppS390Instr(const s390_insn *insn, Bool mode64) in ppS390Instr() argument
366 vex_printf("%s", s390_insn_as_string(insn)); in ppS390Instr()
442 getRegUsage_S390Instr(HRegUsage *u, const s390_insn *insn, Bool mode64) in getRegUsage_S390Instr() argument
444 s390_insn_get_reg_usage(u, insn); in getRegUsage_S390Instr()
450 mapRegs_S390Instr(HRegRemap *m, s390_insn *insn, Bool mode64) in mapRegs_S390Instr() argument
452 s390_insn_map_regs(m, insn); in mapRegs_S390Instr()
460 isMove_S390Instr(const s390_insn *insn, HReg *src, HReg *dst) in isMove_S390Instr() argument
462 return s390_insn_is_reg_reg_move(insn, src, dst); in isMove_S390Instr()
543 s390_insn_get_reg_usage(HRegUsage *u, const s390_insn *insn) in s390_insn_get_reg_usage() argument
547 switch (insn->tag) { in s390_insn_get_reg_usage()
549 addHRegUse(u, HRmWrite, insn->variant.load.dst); in s390_insn_get_reg_usage()
550 s390_amode_get_reg_usage(u, insn->variant.load.src); in s390_insn_get_reg_usage()
554 addHRegUse(u, HRmWrite, insn->variant.load_immediate.dst); in s390_insn_get_reg_usage()
558 addHRegUse(u, HRmRead, insn->variant.store.src); in s390_insn_get_reg_usage()
559 s390_amode_get_reg_usage(u, insn->variant.store.dst); in s390_insn_get_reg_usage()
563 addHRegUse(u, HRmRead, insn->variant.move.src); in s390_insn_get_reg_usage()
564 addHRegUse(u, HRmWrite, insn->variant.move.dst); in s390_insn_get_reg_usage()
568 s390_amode_get_reg_usage(u, insn->variant.memcpy.src); in s390_insn_get_reg_usage()
569 s390_amode_get_reg_usage(u, insn->variant.memcpy.dst); in s390_insn_get_reg_usage()
573 s390_opnd_RMI_get_reg_usage(u, insn->variant.cond_move.src); in s390_insn_get_reg_usage()
574 addHRegUse(u, HRmWrite, insn->variant.cond_move.dst); in s390_insn_get_reg_usage()
578 addHRegUse(u, HRmWrite, insn->variant.alu.dst); in s390_insn_get_reg_usage()
579 addHRegUse(u, HRmRead, insn->variant.alu.dst); /* op1 */ in s390_insn_get_reg_usage()
580 s390_opnd_RMI_get_reg_usage(u, insn->variant.alu.op2); in s390_insn_get_reg_usage()
585 addHRegUse(u, HRmRead, insn->variant.mul.dst_lo); /* op1 */ in s390_insn_get_reg_usage()
586 addHRegUse(u, HRmWrite, insn->variant.mul.dst_lo); in s390_insn_get_reg_usage()
587 addHRegUse(u, HRmWrite, insn->variant.mul.dst_hi); in s390_insn_get_reg_usage()
588 s390_opnd_RMI_get_reg_usage(u, insn->variant.mul.op2); in s390_insn_get_reg_usage()
593 addHRegUse(u, HRmRead, insn->variant.div.op1_lo); in s390_insn_get_reg_usage()
594 addHRegUse(u, HRmRead, insn->variant.div.op1_hi); in s390_insn_get_reg_usage()
595 addHRegUse(u, HRmWrite, insn->variant.div.op1_lo); in s390_insn_get_reg_usage()
596 addHRegUse(u, HRmWrite, insn->variant.div.op1_hi); in s390_insn_get_reg_usage()
597 s390_opnd_RMI_get_reg_usage(u, insn->variant.div.op2); in s390_insn_get_reg_usage()
601 addHRegUse(u, HRmRead, insn->variant.divs.op1); in s390_insn_get_reg_usage()
602 addHRegUse(u, HRmWrite, insn->variant.divs.op1); /* quotient */ in s390_insn_get_reg_usage()
603 addHRegUse(u, HRmWrite, insn->variant.divs.rem); /* remainder */ in s390_insn_get_reg_usage()
604 s390_opnd_RMI_get_reg_usage(u, insn->variant.divs.op2); in s390_insn_get_reg_usage()
608 addHRegUse(u, HRmWrite, insn->variant.clz.num_bits); in s390_insn_get_reg_usage()
609 addHRegUse(u, HRmWrite, insn->variant.clz.clobber); in s390_insn_get_reg_usage()
610 s390_opnd_RMI_get_reg_usage(u, insn->variant.clz.src); in s390_insn_get_reg_usage()
614 addHRegUse(u, HRmWrite, insn->variant.unop.dst); in s390_insn_get_reg_usage()
615 s390_opnd_RMI_get_reg_usage(u, insn->variant.unop.src); in s390_insn_get_reg_usage()
619 s390_opnd_RMI_get_reg_usage(u, insn->variant.test.src); in s390_insn_get_reg_usage()
623 addHRegUse(u, HRmWrite, insn->variant.cc2bool.dst); in s390_insn_get_reg_usage()
627 addHRegUse(u, HRmRead, insn->variant.cas.op1); in s390_insn_get_reg_usage()
628 s390_amode_get_reg_usage(u, insn->variant.cas.op2); in s390_insn_get_reg_usage()
629 addHRegUse(u, HRmRead, insn->variant.cas.op3); in s390_insn_get_reg_usage()
630 addHRegUse(u, HRmWrite, insn->variant.cas.old_mem); in s390_insn_get_reg_usage()
634 s390_cdas *cdas = insn->variant.cdas.details; in s390_insn_get_reg_usage()
648 addHRegUse(u, HRmRead, insn->variant.compare.src1); in s390_insn_get_reg_usage()
649 s390_opnd_RMI_get_reg_usage(u, insn->variant.compare.src2); in s390_insn_get_reg_usage()
669 for (i = 0; i < insn->variant.helper_call.details->num_args; ++i) { in s390_insn_get_reg_usage()
680 addHRegUse(u, HRmWrite, insn->variant.bfp_triop.dst); in s390_insn_get_reg_usage()
681 addHRegUse(u, HRmRead, insn->variant.bfp_triop.dst); /* first */ in s390_insn_get_reg_usage()
682 addHRegUse(u, HRmRead, insn->variant.bfp_triop.op2); /* second */ in s390_insn_get_reg_usage()
683 addHRegUse(u, HRmRead, insn->variant.bfp_triop.op3); /* third */ in s390_insn_get_reg_usage()
687 addHRegUse(u, HRmWrite, insn->variant.bfp_binop.dst_hi); in s390_insn_get_reg_usage()
688 addHRegUse(u, HRmRead, insn->variant.bfp_binop.dst_hi); /* left */ in s390_insn_get_reg_usage()
689 addHRegUse(u, HRmRead, insn->variant.bfp_binop.op2_hi); /* right */ in s390_insn_get_reg_usage()
690 if (insn->size == 16) { in s390_insn_get_reg_usage()
691 addHRegUse(u, HRmWrite, insn->variant.bfp_binop.dst_lo); in s390_insn_get_reg_usage()
692 addHRegUse(u, HRmRead, insn->variant.bfp_binop.dst_lo); /* left */ in s390_insn_get_reg_usage()
693 addHRegUse(u, HRmRead, insn->variant.bfp_binop.op2_lo); /* right */ in s390_insn_get_reg_usage()
698 addHRegUse(u, HRmWrite, insn->variant.bfp_unop.dst_hi); in s390_insn_get_reg_usage()
699 addHRegUse(u, HRmRead, insn->variant.bfp_unop.op_hi); /* operand */ in s390_insn_get_reg_usage()
700 if (insn->size == 16) { in s390_insn_get_reg_usage()
701 addHRegUse(u, HRmWrite, insn->variant.bfp_unop.dst_lo); in s390_insn_get_reg_usage()
702 addHRegUse(u, HRmRead, insn->variant.bfp_unop.op_lo); /* operand */ in s390_insn_get_reg_usage()
707 addHRegUse(u, HRmWrite, insn->variant.bfp_compare.dst); in s390_insn_get_reg_usage()
708 addHRegUse(u, HRmRead, insn->variant.bfp_compare.op1_hi); /* left */ in s390_insn_get_reg_usage()
709 addHRegUse(u, HRmRead, insn->variant.bfp_compare.op2_hi); /* right */ in s390_insn_get_reg_usage()
710 if (insn->size == 16) { in s390_insn_get_reg_usage()
711 addHRegUse(u, HRmRead, insn->variant.bfp_compare.op1_lo); /* left */ in s390_insn_get_reg_usage()
712 addHRegUse(u, HRmRead, insn->variant.bfp_compare.op2_lo); /* right */ in s390_insn_get_reg_usage()
717 addHRegUse(u, HRmWrite, insn->variant.bfp_convert.dst_hi); in s390_insn_get_reg_usage()
718 if (! hregIsInvalid(insn->variant.bfp_convert.dst_lo)) in s390_insn_get_reg_usage()
719 addHRegUse(u, HRmWrite, insn->variant.bfp_convert.dst_lo); in s390_insn_get_reg_usage()
720 addHRegUse(u, HRmRead, insn->variant.bfp_convert.op_hi); in s390_insn_get_reg_usage()
721 if (! hregIsInvalid(insn->variant.bfp_convert.op_lo)) in s390_insn_get_reg_usage()
722 addHRegUse(u, HRmRead, insn->variant.bfp_convert.op_lo); in s390_insn_get_reg_usage()
726 s390_dfp_binop *dfp_binop = insn->variant.dfp_binop.details; in s390_insn_get_reg_usage()
731 if (insn->size == 16) { in s390_insn_get_reg_usage()
740 addHRegUse(u, HRmWrite, insn->variant.dfp_unop.dst_hi); in s390_insn_get_reg_usage()
741 addHRegUse(u, HRmRead, insn->variant.dfp_unop.op_hi); /* operand */ in s390_insn_get_reg_usage()
742 if (insn->size == 16) { in s390_insn_get_reg_usage()
743 addHRegUse(u, HRmWrite, insn->variant.dfp_unop.dst_lo); in s390_insn_get_reg_usage()
744 addHRegUse(u, HRmRead, insn->variant.dfp_unop.op_lo); /* operand */ in s390_insn_get_reg_usage()
749 addHRegUse(u, HRmWrite, insn->variant.dfp_intop.dst_hi); in s390_insn_get_reg_usage()
750 addHRegUse(u, HRmRead, insn->variant.dfp_intop.op2); in s390_insn_get_reg_usage()
751 addHRegUse(u, HRmRead, insn->variant.dfp_intop.op3_hi); in s390_insn_get_reg_usage()
752 if (insn->size == 16) { in s390_insn_get_reg_usage()
753 addHRegUse(u, HRmWrite, insn->variant.dfp_intop.dst_lo); in s390_insn_get_reg_usage()
754 addHRegUse(u, HRmRead, insn->variant.dfp_intop.op3_lo); in s390_insn_get_reg_usage()
759 addHRegUse(u, HRmWrite, insn->variant.dfp_compare.dst); in s390_insn_get_reg_usage()
760 addHRegUse(u, HRmRead, insn->variant.dfp_compare.op1_hi); /* left */ in s390_insn_get_reg_usage()
761 addHRegUse(u, HRmRead, insn->variant.dfp_compare.op2_hi); /* right */ in s390_insn_get_reg_usage()
762 if (insn->size == 16) { in s390_insn_get_reg_usage()
763 addHRegUse(u, HRmRead, insn->variant.dfp_compare.op1_lo); /* left */ in s390_insn_get_reg_usage()
764 addHRegUse(u, HRmRead, insn->variant.dfp_compare.op2_lo); /* right */ in s390_insn_get_reg_usage()
769 addHRegUse(u, HRmWrite, insn->variant.dfp_convert.dst_hi); in s390_insn_get_reg_usage()
770 if (! hregIsInvalid(insn->variant.dfp_convert.dst_lo)) in s390_insn_get_reg_usage()
771 addHRegUse(u, HRmWrite, insn->variant.dfp_convert.dst_lo); in s390_insn_get_reg_usage()
772 addHRegUse(u, HRmRead, insn->variant.dfp_convert.op_hi); /* operand */ in s390_insn_get_reg_usage()
773 if (! hregIsInvalid(insn->variant.dfp_convert.op_lo)) in s390_insn_get_reg_usage()
774 addHRegUse(u, HRmRead, insn->variant.dfp_convert.op_lo); /* operand */ in s390_insn_get_reg_usage()
778 addHRegUse(u, HRmWrite, insn->variant.dfp_reround.dst_hi); in s390_insn_get_reg_usage()
779 addHRegUse(u, HRmRead, insn->variant.dfp_reround.op2); /* left */ in s390_insn_get_reg_usage()
780 addHRegUse(u, HRmRead, insn->variant.dfp_reround.op3_hi); /* right */ in s390_insn_get_reg_usage()
781 if (insn->size == 16) { in s390_insn_get_reg_usage()
782 addHRegUse(u, HRmWrite, insn->variant.dfp_reround.dst_lo); in s390_insn_get_reg_usage()
783 addHRegUse(u, HRmRead, insn->variant.dfp_reround.op3_lo); /* right */ in s390_insn_get_reg_usage()
788 s390_fp_convert *fp_convert = insn->variant.fp_convert.details; in s390_insn_get_reg_usage()
801 s390_amode_get_reg_usage(u, insn->variant.mimm.dst); in s390_insn_get_reg_usage()
805 s390_amode_get_reg_usage(u, insn->variant.madd.dst); in s390_insn_get_reg_usage()
812 addHRegUse(u, HRmRead, insn->variant.set_fpc_bfprm.mode); in s390_insn_get_reg_usage()
816 addHRegUse(u, HRmRead, insn->variant.set_fpc_dfprm.mode); in s390_insn_get_reg_usage()
820 s390_amode_get_reg_usage(u, insn->variant.evcheck.counter); in s390_insn_get_reg_usage()
821 s390_amode_get_reg_usage(u, insn->variant.evcheck.fail_addr); in s390_insn_get_reg_usage()
829 s390_amode_get_reg_usage(u, insn->variant.xdirect.guest_IA); in s390_insn_get_reg_usage()
833 addHRegUse(u, HRmRead, insn->variant.xindir.dst); in s390_insn_get_reg_usage()
834 s390_amode_get_reg_usage(u, insn->variant.xindir.guest_IA); in s390_insn_get_reg_usage()
838 addHRegUse(u, HRmRead, insn->variant.xassisted.dst); in s390_insn_get_reg_usage()
839 s390_amode_get_reg_usage(u, insn->variant.xassisted.guest_IA); in s390_insn_get_reg_usage()
871 s390_insn_map_regs(HRegRemap *m, s390_insn *insn) in s390_insn_map_regs() argument
873 switch (insn->tag) { in s390_insn_map_regs()
875 insn->variant.load.dst = lookupHRegRemap(m, insn->variant.load.dst); in s390_insn_map_regs()
876 s390_amode_map_regs(m, insn->variant.load.src); in s390_insn_map_regs()
880 s390_amode_map_regs(m, insn->variant.store.dst); in s390_insn_map_regs()
881 insn->variant.store.src = lookupHRegRemap(m, insn->variant.store.src); in s390_insn_map_regs()
885 insn->variant.move.dst = lookupHRegRemap(m, insn->variant.move.dst); in s390_insn_map_regs()
886 insn->variant.move.src = lookupHRegRemap(m, insn->variant.move.src); in s390_insn_map_regs()
890 s390_amode_map_regs(m, insn->variant.memcpy.dst); in s390_insn_map_regs()
891 s390_amode_map_regs(m, insn->variant.memcpy.src); in s390_insn_map_regs()
895 insn->variant.cond_move.dst = lookupHRegRemap(m, insn->variant.cond_move.dst); in s390_insn_map_regs()
896 s390_opnd_RMI_map_regs(m, &insn->variant.cond_move.src); in s390_insn_map_regs()
900 insn->variant.load_immediate.dst = in s390_insn_map_regs()
901 lookupHRegRemap(m, insn->variant.load_immediate.dst); in s390_insn_map_regs()
905 insn->variant.alu.dst = lookupHRegRemap(m, insn->variant.alu.dst); in s390_insn_map_regs()
906 s390_opnd_RMI_map_regs(m, &insn->variant.alu.op2); in s390_insn_map_regs()
911 insn->variant.mul.dst_hi = lookupHRegRemap(m, insn->variant.mul.dst_hi); in s390_insn_map_regs()
912 insn->variant.mul.dst_lo = lookupHRegRemap(m, insn->variant.mul.dst_lo); in s390_insn_map_regs()
913 s390_opnd_RMI_map_regs(m, &insn->variant.mul.op2); in s390_insn_map_regs()
918 insn->variant.div.op1_hi = lookupHRegRemap(m, insn->variant.div.op1_hi); in s390_insn_map_regs()
919 insn->variant.div.op1_lo = lookupHRegRemap(m, insn->variant.div.op1_lo); in s390_insn_map_regs()
920 s390_opnd_RMI_map_regs(m, &insn->variant.div.op2); in s390_insn_map_regs()
924 insn->variant.divs.op1 = lookupHRegRemap(m, insn->variant.divs.op1); in s390_insn_map_regs()
925 insn->variant.divs.rem = lookupHRegRemap(m, insn->variant.divs.rem); in s390_insn_map_regs()
926 s390_opnd_RMI_map_regs(m, &insn->variant.divs.op2); in s390_insn_map_regs()
930 insn->variant.clz.num_bits = lookupHRegRemap(m, insn->variant.clz.num_bits); in s390_insn_map_regs()
931 insn->variant.clz.clobber = lookupHRegRemap(m, insn->variant.clz.clobber); in s390_insn_map_regs()
932 s390_opnd_RMI_map_regs(m, &insn->variant.clz.src); in s390_insn_map_regs()
936 insn->variant.unop.dst = lookupHRegRemap(m, insn->variant.unop.dst); in s390_insn_map_regs()
937 s390_opnd_RMI_map_regs(m, &insn->variant.unop.src); in s390_insn_map_regs()
941 s390_opnd_RMI_map_regs(m, &insn->variant.test.src); in s390_insn_map_regs()
945 insn->variant.cc2bool.dst = lookupHRegRemap(m, insn->variant.cc2bool.dst); in s390_insn_map_regs()
949 insn->variant.cas.op1 = lookupHRegRemap(m, insn->variant.cas.op1); in s390_insn_map_regs()
950 s390_amode_map_regs(m, insn->variant.cas.op2); in s390_insn_map_regs()
951 insn->variant.cas.op3 = lookupHRegRemap(m, insn->variant.cas.op3); in s390_insn_map_regs()
952 insn->variant.cas.old_mem = lookupHRegRemap(m, insn->variant.cas.old_mem); in s390_insn_map_regs()
956 s390_cdas *cdas = insn->variant.cdas.details; in s390_insn_map_regs()
970 insn->variant.compare.src1 = lookupHRegRemap(m, insn->variant.compare.src1); in s390_insn_map_regs()
971 s390_opnd_RMI_map_regs(m, &insn->variant.compare.src2); in s390_insn_map_regs()
984 insn->variant.bfp_triop.dst = in s390_insn_map_regs()
985 lookupHRegRemap(m, insn->variant.bfp_triop.dst); in s390_insn_map_regs()
986 insn->variant.bfp_triop.op2 = in s390_insn_map_regs()
987 lookupHRegRemap(m, insn->variant.bfp_triop.op2); in s390_insn_map_regs()
988 insn->variant.bfp_triop.op3 = in s390_insn_map_regs()
989 lookupHRegRemap(m, insn->variant.bfp_triop.op3); in s390_insn_map_regs()
993 insn->variant.bfp_binop.dst_hi = in s390_insn_map_regs()
994 lookupHRegRemap(m, insn->variant.bfp_binop.dst_hi); in s390_insn_map_regs()
995 insn->variant.bfp_binop.op2_hi = in s390_insn_map_regs()
996 lookupHRegRemap(m, insn->variant.bfp_binop.op2_hi); in s390_insn_map_regs()
997 if (insn->size == 16) { in s390_insn_map_regs()
998 insn->variant.bfp_binop.dst_lo = in s390_insn_map_regs()
999 lookupHRegRemap(m, insn->variant.bfp_binop.dst_lo); in s390_insn_map_regs()
1000 insn->variant.bfp_binop.op2_lo = in s390_insn_map_regs()
1001 lookupHRegRemap(m, insn->variant.bfp_binop.op2_lo); in s390_insn_map_regs()
1006 insn->variant.bfp_unop.dst_hi = in s390_insn_map_regs()
1007 lookupHRegRemap(m, insn->variant.bfp_unop.dst_hi); in s390_insn_map_regs()
1008 insn->variant.bfp_unop.op_hi = in s390_insn_map_regs()
1009 lookupHRegRemap(m, insn->variant.bfp_unop.op_hi); in s390_insn_map_regs()
1010 if (insn->size == 16) { in s390_insn_map_regs()
1011 insn->variant.bfp_unop.dst_lo = in s390_insn_map_regs()
1012 lookupHRegRemap(m, insn->variant.bfp_unop.dst_lo); in s390_insn_map_regs()
1013 insn->variant.bfp_unop.op_lo = in s390_insn_map_regs()
1014 lookupHRegRemap(m, insn->variant.bfp_unop.op_lo); in s390_insn_map_regs()
1019 insn->variant.bfp_compare.dst = in s390_insn_map_regs()
1020 lookupHRegRemap(m, insn->variant.bfp_compare.dst); in s390_insn_map_regs()
1021 insn->variant.bfp_compare.op1_hi = in s390_insn_map_regs()
1022 lookupHRegRemap(m, insn->variant.bfp_compare.op1_hi); in s390_insn_map_regs()
1023 insn->variant.bfp_compare.op2_hi = in s390_insn_map_regs()
1024 lookupHRegRemap(m, insn->variant.bfp_compare.op2_hi); in s390_insn_map_regs()
1025 if (insn->size == 16) { in s390_insn_map_regs()
1026 insn->variant.bfp_compare.op1_lo = in s390_insn_map_regs()
1027 lookupHRegRemap(m, insn->variant.bfp_compare.op1_lo); in s390_insn_map_regs()
1028 insn->variant.bfp_compare.op2_lo = in s390_insn_map_regs()
1029 lookupHRegRemap(m, insn->variant.bfp_compare.op2_lo); in s390_insn_map_regs()
1034 insn->variant.bfp_convert.dst_hi = in s390_insn_map_regs()
1035 lookupHRegRemap(m, insn->variant.bfp_convert.dst_hi); in s390_insn_map_regs()
1036 if (! hregIsInvalid(insn->variant.bfp_convert.dst_lo)) in s390_insn_map_regs()
1037 insn->variant.bfp_convert.dst_lo = in s390_insn_map_regs()
1038 lookupHRegRemap(m, insn->variant.bfp_convert.dst_lo); in s390_insn_map_regs()
1039 insn->variant.bfp_convert.op_hi = in s390_insn_map_regs()
1040 lookupHRegRemap(m, insn->variant.bfp_convert.op_hi); in s390_insn_map_regs()
1041 if (! hregIsInvalid(insn->variant.bfp_convert.op_lo)) in s390_insn_map_regs()
1042 insn->variant.bfp_convert.op_lo = in s390_insn_map_regs()
1043 lookupHRegRemap(m, insn->variant.bfp_convert.op_lo); in s390_insn_map_regs()
1047 s390_dfp_binop *dfp_binop = insn->variant.dfp_binop.details; in s390_insn_map_regs()
1052 if (insn->size == 16) { in s390_insn_map_regs()
1061 insn->variant.dfp_unop.dst_hi = in s390_insn_map_regs()
1062 lookupHRegRemap(m, insn->variant.dfp_unop.dst_hi); in s390_insn_map_regs()
1063 insn->variant.dfp_unop.op_hi = in s390_insn_map_regs()
1064 lookupHRegRemap(m, insn->variant.dfp_unop.op_hi); in s390_insn_map_regs()
1065 if (insn->size == 16) { in s390_insn_map_regs()
1066 insn->variant.dfp_unop.dst_lo = in s390_insn_map_regs()
1067 lookupHRegRemap(m, insn->variant.dfp_unop.dst_lo); in s390_insn_map_regs()
1068 insn->variant.dfp_unop.op_lo = in s390_insn_map_regs()
1069 lookupHRegRemap(m, insn->variant.dfp_unop.op_lo); in s390_insn_map_regs()
1074 insn->variant.dfp_intop.dst_hi = in s390_insn_map_regs()
1075 lookupHRegRemap(m, insn->variant.dfp_intop.dst_hi); in s390_insn_map_regs()
1076 insn->variant.dfp_intop.op2 = in s390_insn_map_regs()
1077 lookupHRegRemap(m, insn->variant.dfp_intop.op2); in s390_insn_map_regs()
1078 insn->variant.dfp_intop.op3_hi = in s390_insn_map_regs()
1079 lookupHRegRemap(m, insn->variant.dfp_intop.op3_hi); in s390_insn_map_regs()
1080 if (insn->size == 16) { in s390_insn_map_regs()
1081 insn->variant.dfp_intop.dst_lo = in s390_insn_map_regs()
1082 lookupHRegRemap(m, insn->variant.dfp_intop.dst_lo); in s390_insn_map_regs()
1083 insn->variant.dfp_intop.op3_lo = in s390_insn_map_regs()
1084 lookupHRegRemap(m, insn->variant.dfp_intop.op3_lo); in s390_insn_map_regs()
1089 insn->variant.dfp_compare.dst = in s390_insn_map_regs()
1090 lookupHRegRemap(m, insn->variant.dfp_compare.dst); in s390_insn_map_regs()
1091 insn->variant.dfp_compare.op1_hi = in s390_insn_map_regs()
1092 lookupHRegRemap(m, insn->variant.dfp_compare.op1_hi); in s390_insn_map_regs()
1093 insn->variant.dfp_compare.op2_hi = in s390_insn_map_regs()
1094 lookupHRegRemap(m, insn->variant.dfp_compare.op2_hi); in s390_insn_map_regs()
1095 if (insn->size == 16) { in s390_insn_map_regs()
1096 insn->variant.dfp_compare.op1_lo = in s390_insn_map_regs()
1097 lookupHRegRemap(m, insn->variant.dfp_compare.op1_lo); in s390_insn_map_regs()
1098 insn->variant.dfp_compare.op2_lo = in s390_insn_map_regs()
1099 lookupHRegRemap(m, insn->variant.dfp_compare.op2_lo); in s390_insn_map_regs()
1104 insn->variant.dfp_convert.dst_hi = in s390_insn_map_regs()
1105 lookupHRegRemap(m, insn->variant.dfp_convert.dst_hi); in s390_insn_map_regs()
1106 if (! hregIsInvalid(insn->variant.dfp_convert.dst_lo)) in s390_insn_map_regs()
1107 insn->variant.dfp_convert.dst_lo = in s390_insn_map_regs()
1108 lookupHRegRemap(m, insn->variant.dfp_convert.dst_lo); in s390_insn_map_regs()
1109 insn->variant.dfp_convert.op_hi = in s390_insn_map_regs()
1110 lookupHRegRemap(m, insn->variant.dfp_convert.op_hi); in s390_insn_map_regs()
1111 if (! hregIsInvalid(insn->variant.dfp_convert.op_lo)) in s390_insn_map_regs()
1112 insn->variant.dfp_convert.op_lo = in s390_insn_map_regs()
1113 lookupHRegRemap(m, insn->variant.dfp_convert.op_lo); in s390_insn_map_regs()
1117 insn->variant.dfp_reround.dst_hi = in s390_insn_map_regs()
1118 lookupHRegRemap(m, insn->variant.dfp_reround.dst_hi); in s390_insn_map_regs()
1119 insn->variant.dfp_reround.op2 = in s390_insn_map_regs()
1120 lookupHRegRemap(m, insn->variant.dfp_reround.op2); in s390_insn_map_regs()
1121 insn->variant.dfp_reround.op3_hi = in s390_insn_map_regs()
1122 lookupHRegRemap(m, insn->variant.dfp_reround.op3_hi); in s390_insn_map_regs()
1123 if (insn->size == 16) { in s390_insn_map_regs()
1124 insn->variant.dfp_reround.dst_lo = in s390_insn_map_regs()
1125 lookupHRegRemap(m, insn->variant.dfp_reround.dst_lo); in s390_insn_map_regs()
1126 insn->variant.dfp_reround.op3_lo = in s390_insn_map_regs()
1127 lookupHRegRemap(m, insn->variant.dfp_reround.op3_lo); in s390_insn_map_regs()
1132 s390_fp_convert *fp_convert = insn->variant.fp_convert.details; in s390_insn_map_regs()
1145 s390_amode_map_regs(m, insn->variant.mimm.dst); in s390_insn_map_regs()
1149 s390_amode_map_regs(m, insn->variant.madd.dst); in s390_insn_map_regs()
1156 insn->variant.set_fpc_bfprm.mode = in s390_insn_map_regs()
1157 lookupHRegRemap(m, insn->variant.set_fpc_bfprm.mode); in s390_insn_map_regs()
1161 insn->variant.set_fpc_dfprm.mode = in s390_insn_map_regs()
1162 lookupHRegRemap(m, insn->variant.set_fpc_dfprm.mode); in s390_insn_map_regs()
1166 s390_amode_map_regs(m, insn->variant.evcheck.counter); in s390_insn_map_regs()
1167 s390_amode_map_regs(m, insn->variant.evcheck.fail_addr); in s390_insn_map_regs()
1175 s390_amode_map_regs(m, insn->variant.xdirect.guest_IA); in s390_insn_map_regs()
1179 s390_amode_map_regs(m, insn->variant.xindir.guest_IA); in s390_insn_map_regs()
1180 insn->variant.xindir.dst = in s390_insn_map_regs()
1181 lookupHRegRemap(m, insn->variant.xindir.dst); in s390_insn_map_regs()
1185 s390_amode_map_regs(m, insn->variant.xassisted.guest_IA); in s390_insn_map_regs()
1186 insn->variant.xassisted.dst = in s390_insn_map_regs()
1187 lookupHRegRemap(m, insn->variant.xassisted.dst); in s390_insn_map_regs()
1200 s390_insn_is_reg_reg_move(const s390_insn *insn, HReg *src, HReg *dst) in s390_insn_is_reg_reg_move() argument
1202 if (insn->tag == S390_INSN_MOVE && in s390_insn_is_reg_reg_move()
1203 hregClass(insn->variant.move.src) == hregClass(insn->variant.move.dst)) { in s390_insn_is_reg_reg_move()
1204 *src = insn->variant.move.src; in s390_insn_is_reg_reg_move()
1205 *dst = insn->variant.move.dst; in s390_insn_is_reg_reg_move()
5266 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_load() local
5268 insn->tag = S390_INSN_LOAD; in s390_insn_load()
5269 insn->size = size; in s390_insn_load()
5270 insn->variant.load.src = src; in s390_insn_load()
5271 insn->variant.load.dst = dst; in s390_insn_load()
5275 return insn; in s390_insn_load()
5282 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_store() local
5284 insn->tag = S390_INSN_STORE; in s390_insn_store()
5285 insn->size = size; in s390_insn_store()
5286 insn->variant.store.src = src; in s390_insn_store()
5287 insn->variant.store.dst = dst; in s390_insn_store()
5291 return insn; in s390_insn_store()
5298 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_move() local
5300 insn->tag = S390_INSN_MOVE; in s390_insn_move()
5301 insn->size = size; in s390_insn_move()
5302 insn->variant.move.src = src; in s390_insn_move()
5303 insn->variant.move.dst = dst; in s390_insn_move()
5307 return insn; in s390_insn_move()
5314 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_memcpy() local
5321 insn->tag = S390_INSN_MEMCPY; in s390_insn_memcpy()
5322 insn->size = size; in s390_insn_memcpy()
5323 insn->variant.memcpy.src = src; in s390_insn_memcpy()
5324 insn->variant.memcpy.dst = dst; in s390_insn_memcpy()
5328 return insn; in s390_insn_memcpy()
5335 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_cond_move() local
5337 insn->tag = S390_INSN_COND_MOVE; in s390_insn_cond_move()
5338 insn->size = size; in s390_insn_cond_move()
5339 insn->variant.cond_move.cond = cond; in s390_insn_cond_move()
5340 insn->variant.cond_move.src = src; in s390_insn_cond_move()
5341 insn->variant.cond_move.dst = dst; in s390_insn_cond_move()
5345 return insn; in s390_insn_cond_move()
5352 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_load_immediate() local
5354 insn->tag = S390_INSN_LOAD_IMMEDIATE; in s390_insn_load_immediate()
5355 insn->size = size; in s390_insn_load_immediate()
5356 insn->variant.load_immediate.dst = dst; in s390_insn_load_immediate()
5357 insn->variant.load_immediate.value = value; in s390_insn_load_immediate()
5359 return insn; in s390_insn_load_immediate()
5366 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_alu() local
5368 insn->tag = S390_INSN_ALU; in s390_insn_alu()
5369 insn->size = size; in s390_insn_alu()
5370 insn->variant.alu.tag = tag; in s390_insn_alu()
5371 insn->variant.alu.dst = dst; in s390_insn_alu()
5372 insn->variant.alu.op2 = op2; in s390_insn_alu()
5374 return insn; in s390_insn_alu()
5382 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_mul() local
5387 insn->tag = signed_multiply ? S390_INSN_SMUL : S390_INSN_UMUL; in s390_insn_mul()
5388 insn->size = size; in s390_insn_mul()
5389 insn->variant.mul.dst_hi = dst_hi; in s390_insn_mul()
5390 insn->variant.mul.dst_lo = dst_lo; in s390_insn_mul()
5391 insn->variant.mul.op2 = op2; in s390_insn_mul()
5393 return insn; in s390_insn_mul()
5401 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_div() local
5407 insn->tag = signed_divide ? S390_INSN_SDIV : S390_INSN_UDIV; in s390_insn_div()
5408 insn->size = size; in s390_insn_div()
5409 insn->variant.div.op1_hi = op1_hi; in s390_insn_div()
5410 insn->variant.div.op1_lo = op1_lo; in s390_insn_div()
5411 insn->variant.div.op2 = op2; in s390_insn_div()
5413 return insn; in s390_insn_div()
5420 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_divs() local
5426 insn->tag = S390_INSN_DIVS; in s390_insn_divs()
5427 insn->size = size; in s390_insn_divs()
5428 insn->variant.divs.rem = rem; /* remainder */ in s390_insn_divs()
5429 insn->variant.divs.op1 = op1; /* also quotient */ in s390_insn_divs()
5430 insn->variant.divs.op2 = op2; in s390_insn_divs()
5432 return insn; in s390_insn_divs()
5439 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_clz() local
5445 insn->tag = S390_INSN_CLZ; in s390_insn_clz()
5446 insn->size = size; in s390_insn_clz()
5447 insn->variant.clz.num_bits = num_bits; in s390_insn_clz()
5448 insn->variant.clz.clobber = clobber; in s390_insn_clz()
5449 insn->variant.clz.src = src; in s390_insn_clz()
5451 return insn; in s390_insn_clz()
5458 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_unop() local
5460 insn->tag = S390_INSN_UNOP; in s390_insn_unop()
5461 insn->size = size; in s390_insn_unop()
5462 insn->variant.unop.tag = tag; in s390_insn_unop()
5463 insn->variant.unop.dst = dst; in s390_insn_unop()
5464 insn->variant.unop.src = opnd; in s390_insn_unop()
5466 return insn; in s390_insn_unop()
5473 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_test() local
5477 insn->tag = S390_INSN_TEST; in s390_insn_test()
5478 insn->size = size; in s390_insn_test()
5479 insn->variant.test.src = src; in s390_insn_test()
5481 return insn; in s390_insn_test()
5488 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_cc2bool() local
5490 insn->tag = S390_INSN_CC2BOOL; in s390_insn_cc2bool()
5491 insn->size = 0; /* does not matter */ in s390_insn_cc2bool()
5492 insn->variant.cc2bool.cond = cond; in s390_insn_cc2bool()
5493 insn->variant.cc2bool.dst = dst; in s390_insn_cc2bool()
5495 return insn; in s390_insn_cc2bool()
5502 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_cas() local
5508 insn->tag = S390_INSN_CAS; in s390_insn_cas()
5509 insn->size = size; in s390_insn_cas()
5510 insn->variant.cas.op1 = op1; in s390_insn_cas()
5511 insn->variant.cas.op2 = op2; in s390_insn_cas()
5512 insn->variant.cas.op3 = op3; in s390_insn_cas()
5513 insn->variant.cas.old_mem = old_mem; in s390_insn_cas()
5515 return insn; in s390_insn_cas()
5524 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_cdas() local
5532 insn->tag = S390_INSN_CDAS; in s390_insn_cdas()
5533 insn->size = size; in s390_insn_cdas()
5534 insn->variant.cdas.details = cdas; in s390_insn_cdas()
5545 return insn; in s390_insn_cdas()
5553 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_compare() local
5557 insn->tag = S390_INSN_COMPARE; in s390_insn_compare()
5558 insn->size = size; in s390_insn_compare()
5559 insn->variant.compare.src1 = src1; in s390_insn_compare()
5560 insn->variant.compare.src2 = src2; in s390_insn_compare()
5561 insn->variant.compare.signed_comparison = signed_comparison; in s390_insn_compare()
5563 return insn; in s390_insn_compare()
5571 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_helper_call() local
5574 insn->tag = S390_INSN_HELPER_CALL; in s390_insn_helper_call()
5575 insn->size = 0; /* does not matter */ in s390_insn_helper_call()
5576 insn->variant.helper_call.details = helper_call; in s390_insn_helper_call()
5586 return insn; in s390_insn_helper_call()
5594 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp_triop() local
5598 insn->tag = S390_INSN_BFP_TRIOP; in s390_insn_bfp_triop()
5599 insn->size = size; in s390_insn_bfp_triop()
5600 insn->variant.bfp_triop.tag = tag; in s390_insn_bfp_triop()
5601 insn->variant.bfp_triop.dst = dst; in s390_insn_bfp_triop()
5602 insn->variant.bfp_triop.op2 = op2; in s390_insn_bfp_triop()
5603 insn->variant.bfp_triop.op3 = op3; in s390_insn_bfp_triop()
5605 return insn; in s390_insn_bfp_triop()
5612 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp_binop() local
5616 insn->tag = S390_INSN_BFP_BINOP; in s390_insn_bfp_binop()
5617 insn->size = size; in s390_insn_bfp_binop()
5618 insn->variant.bfp_binop.tag = tag; in s390_insn_bfp_binop()
5619 insn->variant.bfp_binop.dst_hi = dst; in s390_insn_bfp_binop()
5620 insn->variant.bfp_binop.op2_hi = op2; in s390_insn_bfp_binop()
5621 insn->variant.bfp_binop.dst_lo = INVALID_HREG; in s390_insn_bfp_binop()
5622 insn->variant.bfp_binop.op2_lo = INVALID_HREG; in s390_insn_bfp_binop()
5624 return insn; in s390_insn_bfp_binop()
5631 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp_unop() local
5635 insn->tag = S390_INSN_BFP_UNOP; in s390_insn_bfp_unop()
5636 insn->size = size; in s390_insn_bfp_unop()
5637 insn->variant.bfp_unop.tag = tag; in s390_insn_bfp_unop()
5638 insn->variant.bfp_unop.dst_hi = dst; in s390_insn_bfp_unop()
5639 insn->variant.bfp_unop.op_hi = op; in s390_insn_bfp_unop()
5640 insn->variant.bfp_unop.dst_lo = INVALID_HREG; in s390_insn_bfp_unop()
5641 insn->variant.bfp_unop.op_lo = INVALID_HREG; in s390_insn_bfp_unop()
5643 return insn; in s390_insn_bfp_unop()
5650 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp_compare() local
5654 insn->tag = S390_INSN_BFP_COMPARE; in s390_insn_bfp_compare()
5655 insn->size = size; in s390_insn_bfp_compare()
5656 insn->variant.bfp_compare.dst = dst; in s390_insn_bfp_compare()
5657 insn->variant.bfp_compare.op1_hi = op1; in s390_insn_bfp_compare()
5658 insn->variant.bfp_compare.op2_hi = op2; in s390_insn_bfp_compare()
5659 insn->variant.bfp_compare.op1_lo = INVALID_HREG; in s390_insn_bfp_compare()
5660 insn->variant.bfp_compare.op2_lo = INVALID_HREG; in s390_insn_bfp_compare()
5662 return insn; in s390_insn_bfp_compare()
5670 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp_convert() local
5674 insn->tag = S390_INSN_BFP_CONVERT; in s390_insn_bfp_convert()
5675 insn->size = size; in s390_insn_bfp_convert()
5676 insn->variant.bfp_convert.tag = tag; in s390_insn_bfp_convert()
5677 insn->variant.bfp_convert.dst_hi = dst; in s390_insn_bfp_convert()
5678 insn->variant.bfp_convert.op_hi = op; in s390_insn_bfp_convert()
5679 insn->variant.bfp_convert.dst_lo = INVALID_HREG; in s390_insn_bfp_convert()
5680 insn->variant.bfp_convert.op_lo = INVALID_HREG; in s390_insn_bfp_convert()
5681 insn->variant.bfp_convert.rounding_mode = rounding_mode; in s390_insn_bfp_convert()
5683 return insn; in s390_insn_bfp_convert()
5706 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp128_binop() local
5712 insn->tag = S390_INSN_BFP_BINOP; in s390_insn_bfp128_binop()
5713 insn->size = size; in s390_insn_bfp128_binop()
5714 insn->variant.bfp_binop.tag = tag; in s390_insn_bfp128_binop()
5715 insn->variant.bfp_binop.dst_hi = dst_hi; in s390_insn_bfp128_binop()
5716 insn->variant.bfp_binop.dst_lo = dst_lo; in s390_insn_bfp128_binop()
5717 insn->variant.bfp_binop.op2_hi = op2_hi; in s390_insn_bfp128_binop()
5718 insn->variant.bfp_binop.op2_lo = op2_lo; in s390_insn_bfp128_binop()
5720 return insn; in s390_insn_bfp128_binop()
5728 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp128_unop() local
5734 insn->tag = S390_INSN_BFP_UNOP; in s390_insn_bfp128_unop()
5735 insn->size = size; in s390_insn_bfp128_unop()
5736 insn->variant.bfp_unop.tag = tag; in s390_insn_bfp128_unop()
5737 insn->variant.bfp_unop.dst_hi = dst_hi; in s390_insn_bfp128_unop()
5738 insn->variant.bfp_unop.dst_lo = dst_lo; in s390_insn_bfp128_unop()
5739 insn->variant.bfp_unop.op_hi = op_hi; in s390_insn_bfp128_unop()
5740 insn->variant.bfp_unop.op_lo = op_lo; in s390_insn_bfp128_unop()
5742 return insn; in s390_insn_bfp128_unop()
5750 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp128_compare() local
5756 insn->tag = S390_INSN_BFP_COMPARE; in s390_insn_bfp128_compare()
5757 insn->size = size; in s390_insn_bfp128_compare()
5758 insn->variant.bfp_compare.dst = dst; in s390_insn_bfp128_compare()
5759 insn->variant.bfp_compare.op1_hi = op1_hi; in s390_insn_bfp128_compare()
5760 insn->variant.bfp_compare.op1_lo = op1_lo; in s390_insn_bfp128_compare()
5761 insn->variant.bfp_compare.op2_hi = op2_hi; in s390_insn_bfp128_compare()
5762 insn->variant.bfp_compare.op2_lo = op2_lo; in s390_insn_bfp128_compare()
5764 return insn; in s390_insn_bfp128_compare()
5773 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_bfp128_convert() local
5785 insn->tag = S390_INSN_BFP_CONVERT; in s390_insn_bfp128_convert()
5786 insn->size = size; in s390_insn_bfp128_convert()
5787 insn->variant.bfp_convert.tag = tag; in s390_insn_bfp128_convert()
5788 insn->variant.bfp_convert.dst_hi = dst_hi; in s390_insn_bfp128_convert()
5789 insn->variant.bfp_convert.dst_lo = dst_lo; in s390_insn_bfp128_convert()
5790 insn->variant.bfp_convert.op_hi = op_hi; in s390_insn_bfp128_convert()
5791 insn->variant.bfp_convert.op_lo = op_lo; in s390_insn_bfp128_convert()
5792 insn->variant.bfp_convert.rounding_mode = rounding_mode; in s390_insn_bfp128_convert()
5794 return insn; in s390_insn_bfp128_convert()
5825 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp_binop() local
5830 insn->tag = S390_INSN_DFP_BINOP; in s390_insn_dfp_binop()
5831 insn->size = size; in s390_insn_dfp_binop()
5832 insn->variant.dfp_binop.details = dfp_binop; in s390_insn_dfp_binop()
5843 return insn; in s390_insn_dfp_binop()
5850 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp_unop() local
5854 insn->tag = S390_INSN_DFP_UNOP; in s390_insn_dfp_unop()
5855 insn->size = size; in s390_insn_dfp_unop()
5856 insn->variant.dfp_unop.tag = tag; in s390_insn_dfp_unop()
5857 insn->variant.dfp_unop.dst_hi = dst; in s390_insn_dfp_unop()
5858 insn->variant.dfp_unop.op_hi = op; in s390_insn_dfp_unop()
5859 insn->variant.dfp_unop.dst_lo = INVALID_HREG; in s390_insn_dfp_unop()
5860 insn->variant.dfp_unop.op_lo = INVALID_HREG; in s390_insn_dfp_unop()
5862 return insn; in s390_insn_dfp_unop()
5870 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp_intop() local
5874 insn->tag = S390_INSN_DFP_INTOP; in s390_insn_dfp_intop()
5875 insn->size = size; in s390_insn_dfp_intop()
5876 insn->variant.dfp_intop.tag = tag; in s390_insn_dfp_intop()
5877 insn->variant.dfp_intop.dst_hi = dst; in s390_insn_dfp_intop()
5878 insn->variant.dfp_intop.op2 = op2; in s390_insn_dfp_intop()
5879 insn->variant.dfp_intop.op3_hi = op3; in s390_insn_dfp_intop()
5880 insn->variant.dfp_intop.dst_lo = INVALID_HREG; in s390_insn_dfp_intop()
5881 insn->variant.dfp_intop.op3_lo = INVALID_HREG; in s390_insn_dfp_intop()
5883 return insn; in s390_insn_dfp_intop()
5891 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp_compare() local
5895 insn->tag = S390_INSN_DFP_COMPARE; in s390_insn_dfp_compare()
5896 insn->size = size; in s390_insn_dfp_compare()
5897 insn->variant.dfp_compare.tag = tag; in s390_insn_dfp_compare()
5898 insn->variant.dfp_compare.dst = dst; in s390_insn_dfp_compare()
5899 insn->variant.dfp_compare.op1_hi = op1; in s390_insn_dfp_compare()
5900 insn->variant.dfp_compare.op2_hi = op2; in s390_insn_dfp_compare()
5901 insn->variant.dfp_compare.op1_lo = INVALID_HREG; in s390_insn_dfp_compare()
5902 insn->variant.dfp_compare.op2_lo = INVALID_HREG; in s390_insn_dfp_compare()
5904 return insn; in s390_insn_dfp_compare()
5912 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp_convert() local
5916 insn->tag = S390_INSN_DFP_CONVERT; in s390_insn_dfp_convert()
5917 insn->size = size; in s390_insn_dfp_convert()
5918 insn->variant.dfp_convert.tag = tag; in s390_insn_dfp_convert()
5919 insn->variant.dfp_convert.dst_hi = dst; in s390_insn_dfp_convert()
5920 insn->variant.dfp_convert.op_hi = op; in s390_insn_dfp_convert()
5921 insn->variant.dfp_convert.dst_lo = INVALID_HREG; in s390_insn_dfp_convert()
5922 insn->variant.dfp_convert.op_lo = INVALID_HREG; in s390_insn_dfp_convert()
5923 insn->variant.dfp_convert.rounding_mode = rounding_mode; in s390_insn_dfp_convert()
5925 return insn; in s390_insn_dfp_convert()
5933 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp_reround() local
5937 insn->tag = S390_INSN_DFP_REROUND; in s390_insn_dfp_reround()
5938 insn->size = size; in s390_insn_dfp_reround()
5939 insn->variant.dfp_reround.dst_hi = dst; in s390_insn_dfp_reround()
5940 insn->variant.dfp_reround.op2 = op2; in s390_insn_dfp_reround()
5941 insn->variant.dfp_reround.op3_hi = op3; in s390_insn_dfp_reround()
5942 insn->variant.dfp_reround.dst_lo = INVALID_HREG; in s390_insn_dfp_reround()
5943 insn->variant.dfp_reround.op3_lo = INVALID_HREG; in s390_insn_dfp_reround()
5944 insn->variant.dfp_reround.rounding_mode = rounding_mode; in s390_insn_dfp_reround()
5946 return insn; in s390_insn_dfp_reround()
5954 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_fp_convert() local
5959 insn->tag = S390_INSN_FP_CONVERT; in s390_insn_fp_convert()
5960 insn->size = size; in s390_insn_fp_convert()
5961 insn->variant.fp_convert.details = fp_convert; in s390_insn_fp_convert()
5971 return insn; in s390_insn_fp_convert()
5980 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_fp128_convert() local
5985 insn->tag = S390_INSN_FP_CONVERT; in s390_insn_fp128_convert()
5986 insn->size = size; in s390_insn_fp128_convert()
5987 insn->variant.fp_convert.details = fp_convert; in s390_insn_fp128_convert()
5997 return insn; in s390_insn_fp128_convert()
6006 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp128_binop() local
6014 insn->tag = S390_INSN_DFP_BINOP; in s390_insn_dfp128_binop()
6015 insn->size = size; in s390_insn_dfp128_binop()
6016 insn->variant.dfp_binop.details = dfp_binop; in s390_insn_dfp128_binop()
6027 return insn; in s390_insn_dfp128_binop()
6035 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp128_unop() local
6041 insn->tag = S390_INSN_DFP_UNOP; in s390_insn_dfp128_unop()
6042 insn->size = size; in s390_insn_dfp128_unop()
6043 insn->variant.dfp_unop.tag = tag; in s390_insn_dfp128_unop()
6044 insn->variant.dfp_unop.dst_hi = dst; in s390_insn_dfp128_unop()
6045 insn->variant.dfp_unop.dst_lo = INVALID_HREG; in s390_insn_dfp128_unop()
6046 insn->variant.dfp_unop.op_hi = op_hi; in s390_insn_dfp128_unop()
6047 insn->variant.dfp_unop.op_lo = op_lo; in s390_insn_dfp128_unop()
6049 return insn; in s390_insn_dfp128_unop()
6057 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp128_intop() local
6063 insn->tag = S390_INSN_DFP_INTOP; in s390_insn_dfp128_intop()
6064 insn->size = size; in s390_insn_dfp128_intop()
6065 insn->variant.dfp_intop.tag = tag; in s390_insn_dfp128_intop()
6066 insn->variant.dfp_intop.dst_hi = dst_hi; in s390_insn_dfp128_intop()
6067 insn->variant.dfp_intop.dst_lo = dst_lo; in s390_insn_dfp128_intop()
6068 insn->variant.dfp_intop.op2 = op2; in s390_insn_dfp128_intop()
6069 insn->variant.dfp_intop.op3_hi = op3_hi; in s390_insn_dfp128_intop()
6070 insn->variant.dfp_intop.op3_lo = op3_lo; in s390_insn_dfp128_intop()
6072 return insn; in s390_insn_dfp128_intop()
6080 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp128_compare() local
6086 insn->tag = S390_INSN_DFP_COMPARE; in s390_insn_dfp128_compare()
6087 insn->size = size; in s390_insn_dfp128_compare()
6088 insn->variant.dfp_compare.tag = tag; in s390_insn_dfp128_compare()
6089 insn->variant.dfp_compare.dst = dst; in s390_insn_dfp128_compare()
6090 insn->variant.dfp_compare.op1_hi = op1_hi; in s390_insn_dfp128_compare()
6091 insn->variant.dfp_compare.op1_lo = op1_lo; in s390_insn_dfp128_compare()
6092 insn->variant.dfp_compare.op2_hi = op2_hi; in s390_insn_dfp128_compare()
6093 insn->variant.dfp_compare.op2_lo = op2_lo; in s390_insn_dfp128_compare()
6095 return insn; in s390_insn_dfp128_compare()
6104 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp128_convert() local
6115 insn->tag = S390_INSN_DFP_CONVERT; in s390_insn_dfp128_convert()
6116 insn->size = size; in s390_insn_dfp128_convert()
6117 insn->variant.dfp_convert.tag = tag; in s390_insn_dfp128_convert()
6118 insn->variant.dfp_convert.dst_hi = dst_hi; in s390_insn_dfp128_convert()
6119 insn->variant.dfp_convert.dst_lo = dst_lo; in s390_insn_dfp128_convert()
6120 insn->variant.dfp_convert.op_hi = op_hi; in s390_insn_dfp128_convert()
6121 insn->variant.dfp_convert.op_lo = op_lo; in s390_insn_dfp128_convert()
6122 insn->variant.dfp_convert.rounding_mode = rounding_mode; in s390_insn_dfp128_convert()
6124 return insn; in s390_insn_dfp128_convert()
6156 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_dfp128_reround() local
6162 insn->tag = S390_INSN_DFP_REROUND; in s390_insn_dfp128_reround()
6163 insn->size = size; in s390_insn_dfp128_reround()
6164 insn->variant.dfp_reround.dst_hi = dst_hi; in s390_insn_dfp128_reround()
6165 insn->variant.dfp_reround.dst_lo = dst_lo; in s390_insn_dfp128_reround()
6166 insn->variant.dfp_reround.op2 = op2; in s390_insn_dfp128_reround()
6167 insn->variant.dfp_reround.op3_hi = op3_hi; in s390_insn_dfp128_reround()
6168 insn->variant.dfp_reround.op3_lo = op3_lo; in s390_insn_dfp128_reround()
6169 insn->variant.dfp_reround.rounding_mode = rounding_mode; in s390_insn_dfp128_reround()
6171 return insn; in s390_insn_dfp128_reround()
6178 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_mfence() local
6180 insn->tag = S390_INSN_MFENCE; in s390_insn_mfence()
6181 insn->size = 0; /* not needed */ in s390_insn_mfence()
6183 return insn; in s390_insn_mfence()
6190 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_mimm() local
6196 insn->tag = S390_INSN_MIMM; in s390_insn_mimm()
6197 insn->size = size; in s390_insn_mimm()
6198 insn->variant.mimm.dst = dst; in s390_insn_mimm()
6199 insn->variant.mimm.value = value; in s390_insn_mimm()
6201 return insn; in s390_insn_mimm()
6208 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_madd() local
6218 insn->tag = S390_INSN_MADD; in s390_insn_madd()
6219 insn->size = size; in s390_insn_madd()
6220 insn->variant.madd.dst = dst; in s390_insn_madd()
6221 insn->variant.madd.delta = delta; in s390_insn_madd()
6222 insn->variant.madd.value = value; in s390_insn_madd()
6224 return insn; in s390_insn_madd()
6233 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_set_fpc_bfprm() local
6235 insn->tag = S390_INSN_SET_FPC_BFPRM; in s390_insn_set_fpc_bfprm()
6236 insn->size = size; in s390_insn_set_fpc_bfprm()
6237 insn->variant.set_fpc_bfprm.mode = mode; in s390_insn_set_fpc_bfprm()
6239 return insn; in s390_insn_set_fpc_bfprm()
6248 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_set_fpc_dfprm() local
6250 insn->tag = S390_INSN_SET_FPC_DFPRM; in s390_insn_set_fpc_dfprm()
6251 insn->size = size; in s390_insn_set_fpc_dfprm()
6252 insn->variant.set_fpc_dfprm.mode = mode; in s390_insn_set_fpc_dfprm()
6254 return insn; in s390_insn_set_fpc_dfprm()
6262 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_xdirect() local
6266 insn->tag = S390_INSN_XDIRECT; in s390_insn_xdirect()
6267 insn->size = 0; /* does not matter */ in s390_insn_xdirect()
6269 insn->variant.xdirect.cond = cond; in s390_insn_xdirect()
6270 insn->variant.xdirect.dst = dst; in s390_insn_xdirect()
6271 insn->variant.xdirect.guest_IA = guest_IA; in s390_insn_xdirect()
6272 insn->variant.xdirect.to_fast_entry = to_fast_entry; in s390_insn_xdirect()
6274 return insn; in s390_insn_xdirect()
6281 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_xindir() local
6285 insn->tag = S390_INSN_XINDIR; in s390_insn_xindir()
6286 insn->size = 0; /* does not matter */ in s390_insn_xindir()
6288 insn->variant.xindir.cond = cond; in s390_insn_xindir()
6289 insn->variant.xindir.dst = dst; in s390_insn_xindir()
6290 insn->variant.xindir.guest_IA = guest_IA; in s390_insn_xindir()
6292 return insn; in s390_insn_xindir()
6300 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_xassisted() local
6304 insn->tag = S390_INSN_XASSISTED; in s390_insn_xassisted()
6305 insn->size = 0; /* does not matter */ in s390_insn_xassisted()
6307 insn->variant.xassisted.cond = cond; in s390_insn_xassisted()
6308 insn->variant.xassisted.dst = dst; in s390_insn_xassisted()
6309 insn->variant.xassisted.guest_IA = guest_IA; in s390_insn_xassisted()
6310 insn->variant.xassisted.kind = kind; in s390_insn_xassisted()
6312 return insn; in s390_insn_xassisted()
6319 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_evcheck() local
6324 insn->tag = S390_INSN_EVCHECK; in s390_insn_evcheck()
6325 insn->size = 0; /* does not matter */ in s390_insn_evcheck()
6327 insn->variant.evcheck.counter = counter; in s390_insn_evcheck()
6328 insn->variant.evcheck.fail_addr = fail_addr; in s390_insn_evcheck()
6330 return insn; in s390_insn_evcheck()
6337 s390_insn *insn = LibVEX_Alloc_inline(sizeof(s390_insn)); in s390_insn_profinc() local
6339 insn->tag = S390_INSN_PROFINC; in s390_insn_profinc()
6340 insn->size = 0; /* does not matter */ in s390_insn_profinc()
6342 return insn; in s390_insn_profinc()
6516 s390_insn_as_string(const s390_insn *insn) in s390_insn_as_string() argument
6524 switch (insn->tag) { in s390_insn_as_string()
6526 s390_sprintf(buf, "%M %R,%A", "v-load", insn->variant.load.dst, in s390_insn_as_string()
6527 insn->variant.load.src); in s390_insn_as_string()
6531 s390_sprintf(buf, "%M %R,%A", "v-store", insn->variant.store.src, in s390_insn_as_string()
6532 insn->variant.store.dst); in s390_insn_as_string()
6536 s390_sprintf(buf, "%M %R,%R", "v-move", insn->variant.move.dst, in s390_insn_as_string()
6537 insn->variant.move.src); in s390_insn_as_string()
6541 s390_sprintf(buf, "%M %A,%A", "v-memcpy", insn->variant.memcpy.dst, in s390_insn_as_string()
6542 insn->variant.memcpy.src); in s390_insn_as_string()
6547 insn->variant.cond_move.cond, insn->variant.cond_move.dst, in s390_insn_as_string()
6548 &insn->variant.cond_move.src); in s390_insn_as_string()
6552 s390_sprintf(buf, "%M %R,%I", "v-loadi", insn->variant.load_immediate.dst, in s390_insn_as_string()
6553 insn->variant.load_immediate.value); in s390_insn_as_string()
6557 switch (insn->variant.alu.tag) { in s390_insn_as_string()
6569 s390_sprintf(buf, "%M %R,%O", op, insn->variant.alu.dst, /* also op1 */ in s390_insn_as_string()
6570 &insn->variant.alu.op2); in s390_insn_as_string()
6575 if (insn->tag == S390_INSN_SMUL) { in s390_insn_as_string()
6580 s390_sprintf(buf, "%M %R,%O", op, insn->variant.mul.dst_hi, in s390_insn_as_string()
6581 &insn->variant.mul.op2); in s390_insn_as_string()
6586 if (insn->tag == S390_INSN_SDIV) { in s390_insn_as_string()
6591 s390_sprintf(buf, "%M %R,%O", op, insn->variant.div.op1_hi, in s390_insn_as_string()
6592 &insn->variant.div.op2); in s390_insn_as_string()
6596 s390_sprintf(buf, "%M %R,%O", "v-divsi", insn->variant.divs.op1, in s390_insn_as_string()
6597 &insn->variant.divs.op2); in s390_insn_as_string()
6601 s390_sprintf(buf, "%M %R,%O", "v-clz", insn->variant.clz.num_bits, in s390_insn_as_string()
6602 &insn->variant.clz.src); in s390_insn_as_string()
6606 switch (insn->variant.unop.tag) { in s390_insn_as_string()
6626 s390_sprintf(buf, "%M %R,%O", op, insn->variant.unop.dst, in s390_insn_as_string()
6627 &insn->variant.unop.src); in s390_insn_as_string()
6631 s390_sprintf(buf, "%M %O", "v-test", &insn->variant.test.src); in s390_insn_as_string()
6635 s390_sprintf(buf, "%M %R,%C", "v-cc2b", insn->variant.cc2bool.dst, in s390_insn_as_string()
6636 insn->variant.cc2bool.cond); in s390_insn_as_string()
6640 s390_sprintf(buf, "%M %R,%A,%R,%R", "v-cas", insn->variant.cas.op1, in s390_insn_as_string()
6641 insn->variant.cas.op2, insn->variant.cas.op3, in s390_insn_as_string()
6642 insn->variant.cas.old_mem); in s390_insn_as_string()
6646 s390_cdas *cdas = insn->variant.cdas.details; in s390_insn_as_string()
6655 if (insn->variant.compare.signed_comparison) { in s390_insn_as_string()
6660 s390_sprintf(buf, "%M %R,%O", op, insn->variant.compare.src1, in s390_insn_as_string()
6661 &insn->variant.compare.src2); in s390_insn_as_string()
6665 s390_helper_call *helper_call = insn->variant.helper_call.details; in s390_insn_as_string()
6675 switch (insn->variant.bfp_triop.tag) { in s390_insn_as_string()
6681 insn->variant.bfp_triop.dst /* op1 same as dst */, in s390_insn_as_string()
6682 insn->variant.bfp_triop.op2, insn->variant.bfp_triop.op3); in s390_insn_as_string()
6686 switch (insn->variant.bfp_binop.tag) { in s390_insn_as_string()
6694 insn->variant.bfp_binop.dst_hi /* op1 same as dst */, in s390_insn_as_string()
6695 insn->variant.bfp_binop.op2_hi); in s390_insn_as_string()
6699 s390_sprintf(buf, "%M %R,%R,%R", "v-fcmp", insn->variant.bfp_compare.dst, in s390_insn_as_string()
6700 insn->variant.bfp_compare.op1_hi, in s390_insn_as_string()
6701 insn->variant.bfp_compare.op2_hi); in s390_insn_as_string()
6705 switch (insn->variant.bfp_unop.tag) { in s390_insn_as_string()
6712 s390_sprintf(buf, "%M %R,%R", op, insn->variant.bfp_unop.dst_hi, in s390_insn_as_string()
6713 insn->variant.bfp_unop.op_hi); in s390_insn_as_string()
6717 switch (insn->variant.bfp_convert.tag) { in s390_insn_as_string()
6753 s390_sprintf(buf, "%M %R,%R", op, insn->variant.bfp_convert.dst_hi, in s390_insn_as_string()
6754 insn->variant.bfp_convert.op_hi); in s390_insn_as_string()
6758 s390_dfp_binop *dfp_binop = insn->variant.dfp_binop.details; in s390_insn_as_string()
6774 switch (insn->variant.dfp_unop.tag) { in s390_insn_as_string()
6781 s390_sprintf(buf, "%M %R,%R", op, insn->variant.dfp_unop.dst_hi, in s390_insn_as_string()
6782 insn->variant.dfp_unop.op_hi); in s390_insn_as_string()
6786 switch (insn->variant.dfp_intop.tag) { in s390_insn_as_string()
6792 s390_sprintf(buf, "%M %R,%R,%R", op, insn->variant.dfp_intop.dst_hi, in s390_insn_as_string()
6793 insn->variant.dfp_intop.op2, in s390_insn_as_string()
6794 insn->variant.dfp_intop.op3_hi); in s390_insn_as_string()
6798 switch (insn->variant.dfp_compare.tag) { in s390_insn_as_string()
6803 s390_sprintf(buf, "%M %R,%R,%R", op, insn->variant.dfp_compare.dst, in s390_insn_as_string()
6804 insn->variant.dfp_compare.op1_hi, in s390_insn_as_string()
6805 insn->variant.dfp_compare.op2_hi); in s390_insn_as_string()
6809 switch (insn->variant.dfp_convert.tag) { in s390_insn_as_string()
6832 s390_sprintf(buf, "%M %R,%R", op, insn->variant.dfp_convert.dst_hi, in s390_insn_as_string()
6833 insn->variant.dfp_convert.op_hi); in s390_insn_as_string()
6838 insn->variant.dfp_reround.dst_hi, in s390_insn_as_string()
6839 insn->variant.dfp_reround.op2, in s390_insn_as_string()
6840 insn->variant.dfp_reround.op3_hi); in s390_insn_as_string()
6844 s390_fp_convert *fp_convert = insn->variant.fp_convert.details; in s390_insn_as_string()
6877 s390_sprintf(buf, "%M %A,%I", "v-mimm", insn->variant.mimm.dst, in s390_insn_as_string()
6878 insn->variant.mimm.value); in s390_insn_as_string()
6883 insn->variant.madd.dst, in s390_insn_as_string()
6884 (Long)(Char)insn->variant.madd.delta, in s390_insn_as_string()
6885 insn->variant.madd.value); in s390_insn_as_string()
6890 insn->variant.set_fpc_bfprm.mode); in s390_insn_as_string()
6895 insn->variant.set_fpc_dfprm.mode); in s390_insn_as_string()
6900 insn->variant.evcheck.counter, in s390_insn_as_string()
6901 insn->variant.evcheck.fail_addr); in s390_insn_as_string()
6910 insn->variant.xdirect.cond, in s390_insn_as_string()
6911 insn->variant.xdirect.guest_IA, in s390_insn_as_string()
6912 insn->variant.xdirect.dst, in s390_insn_as_string()
6913 insn->variant.xdirect.to_fast_entry ? "fast" : "slow"); in s390_insn_as_string()
6918 insn->variant.xindir.cond, in s390_insn_as_string()
6919 insn->variant.xindir.guest_IA, in s390_insn_as_string()
6920 insn->variant.xindir.dst); in s390_insn_as_string()
6925 insn->variant.xassisted.cond, in s390_insn_as_string()
6926 insn->variant.xassisted.kind, in s390_insn_as_string()
6927 insn->variant.xassisted.guest_IA, in s390_insn_as_string()
6928 insn->variant.xassisted.dst); in s390_insn_as_string()
6953 switch (insn->tag) { in s390_insn_as_string()
6955 switch (insn->variant.unop.tag) { in s390_insn_as_string()
6967 switch (insn->variant.bfp_convert.tag) { in s390_insn_as_string()
7003 switch (insn->variant.dfp_convert.tag) { in s390_insn_as_string()
7029 s390_fp_convert *fp_convert = insn->variant.fp_convert.details; in s390_insn_as_string()
7061 vex_sprintf(p, "%u bytes", (UInt)insn->size); in s390_insn_as_string()
7126 s390_insn_load_emit(UChar *buf, const s390_insn *insn) in s390_insn_load_emit() argument
7131 src = insn->variant.load.src; in s390_insn_load_emit()
7133 r = hregNumber(insn->variant.load.dst); in s390_insn_load_emit()
7135 if (hregClass(insn->variant.load.dst) == HRcFlt64) { in s390_insn_load_emit()
7140 switch (insn->size) { in s390_insn_load_emit()
7170 return s390_emit_load_mem(buf, insn->size, r, src); in s390_insn_load_emit()
7175 s390_insn_store_emit(UChar *buf, const s390_insn *insn) in s390_insn_store_emit() argument
7180 dst = insn->variant.store.dst; in s390_insn_store_emit()
7182 r = hregNumber(insn->variant.store.src); in s390_insn_store_emit()
7187 if (hregClass(insn->variant.store.src) == HRcFlt64) { in s390_insn_store_emit()
7188 switch (insn->size) { in s390_insn_store_emit()
7218 switch (insn->size) { in s390_insn_store_emit()
7267 s390_insn_move_emit(UChar *buf, const s390_insn *insn) in s390_insn_move_emit() argument
7272 dst = hregNumber(insn->variant.move.dst); in s390_insn_move_emit()
7273 src = hregNumber(insn->variant.move.src); in s390_insn_move_emit()
7275 dst_class = hregClass(insn->variant.move.dst); in s390_insn_move_emit()
7276 src_class = hregClass(insn->variant.move.src); in s390_insn_move_emit()
7285 if (insn->size == 4) { in s390_insn_move_emit()
7293 if (insn->size == 4) { in s390_insn_move_emit()
7310 s390_insn_memcpy_emit(UChar *buf, const s390_insn *insn) in s390_insn_memcpy_emit() argument
7312 s390_amode *dst = insn->variant.memcpy.dst; in s390_insn_memcpy_emit()
7313 s390_amode *src = insn->variant.memcpy.src; in s390_insn_memcpy_emit()
7315 return s390_emit_MVC(buf, insn->size - 1, hregNumber(dst->b), dst->d, in s390_insn_memcpy_emit()
7321 s390_insn_load_immediate_emit(UChar *buf, const s390_insn *insn) in s390_insn_load_immediate_emit() argument
7324 ULong value = insn->variant.load_immediate.value; in s390_insn_load_immediate_emit()
7326 r = hregNumber(insn->variant.load_immediate.dst); in s390_insn_load_immediate_emit()
7328 if (hregClass(insn->variant.load_immediate.dst) == HRcFlt64) { in s390_insn_load_immediate_emit()
7330 switch (insn->size) { in s390_insn_load_immediate_emit()
7337 switch (insn->size) { in s390_insn_load_immediate_emit()
7358 s390_insn_alu_emit(UChar *buf, const s390_insn *insn) in s390_insn_alu_emit() argument
7363 dst = hregNumber(insn->variant.alu.dst); in s390_insn_alu_emit()
7364 op2 = insn->variant.alu.op2; in s390_insn_alu_emit()
7370 switch (insn->size) { in s390_insn_alu_emit()
7374 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7388 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7418 if (insn->variant.alu.tag == S390_ALU_LSH || in s390_insn_alu_emit()
7419 insn->variant.alu.tag == S390_ALU_RSH || in s390_insn_alu_emit()
7420 insn->variant.alu.tag == S390_ALU_RSHA) { in s390_insn_alu_emit()
7432 buf = s390_emit_load_mem(buf, insn->size, b2, src); in s390_insn_alu_emit()
7434 if (insn->size == 8) { in s390_insn_alu_emit()
7435 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7449 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7466 switch (insn->size) { in s390_insn_alu_emit()
7471 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7488 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7520 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7556 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7571 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7587 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7610 switch (insn->size) { in s390_insn_alu_emit()
7615 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7645 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7664 switch (insn->variant.alu.tag) { in s390_insn_alu_emit()
7740 s390_widen_emit(UChar *buf, const s390_insn *insn, UInt from_size, in s390_widen_emit() argument
7743 s390_opnd_RMI opnd = insn->variant.unop.src; in s390_widen_emit()
7747 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_widen_emit()
7754 if (insn->size == 4 || insn->size == 2) { /* 8 --> 32 8 --> 16 */ in s390_widen_emit()
7760 if (insn->size == 8) { /* 8 --> 64 */ in s390_widen_emit()
7769 if (insn->size == 4) { /* 16 --> 32 */ in s390_widen_emit()
7775 if (insn->size == 8) { /* 16 --> 64 */ in s390_widen_emit()
7784 if (insn->size == 8) { /* 32 --> 64 */ in s390_widen_emit()
7798 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_widen_emit()
7806 if (insn->size == 4 || insn->size == 2) { in s390_widen_emit()
7812 if (insn->size == 8) { in s390_widen_emit()
7821 if (insn->size == 4) { /* 16 --> 32 */ in s390_widen_emit()
7836 if (insn->size == 8) { /* 16 --> 64 */ in s390_widen_emit()
7845 if (insn->size == 8) { /* 32 --> 64 */ in s390_widen_emit()
7859 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_widen_emit()
7864 if (insn->size == 4 || insn->size == 2) { /* 8 --> 32 8 --> 16 */ in s390_widen_emit()
7872 if (insn->size == 8) { /* 8 --> 64 */ in s390_widen_emit()
7883 if (insn->size == 4) { /* 16 --> 32 */ in s390_widen_emit()
7886 if (insn->size == 8) { /* 16 --> 64 */ in s390_widen_emit()
7895 if (insn->size == 8) { /* 32 --> 64 */ in s390_widen_emit()
7915 s390_negate_emit(UChar *buf, const s390_insn *insn) in s390_negate_emit() argument
7919 opnd = insn->variant.unop.src; in s390_negate_emit()
7923 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_negate_emit()
7926 switch (insn->size) { in s390_negate_emit()
7941 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_negate_emit()
7944 buf = s390_emit_load_mem(buf, insn->size, R0, opnd.variant.am); in s390_negate_emit()
7946 switch (insn->size) { in s390_negate_emit()
7961 UChar r1 = hregNumber(insn->variant.unop.dst); in s390_negate_emit()
7966 switch (insn->size) { in s390_negate_emit()
7989 s390_insn_unop_emit(UChar *buf, const s390_insn *insn) in s390_insn_unop_emit() argument
7991 switch (insn->variant.unop.tag) { in s390_insn_unop_emit()
7992 case S390_ZERO_EXTEND_8: return s390_widen_emit(buf, insn, 1, 0); in s390_insn_unop_emit()
7993 case S390_ZERO_EXTEND_16: return s390_widen_emit(buf, insn, 2, 0); in s390_insn_unop_emit()
7994 case S390_ZERO_EXTEND_32: return s390_widen_emit(buf, insn, 4, 0); in s390_insn_unop_emit()
7996 case S390_SIGN_EXTEND_8: return s390_widen_emit(buf, insn, 1, 1); in s390_insn_unop_emit()
7997 case S390_SIGN_EXTEND_16: return s390_widen_emit(buf, insn, 2, 1); in s390_insn_unop_emit()
7998 case S390_SIGN_EXTEND_32: return s390_widen_emit(buf, insn, 4, 1); in s390_insn_unop_emit()
8000 case S390_NEGATE: return s390_negate_emit(buf, insn); in s390_insn_unop_emit()
8011 s390_insn_test_emit(UChar *buf, const s390_insn *insn) in s390_insn_test_emit() argument
8015 opnd = insn->variant.test.src; in s390_insn_test_emit()
8021 switch (insn->size) { in s390_insn_test_emit()
8039 switch (insn->size) { in s390_insn_test_emit()
8054 switch (insn->size) { in s390_insn_test_emit()
8078 s390_insn_cc2bool_emit(UChar *buf, const s390_insn *insn) in s390_insn_cc2bool_emit() argument
8080 UChar r1 = hregNumber(insn->variant.cc2bool.dst); in s390_insn_cc2bool_emit()
8081 s390_cc_t cond = insn->variant.cc2bool.cond; in s390_insn_cc2bool_emit()
8100 s390_insn_cas_emit(UChar *buf, const s390_insn *insn) in s390_insn_cas_emit() argument
8106 r1 = hregNumber(insn->variant.cas.op1); /* expected value */ in s390_insn_cas_emit()
8107 r3 = hregNumber(insn->variant.cas.op3); in s390_insn_cas_emit()
8108 old= hregNumber(insn->variant.cas.old_mem); in s390_insn_cas_emit()
8109 am = insn->variant.cas.op2; in s390_insn_cas_emit()
8115 switch (insn->size) { in s390_insn_cas_emit()
8144 s390_insn_cdas_emit(UChar *buf, const s390_insn *insn) in s390_insn_cdas_emit() argument
8149 s390_cdas *cdas = insn->variant.cdas.details; in s390_insn_cdas_emit()
8165 switch (insn->size) { in s390_insn_cdas_emit()
8208 s390_insn_compare_emit(UChar *buf, const s390_insn *insn) in s390_insn_compare_emit() argument
8214 op1 = insn->variant.compare.src1; in s390_insn_compare_emit()
8215 op2 = insn->variant.compare.src2; in s390_insn_compare_emit()
8216 signed_comparison = insn->variant.compare.signed_comparison; in s390_insn_compare_emit()
8223 switch (insn->size) { in s390_insn_compare_emit()
8248 switch (insn->size) { in s390_insn_compare_emit()
8282 switch (insn->size) { in s390_insn_compare_emit()
8320 s390_insn_mul_emit(UChar *buf, const s390_insn *insn) in s390_insn_mul_emit() argument
8327 r1 = hregNumber(insn->variant.mul.dst_hi); in s390_insn_mul_emit()
8329 op2 = insn->variant.mul.op2; in s390_insn_mul_emit()
8330 signed_multiply = insn->tag == S390_INSN_SMUL; in s390_insn_mul_emit()
8336 switch (insn->size) { in s390_insn_mul_emit()
8362 switch (insn->size) { in s390_insn_mul_emit()
8366 buf = s390_emit_load_mem(buf, insn->size, R0, am); in s390_insn_mul_emit()
8404 switch (insn->size) { in s390_insn_mul_emit()
8436 s390_insn_div_emit(UChar *buf, const s390_insn *insn) in s390_insn_div_emit() argument
8442 r1 = hregNumber(insn->variant.div.op1_hi); in s390_insn_div_emit()
8443 op2 = insn->variant.div.op2; in s390_insn_div_emit()
8444 signed_divide = insn->tag == S390_INSN_SDIV; in s390_insn_div_emit()
8450 switch (insn->size) { in s390_insn_div_emit()
8474 switch (insn->size) { in s390_insn_div_emit()
8508 switch (insn->size) { in s390_insn_div_emit()
8538 s390_insn_divs_emit(UChar *buf, const s390_insn *insn) in s390_insn_divs_emit() argument
8543 r1 = hregNumber(insn->variant.divs.rem); in s390_insn_divs_emit()
8544 op2 = insn->variant.divs.op2; in s390_insn_divs_emit()
8579 s390_insn_clz_emit(UChar *buf, const s390_insn *insn) in s390_insn_clz_emit() argument
8584 r1 = hregNumber(insn->variant.clz.num_bits); in s390_insn_clz_emit()
8585 r1p1 = hregNumber(insn->variant.clz.clobber); in s390_insn_clz_emit()
8591 src = insn->variant.clz.src; in s390_insn_clz_emit()
8653 s390_insn_helper_call_emit(UChar *buf, const s390_insn *insn) in s390_insn_helper_call_emit() argument
8658 s390_helper_call *helper_call = insn->variant.helper_call.details; in s390_insn_helper_call_emit()
8717 s390_insn_cond_move_emit(UChar *buf, const s390_insn *insn) in s390_insn_cond_move_emit() argument
8724 cond = insn->variant.cond_move.cond; in s390_insn_cond_move_emit()
8725 dst = insn->variant.cond_move.dst; in s390_insn_cond_move_emit()
8726 src = insn->variant.cond_move.src; in s390_insn_cond_move_emit()
8747 if (insn->size < 4 || in s390_insn_cond_move_emit()
8749 p = s390_emit_load_mem(p, insn->size, R0, am); in s390_insn_cond_move_emit()
8755 vassert(insn->size == 4 || insn->size == 8); in s390_insn_cond_move_emit()
8760 if (insn->size == 4) { in s390_insn_cond_move_emit()
8770 if (insn->size <= 4) { in s390_insn_cond_move_emit()
8775 vassert(insn->size == 8); in s390_insn_cond_move_emit()
8799 p = s390_emit_load_mem(p, insn->size, hregNumber(dst), src.variant.am); in s390_insn_cond_move_emit()
8806 switch (insn->size) { in s390_insn_cond_move_emit()
8842 s390_insn_bfp_triop_emit(UChar *buf, const s390_insn *insn) in s390_insn_bfp_triop_emit() argument
8844 UInt r1 = hregNumber(insn->variant.bfp_triop.dst); in s390_insn_bfp_triop_emit()
8845 UInt r2 = hregNumber(insn->variant.bfp_triop.op2); in s390_insn_bfp_triop_emit()
8846 UInt r3 = hregNumber(insn->variant.bfp_triop.op3); in s390_insn_bfp_triop_emit()
8848 switch (insn->size) { in s390_insn_bfp_triop_emit()
8850 switch (insn->variant.bfp_triop.tag) { in s390_insn_bfp_triop_emit()
8858 switch (insn->variant.bfp_triop.tag) { in s390_insn_bfp_triop_emit()
8874 s390_insn_bfp_binop_emit(UChar *buf, const s390_insn *insn) in s390_insn_bfp_binop_emit() argument
8876 UInt r1 = hregNumber(insn->variant.bfp_binop.dst_hi); in s390_insn_bfp_binop_emit()
8877 UInt r2 = hregNumber(insn->variant.bfp_binop.op2_hi); in s390_insn_bfp_binop_emit()
8879 switch (insn->size) { in s390_insn_bfp_binop_emit()
8881 switch (insn->variant.bfp_binop.tag) { in s390_insn_bfp_binop_emit()
8891 switch (insn->variant.bfp_binop.tag) { in s390_insn_bfp_binop_emit()
8901 switch (insn->variant.bfp_binop.tag) { in s390_insn_bfp_binop_emit()
8919 s390_insn_bfp_unop_emit(UChar *buf, const s390_insn *insn) in s390_insn_bfp_unop_emit() argument
8921 UInt r1 = hregNumber(insn->variant.bfp_unop.dst_hi); in s390_insn_bfp_unop_emit()
8922 UInt r2 = hregNumber(insn->variant.bfp_unop.op_hi); in s390_insn_bfp_unop_emit()
8924 switch (insn->variant.bfp_unop.tag) { in s390_insn_bfp_unop_emit()
8926 switch (insn->size) { in s390_insn_bfp_unop_emit()
8935 switch (insn->size) { in s390_insn_bfp_unop_emit()
8944 switch (insn->size) { in s390_insn_bfp_unop_emit()
8953 switch (insn->size) { in s390_insn_bfp_unop_emit()
8970 s390_insn_bfp_convert_emit(UChar *buf, const s390_insn *insn) in s390_insn_bfp_convert_emit() argument
8972 UInt r1 = hregNumber(insn->variant.bfp_convert.dst_hi); in s390_insn_bfp_convert_emit()
8973 UInt r2 = hregNumber(insn->variant.bfp_convert.op_hi); in s390_insn_bfp_convert_emit()
8974 s390_bfp_round_t m3 = insn->variant.bfp_convert.rounding_mode; in s390_insn_bfp_convert_emit()
8979 switch (insn->variant.bfp_convert.tag) { in s390_insn_bfp_convert_emit()
9036 s390_insn_bfp_compare_emit(UChar *buf, const s390_insn *insn) in s390_insn_bfp_compare_emit() argument
9038 UInt dst = hregNumber(insn->variant.bfp_compare.dst); in s390_insn_bfp_compare_emit()
9039 UInt r1 = hregNumber(insn->variant.bfp_compare.op1_hi); in s390_insn_bfp_compare_emit()
9040 UInt r2 = hregNumber(insn->variant.bfp_compare.op2_hi); in s390_insn_bfp_compare_emit()
9042 switch (insn->size) { in s390_insn_bfp_compare_emit()
9057 s390_insn_dfp_binop_emit(UChar *buf, const s390_insn *insn) in s390_insn_dfp_binop_emit() argument
9059 s390_dfp_binop *dfp_binop = insn->variant.dfp_binop.details; in s390_insn_dfp_binop_emit()
9066 switch (insn->size) { in s390_insn_dfp_binop_emit()
9098 s390_insn_dfp_reround_emit(UChar *buf, const s390_insn *insn) in s390_insn_dfp_reround_emit() argument
9100 UInt r1 = hregNumber(insn->variant.dfp_reround.dst_hi); in s390_insn_dfp_reround_emit()
9101 UInt r2 = hregNumber(insn->variant.dfp_reround.op2); in s390_insn_dfp_reround_emit()
9102 UInt r3 = hregNumber(insn->variant.dfp_reround.op3_hi); in s390_insn_dfp_reround_emit()
9103 s390_dfp_round_t m4 = insn->variant.dfp_reround.rounding_mode; in s390_insn_dfp_reround_emit()
9105 switch (insn->size) { in s390_insn_dfp_reround_emit()
9120 s390_insn_dfp_unop_emit(UChar *buf, const s390_insn *insn) in s390_insn_dfp_unop_emit() argument
9122 UInt r1 = hregNumber(insn->variant.dfp_unop.dst_hi); in s390_insn_dfp_unop_emit()
9123 UInt r2 = hregNumber(insn->variant.dfp_unop.op_hi); in s390_insn_dfp_unop_emit()
9125 switch (insn->variant.dfp_unop.tag) { in s390_insn_dfp_unop_emit()
9138 s390_insn_dfp_intop_emit(UChar *buf, const s390_insn *insn) in s390_insn_dfp_intop_emit() argument
9140 UInt r1 = hregNumber(insn->variant.dfp_intop.dst_hi); in s390_insn_dfp_intop_emit()
9141 UInt r2 = hregNumber(insn->variant.dfp_intop.op2); in s390_insn_dfp_intop_emit()
9142 UInt r3 = hregNumber(insn->variant.dfp_intop.op3_hi); in s390_insn_dfp_intop_emit()
9144 switch (insn->size) { in s390_insn_dfp_intop_emit()
9146 switch (insn->variant.dfp_intop.tag) { in s390_insn_dfp_intop_emit()
9155 switch (insn->variant.dfp_intop.tag) { in s390_insn_dfp_intop_emit()
9172 s390_insn_dfp_compare_emit(UChar *buf, const s390_insn *insn) in s390_insn_dfp_compare_emit() argument
9174 UInt dst = hregNumber(insn->variant.dfp_compare.dst); in s390_insn_dfp_compare_emit()
9175 UInt r1 = hregNumber(insn->variant.dfp_compare.op1_hi); in s390_insn_dfp_compare_emit()
9176 UInt r2 = hregNumber(insn->variant.dfp_compare.op2_hi); in s390_insn_dfp_compare_emit()
9178 switch (insn->size) { in s390_insn_dfp_compare_emit()
9180 switch(insn->variant.dfp_compare.tag) { in s390_insn_dfp_compare_emit()
9188 switch(insn->variant.dfp_compare.tag) { in s390_insn_dfp_compare_emit()
9206 s390_insn_dfp_convert_emit(UChar *buf, const s390_insn *insn) in s390_insn_dfp_convert_emit() argument
9208 UInt r1 = hregNumber(insn->variant.dfp_convert.dst_hi); in s390_insn_dfp_convert_emit()
9209 UInt r2 = hregNumber(insn->variant.dfp_convert.op_hi); in s390_insn_dfp_convert_emit()
9210 s390_dfp_round_t m3 = insn->variant.dfp_convert.rounding_mode; in s390_insn_dfp_convert_emit()
9215 switch (insn->variant.dfp_convert.tag) { in s390_insn_dfp_convert_emit()
9258 s390_insn_fp_convert_emit(UChar *buf, const s390_insn *insn) in s390_insn_fp_convert_emit() argument
9261 s390_fp_convert *fp_convert = insn->variant.fp_convert.details; in s390_insn_fp_convert_emit()
9299 s390_insn_mfence_emit(UChar *buf, const s390_insn *insn) in s390_insn_mfence_emit() argument
9306 s390_insn_mimm_emit(UChar *buf, const s390_insn *insn) in s390_insn_mimm_emit() argument
9308 s390_amode *am = insn->variant.mimm.dst; in s390_insn_mimm_emit()
9311 ULong value = insn->variant.mimm.value; in s390_insn_mimm_emit()
9314 return s390_emit_XC(buf, insn->size - 1, b, d, b, d); in s390_insn_mimm_emit()
9317 if (insn->size == 1) { in s390_insn_mimm_emit()
9323 switch (insn->size) { in s390_insn_mimm_emit()
9330 switch (insn->size) { in s390_insn_mimm_emit()
9348 s390_insn_madd_emit(UChar *buf, const s390_insn *insn) in s390_insn_madd_emit() argument
9350 s390_amode *am = insn->variant.madd.dst; in s390_insn_madd_emit()
9354 if (insn->size == 4) { in s390_insn_madd_emit()
9355 return s390_emit_ASI(buf, insn->variant.madd.delta, b, DISP20(d)); in s390_insn_madd_emit()
9358 return s390_emit_AGSI(buf, insn->variant.madd.delta, b, DISP20(d)); in s390_insn_madd_emit()
9363 s390_insn_set_fpc_bfprm_emit(UChar *buf, const s390_insn *insn) in s390_insn_set_fpc_bfprm_emit() argument
9365 UInt mode = hregNumber(insn->variant.set_fpc_bfprm.mode); in s390_insn_set_fpc_bfprm_emit()
9380 s390_insn_set_fpc_dfprm_emit(UChar *buf, const s390_insn *insn) in s390_insn_set_fpc_dfprm_emit() argument
9382 UInt mode = hregNumber(insn->variant.set_fpc_dfprm.mode); in s390_insn_set_fpc_dfprm_emit()
9535 s390_insn_xdirect_emit(UChar *buf, const s390_insn *insn, in s390_insn_xdirect_emit() argument
9550 s390_cc_t cond = insn->variant.xdirect.cond; in s390_insn_xdirect_emit()
9566 buf = s390_emit_load_64imm(buf, R0, insn->variant.xdirect.dst); in s390_insn_xdirect_emit()
9568 const s390_amode *amode = insn->variant.xdirect.guest_IA; in s390_insn_xdirect_emit()
9579 insn->variant.xdirect.to_fast_entry ? disp_cp_chain_me_to_fastEP in s390_insn_xdirect_emit()
9616 s390_insn_xindir_emit(UChar *buf, const s390_insn *insn, in s390_insn_xindir_emit() argument
9632 s390_cc_t cond = insn->variant.xdirect.cond; in s390_insn_xindir_emit()
9648 const s390_amode *amode = insn->variant.xindir.guest_IA; in s390_insn_xindir_emit()
9653 UInt regno = hregNumber(insn->variant.xindir.dst); in s390_insn_xindir_emit()
9676 s390_insn_xassisted_emit(UChar *buf, const s390_insn *insn, in s390_insn_xassisted_emit() argument
9684 s390_cc_t cond = insn->variant.xdirect.cond; in s390_insn_xassisted_emit()
9700 const s390_amode *amode = insn->variant.xassisted.guest_IA; in s390_insn_xassisted_emit()
9705 UInt regno = hregNumber(insn->variant.xassisted.dst); in s390_insn_xassisted_emit()
9711 switch (insn->variant.xassisted.kind) { in s390_insn_xassisted_emit()
9729 ppIRJumpKind(insn->variant.xassisted.kind); in s390_insn_xassisted_emit()
9767 s390_insn_evcheck_emit(UChar *buf, const s390_insn *insn, in s390_insn_evcheck_emit() argument
9776 amode = insn->variant.evcheck.counter; in s390_insn_evcheck_emit()
9794 amode = insn->variant.evcheck.fail_addr; in s390_insn_evcheck_emit()
9812 const s390_insn *insn __attribute__((unused))) in s390_insn_profinc_emit() argument
9832 emit_S390Instr(Bool *is_profinc, UChar *buf, Int nbuf, const s390_insn *insn, in emit_S390Instr() argument
9844 switch (insn->tag) { in emit_S390Instr()
9846 end = s390_insn_load_emit(buf, insn); in emit_S390Instr()
9850 end = s390_insn_store_emit(buf, insn); in emit_S390Instr()
9854 end = s390_insn_move_emit(buf, insn); in emit_S390Instr()
9858 end = s390_insn_memcpy_emit(buf, insn); in emit_S390Instr()
9862 end = s390_insn_cond_move_emit(buf, insn); in emit_S390Instr()
9866 end = s390_insn_load_immediate_emit(buf, insn); in emit_S390Instr()
9870 end = s390_insn_alu_emit(buf, insn); in emit_S390Instr()
9875 end = s390_insn_mul_emit(buf, insn); in emit_S390Instr()
9880 end = s390_insn_div_emit(buf, insn); in emit_S390Instr()
9884 end = s390_insn_divs_emit(buf, insn); in emit_S390Instr()
9888 end = s390_insn_clz_emit(buf, insn); in emit_S390Instr()
9892 end = s390_insn_unop_emit(buf, insn); in emit_S390Instr()
9896 end = s390_insn_test_emit(buf, insn); in emit_S390Instr()
9900 end = s390_insn_cc2bool_emit(buf, insn); in emit_S390Instr()
9904 end = s390_insn_cas_emit(buf, insn); in emit_S390Instr()
9908 end = s390_insn_cdas_emit(buf, insn); in emit_S390Instr()
9912 end = s390_insn_compare_emit(buf, insn); in emit_S390Instr()
9916 end = s390_insn_helper_call_emit(buf, insn); in emit_S390Instr()
9921 end = s390_insn_bfp_triop_emit(buf, insn); in emit_S390Instr()
9925 end = s390_insn_bfp_binop_emit(buf, insn); in emit_S390Instr()
9929 end = s390_insn_bfp_unop_emit(buf, insn); in emit_S390Instr()
9933 end = s390_insn_bfp_compare_emit(buf, insn); in emit_S390Instr()
9937 end = s390_insn_bfp_convert_emit(buf, insn); in emit_S390Instr()
9941 end = s390_insn_dfp_binop_emit(buf, insn); in emit_S390Instr()
9945 end = s390_insn_dfp_unop_emit(buf, insn); in emit_S390Instr()
9949 end = s390_insn_dfp_intop_emit(buf, insn); in emit_S390Instr()
9953 end = s390_insn_dfp_compare_emit(buf, insn); in emit_S390Instr()
9957 end = s390_insn_dfp_convert_emit(buf, insn); in emit_S390Instr()
9961 end = s390_insn_dfp_reround_emit(buf, insn); in emit_S390Instr()
9965 end = s390_insn_fp_convert_emit(buf, insn); in emit_S390Instr()
9969 end = s390_insn_mfence_emit(buf, insn); in emit_S390Instr()
9973 end = s390_insn_mimm_emit(buf, insn); in emit_S390Instr()
9977 end = s390_insn_madd_emit(buf, insn); in emit_S390Instr()
9981 end = s390_insn_set_fpc_bfprm_emit(buf, insn); in emit_S390Instr()
9985 end = s390_insn_set_fpc_dfprm_emit(buf, insn); in emit_S390Instr()
9989 end = s390_insn_profinc_emit(buf, insn); in emit_S390Instr()
9996 end = s390_insn_evcheck_emit(buf, insn, endness_host); in emit_S390Instr()
10000 end = s390_insn_xdirect_emit(buf, insn, disp_cp_chain_me_to_slowEP, in emit_S390Instr()
10005 end = s390_insn_xindir_emit(buf, insn, disp_cp_xindir); in emit_S390Instr()
10009 end = s390_insn_xassisted_emit(buf, insn, disp_cp_xassisted); in emit_S390Instr()