@@ -606,38 +606,39 @@ let AdditionalPredicates = [NotInMicroMips] in {
606
606
defm FSUB : ADDS_M<"sub.d", II_SUB_D, 0, fsub>, ADDS_FM<0x01, 17>;
607
607
}
608
608
609
- def MADD_S : MMRel, MADDS_FT<"madd.s", FGR32Opnd, II_MADD_S, fadd>,
610
- MADDS_FM<4, 0>, INSN_MIPS4_32R2_NOT_32R6_64R6, MADD4;
611
- def MSUB_S : MMRel, MADDS_FT<"msub.s", FGR32Opnd, II_MSUB_S, fsub>,
612
- MADDS_FM<5, 0>, INSN_MIPS4_32R2_NOT_32R6_64R6, MADD4;
609
+ let AdditionalPredicates = [NotInMicroMips, HasMadd4] in {
610
+ def MADD_S : MMRel, MADDS_FT<"madd.s", FGR32Opnd, II_MADD_S, fadd>,
611
+ MADDS_FM<4, 0>, INSN_MIPS4_32R2_NOT_32R6_64R6;
612
+ def MSUB_S : MMRel, MADDS_FT<"msub.s", FGR32Opnd, II_MSUB_S, fsub>,
613
+ MADDS_FM<5, 0>, INSN_MIPS4_32R2_NOT_32R6_64R6;
614
+ }
613
615
614
- let AdditionalPredicates = [NoNaNsFPMath, HasMadd4] in {
616
+ let AdditionalPredicates = [NoNaNsFPMath, HasMadd4, NotInMicroMips ] in {
615
617
def NMADD_S : MMRel, NMADDS_FT<"nmadd.s", FGR32Opnd, II_NMADD_S, fadd>,
616
618
MADDS_FM<6, 0>, INSN_MIPS4_32R2_NOT_32R6_64R6;
617
619
def NMSUB_S : MMRel, NMADDS_FT<"nmsub.s", FGR32Opnd, II_NMSUB_S, fsub>,
618
620
MADDS_FM<7, 0>, INSN_MIPS4_32R2_NOT_32R6_64R6;
619
621
}
620
-
621
- def MADD_D32 : MMRel, MADDS_FT<"madd.d", AFGR64Opnd, II_MADD_D, fadd>,
622
- MADDS_FM<4, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_32, MADD4 ;
623
- def MSUB_D32 : MMRel, MADDS_FT<"msub.d", AFGR64Opnd, II_MSUB_D, fsub>,
624
- MADDS_FM<5, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_32, MADD4 ;
625
-
626
- let AdditionalPredicates = [NoNaNsFPMath, HasMadd4] in {
622
+ let AdditionalPredicates = [NotInMicroMips, HasMadd4] in {
623
+ def MADD_D32 : MMRel, MADDS_FT<"madd.d", AFGR64Opnd, II_MADD_D, fadd>,
624
+ MADDS_FM<4, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_32;
625
+ def MSUB_D32 : MMRel, MADDS_FT<"msub.d", AFGR64Opnd, II_MSUB_D, fsub>,
626
+ MADDS_FM<5, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_32;
627
+ }
628
+ let AdditionalPredicates = [NoNaNsFPMath, HasMadd4, NotInMicroMips ] in {
627
629
def NMADD_D32 : MMRel, NMADDS_FT<"nmadd.d", AFGR64Opnd, II_NMADD_D, fadd>,
628
630
MADDS_FM<6, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_32;
629
631
def NMSUB_D32 : MMRel, NMADDS_FT<"nmsub.d", AFGR64Opnd, II_NMSUB_D, fsub>,
630
632
MADDS_FM<7, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_32;
631
633
}
632
-
633
- let DecoderNamespace = "MipsFP64" in {
634
- def MADD_D64 : MADDS_FT<"madd.d", FGR64Opnd, II_MADD_D, fadd>,
635
- MADDS_FM<4, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_64, MADD4 ;
636
- def MSUB_D64 : MADDS_FT<"msub.d", FGR64Opnd, II_MSUB_D, fsub>,
637
- MADDS_FM<5, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_64, MADD4 ;
634
+ let AdditionalPredicates = [NotInMicroMips, HasMadd4, NotInMicroMips],
635
+ DecoderNamespace = "MipsFP64" in {
636
+ def MADD_D64 : MADDS_FT<"madd.d", FGR64Opnd, II_MADD_D, fadd>,
637
+ MADDS_FM<4, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_64;
638
+ def MSUB_D64 : MADDS_FT<"msub.d", FGR64Opnd, II_MSUB_D, fsub>,
639
+ MADDS_FM<5, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_64;
638
640
}
639
-
640
- let AdditionalPredicates = [NoNaNsFPMath, HasMadd4],
641
+ let AdditionalPredicates = [NoNaNsFPMath, HasMadd4, NotInMicroMips],
641
642
DecoderNamespace = "MipsFP64" in {
642
643
def NMADD_D64 : NMADDS_FT<"nmadd.d", FGR64Opnd, II_NMADD_D, fadd>,
643
644
MADDS_FM<6, 1>, INSN_MIPS4_32R2_NOT_32R6_64R6, FGR_64;
0 commit comments