190 MCRegister DstReg, PredReg, SrcReg, Src1Reg, Src2Reg;
200 case Hexagon::L2_loadri_io:
217 case Hexagon::L2_loadrub_io:
237 case Hexagon::L2_loadrh_io:
238 case Hexagon::L2_loadruh_io:
248 case Hexagon::L2_loadrb_io:
258 case Hexagon::L2_loadrd_io:
269 case Hexagon::L4_return:
270 case Hexagon::L2_deallocframe:
273 case Hexagon::EH_RETURN_JMPR:
274 case Hexagon::J2_jumpr:
275 case Hexagon::PS_jmpret:
279 if (Hexagon::R31 == DstReg)
283 case Hexagon::J2_jumprt:
284 case Hexagon::J2_jumprf:
285 case Hexagon::J2_jumprtnew:
286 case Hexagon::J2_jumprfnew:
287 case Hexagon::PS_jmprett:
288 case Hexagon::PS_jmpretf:
289 case Hexagon::PS_jmprettnew:
290 case Hexagon::PS_jmpretfnew:
291 case Hexagon::PS_jmprettnewpt:
292 case Hexagon::PS_jmpretfnewpt:
296 if ((Hexagon::P0 == SrcReg) && (Hexagon::R31 == DstReg)) {
300 case Hexagon::L4_return_t:
301 case Hexagon::L4_return_f:
302 case Hexagon::L4_return_tnew_pnt:
303 case Hexagon::L4_return_fnew_pnt:
306 if (Hexagon::P0 == SrcReg) {
315 case Hexagon::S2_storeri_io:
332 case Hexagon::S2_storerb_io:
351 case Hexagon::S2_storerh_io:
361 case Hexagon::S2_storerd_io:
371 case Hexagon::S4_storeiri_io:
379 case Hexagon::S4_storeirb_io:
387 case Hexagon::S2_allocframe:
409 case Hexagon::A2_addi:
419 if (DstReg == SrcReg) {
430 case Hexagon::A2_add:
440 case Hexagon::A2_andir:
449 case Hexagon::A2_tfr:
458 case Hexagon::A2_tfrsi:
465 case Hexagon::C2_cmoveit:
466 case Hexagon::C2_cmovenewit:
467 case Hexagon::C2_cmoveif:
468 case Hexagon::C2_cmovenewif:
475 Hexagon::P0 == PredReg &&
minConstant(MCI, 2) == 0) {
479 case Hexagon::C2_cmpeqi:
483 if (Hexagon::P0 == DstReg &&
489 case Hexagon::A2_combineii:
490 case Hexagon::A4_combineii:
498 case Hexagon::A4_combineri:
508 case Hexagon::A4_combineir:
518 case Hexagon::A2_sxtb:
519 case Hexagon::A2_sxth:
520 case Hexagon::A2_zxtb:
521 case Hexagon::A2_zxth:
698 Result.setLoc(Inst.
getLoc());
706 case Hexagon::A2_addi:
710 Result.setOpcode(Hexagon::SA1_inc);
716 Result.setOpcode(Hexagon::SA1_dec);
723 Result.setOpcode(Hexagon::SA1_addsp);
729 Result.setOpcode(Hexagon::SA1_addi);
734 case Hexagon::A2_add:
735 Result.setOpcode(Hexagon::SA1_addrx);
740 case Hexagon::S2_allocframe:
741 Result.setOpcode(Hexagon::SS2_allocframe);
744 case Hexagon::A2_andir:
746 Result.setOpcode(Hexagon::SA1_zxtb);
751 Result.setOpcode(Hexagon::SA1_and1);
756 case Hexagon::C2_cmpeqi:
757 Result.setOpcode(Hexagon::SA1_cmpeqi);
761 case Hexagon::A4_combineii:
762 case Hexagon::A2_combineii:
764 assert(Absolute);(void)Absolute;
766 Result.setOpcode(Hexagon::SA1_combine1i);
772 Result.setOpcode(Hexagon::SA1_combine3i);
778 Result.setOpcode(Hexagon::SA1_combine0i);
784 Result.setOpcode(Hexagon::SA1_combine2i);
790 case Hexagon::A4_combineir:
791 Result.setOpcode(Hexagon::SA1_combinezr);
795 case Hexagon::A4_combineri:
796 Result.setOpcode(Hexagon::SA1_combinerz);
800 case Hexagon::L4_return_tnew_pnt:
801 case Hexagon::L4_return_tnew_pt:
802 Result.setOpcode(Hexagon::SL2_return_tnew);
804 case Hexagon::L4_return_fnew_pnt:
805 case Hexagon::L4_return_fnew_pt:
806 Result.setOpcode(Hexagon::SL2_return_fnew);
808 case Hexagon::L4_return_f:
809 Result.setOpcode(Hexagon::SL2_return_f);
811 case Hexagon::L4_return_t:
812 Result.setOpcode(Hexagon::SL2_return_t);
814 case Hexagon::L4_return:
815 Result.setOpcode(Hexagon::SL2_return);
817 case Hexagon::L2_deallocframe:
818 Result.setOpcode(Hexagon::SL2_deallocframe);
820 case Hexagon::EH_RETURN_JMPR:
821 case Hexagon::J2_jumpr:
822 case Hexagon::PS_jmpret:
823 Result.setOpcode(Hexagon::SL2_jumpr31);
825 case Hexagon::J2_jumprf:
826 case Hexagon::PS_jmpretf:
827 Result.setOpcode(Hexagon::SL2_jumpr31_f);
829 case Hexagon::J2_jumprfnew:
830 case Hexagon::PS_jmpretfnewpt:
831 case Hexagon::PS_jmpretfnew:
832 Result.setOpcode(Hexagon::SL2_jumpr31_fnew);
834 case Hexagon::J2_jumprt:
835 case Hexagon::PS_jmprett:
836 Result.setOpcode(Hexagon::SL2_jumpr31_t);
838 case Hexagon::J2_jumprtnew:
839 case Hexagon::PS_jmprettnewpt:
840 case Hexagon::PS_jmprettnew:
841 Result.setOpcode(Hexagon::SL2_jumpr31_tnew);
843 case Hexagon::L2_loadrb_io:
844 Result.setOpcode(Hexagon::SL2_loadrb_io);
849 case Hexagon::L2_loadrd_io:
850 Result.setOpcode(Hexagon::SL2_loadrd_sp);
854 case Hexagon::L2_loadrh_io:
855 Result.setOpcode(Hexagon::SL2_loadrh_io);
860 case Hexagon::L2_loadrub_io:
861 Result.setOpcode(Hexagon::SL1_loadrub_io);
866 case Hexagon::L2_loadruh_io:
867 Result.setOpcode(Hexagon::SL2_loadruh_io);
872 case Hexagon::L2_loadri_io:
874 Result.setOpcode(Hexagon::SL2_loadri_sp);
879 Result.setOpcode(Hexagon::SL1_loadri_io);
885 case Hexagon::S4_storeirb_io:
887 assert(Absolute);(void)Absolute;
889 Result.setOpcode(Hexagon::SS2_storebi0);
893 }
else if (
Value == 1) {
894 Result.setOpcode(Hexagon::SS2_storebi1);
900 case Hexagon::S2_storerb_io:
901 Result.setOpcode(Hexagon::SS1_storeb_io);
906 case Hexagon::S2_storerd_io:
907 Result.setOpcode(Hexagon::SS2_stored_sp);
911 case Hexagon::S2_storerh_io:
912 Result.setOpcode(Hexagon::SS2_storeh_io);
917 case Hexagon::S4_storeiri_io:
919 assert(Absolute);(void)Absolute;
921 Result.setOpcode(Hexagon::SS2_storewi0);
925 }
else if (
Value == 1) {
926 Result.setOpcode(Hexagon::SS2_storewi1);
931 Result.setOpcode(Hexagon::SS2_storew_sp);
937 case Hexagon::S2_storeri_io:
939 Result.setOpcode(Hexagon::SS2_storew_sp);
943 Result.setOpcode(Hexagon::SS1_storew_io);
949 case Hexagon::A2_sxtb:
950 Result.setOpcode(Hexagon::SA1_sxtb);
954 case Hexagon::A2_sxth:
955 Result.setOpcode(Hexagon::SA1_sxth);
959 case Hexagon::A2_tfr:
960 Result.setOpcode(Hexagon::SA1_tfr);
964 case Hexagon::C2_cmovenewif:
965 Result.setOpcode(Hexagon::SA1_clrfnew);
969 case Hexagon::C2_cmovenewit:
970 Result.setOpcode(Hexagon::SA1_clrtnew);
974 case Hexagon::C2_cmoveif:
975 Result.setOpcode(Hexagon::SA1_clrf);
979 case Hexagon::C2_cmoveit:
980 Result.setOpcode(Hexagon::SA1_clrt);
984 case Hexagon::A2_tfrsi:
986 if (Absolute &&
Value == -1) {
987 Result.setOpcode(Hexagon::SA1_setin1);
992 Result.setOpcode(Hexagon::SA1_seti);
997 case Hexagon::A2_zxtb:
998 Result.setOpcode(Hexagon::SA1_zxtb);
1003 case Hexagon::A2_zxth:
1004 Result.setOpcode(Hexagon::SA1_zxth);