comparison lib/Target/Mips/MicroMipsInstrFPU.td @ 95:afa8332a0e37 LLVM3.8

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 60c9769439b8
children 7d135dc70f03
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
35 def FCMP_S32_MM : MMRel, CEQS_FT<"s", FGR32, II_C_CC_S, MipsFPCmp>, 35 def FCMP_S32_MM : MMRel, CEQS_FT<"s", FGR32, II_C_CC_S, MipsFPCmp>,
36 CEQS_FM_MM<0>; 36 CEQS_FM_MM<0>;
37 def FCMP_D32_MM : MMRel, CEQS_FT<"d", AFGR64, II_C_CC_D, MipsFPCmp>, 37 def FCMP_D32_MM : MMRel, CEQS_FT<"d", AFGR64, II_C_CC_D, MipsFPCmp>,
38 CEQS_FM_MM<1>; 38 CEQS_FM_MM<1>;
39 39
40 def BC1F_MM : MMRel, BC1F_FT<"bc1f", brtarget_mm, IIBranch, MIPS_BRANCH_F>, 40 def BC1F_MM : MMRel, BC1F_FT<"bc1f", brtarget_mm, II_BC1F, MIPS_BRANCH_F>,
41 BC1F_FM_MM<0x1c>, ISA_MIPS1_NOT_32R6_64R6; 41 BC1F_FM_MM<0x1c>, ISA_MIPS1_NOT_32R6_64R6;
42 def BC1T_MM : MMRel, BC1F_FT<"bc1t", brtarget_mm, IIBranch, MIPS_BRANCH_T>, 42 def BC1T_MM : MMRel, BC1F_FT<"bc1t", brtarget_mm, II_BC1T, MIPS_BRANCH_T>,
43 BC1F_FM_MM<0x1d>, ISA_MIPS1_NOT_32R6_64R6; 43 BC1F_FM_MM<0x1d>, ISA_MIPS1_NOT_32R6_64R6;
44
45 def CEIL_W_S_MM : MMRel, ABSS_FT<"ceil.w.s", FGR32Opnd, FGR32Opnd, II_CEIL>,
46 ROUND_W_FM_MM<0, 0x6c>;
47 def CVT_W_S_MM : MMRel, ABSS_FT<"cvt.w.s", FGR32Opnd, FGR32Opnd, II_CVT>, 44 def CVT_W_S_MM : MMRel, ABSS_FT<"cvt.w.s", FGR32Opnd, FGR32Opnd, II_CVT>,
48 ROUND_W_FM_MM<0, 0x24>; 45 ROUND_W_FM_MM<0, 0x24>;
49 def FLOOR_W_S_MM : MMRel, ABSS_FT<"floor.w.s", FGR32Opnd, FGR32Opnd, II_FLOOR>,
50 ROUND_W_FM_MM<0, 0x2c>;
51 def ROUND_W_S_MM : MMRel, ABSS_FT<"round.w.s", FGR32Opnd, FGR32Opnd, II_ROUND>, 46 def ROUND_W_S_MM : MMRel, ABSS_FT<"round.w.s", FGR32Opnd, FGR32Opnd, II_ROUND>,
52 ROUND_W_FM_MM<0, 0xec>; 47 ROUND_W_FM_MM<0, 0xec>;
53 def TRUNC_W_S_MM : MMRel, ABSS_FT<"trunc.w.s", FGR32Opnd, FGR32Opnd, II_TRUNC>,
54 ROUND_W_FM_MM<0, 0xac>;
55 def FSQRT_S_MM : MMRel, ABSS_FT<"sqrt.s", FGR32Opnd, FGR32Opnd, II_SQRT_S,
56 fsqrt>, ROUND_W_FM_MM<0, 0x28>;
57 48
58 def CEIL_W_MM : MMRel, ABSS_FT<"ceil.w.d", FGR32Opnd, AFGR64Opnd, II_CEIL>, 49 def CEIL_W_MM : MMRel, ABSS_FT<"ceil.w.d", FGR32Opnd, AFGR64Opnd, II_CEIL>,
59 ROUND_W_FM_MM<1, 0x6c>; 50 ROUND_W_FM_MM<1, 0x6c>;
60 def CVT_W_MM : MMRel, ABSS_FT<"cvt.w.d", FGR32Opnd, AFGR64Opnd, II_CVT>, 51 def CVT_W_MM : MMRel, ABSS_FT<"cvt.w.d", FGR32Opnd, AFGR64Opnd, II_CVT>,
61 ROUND_W_FM_MM<1, 0x24>; 52 ROUND_W_FM_MM<1, 0x24>;
93 ABS_FM_MM<1, 0xd>; 84 ABS_FM_MM<1, 0xd>;
94 def FNEG_MM : MMRel, ABSS_FT<"neg.d", AFGR64Opnd, AFGR64Opnd, II_NEG, fneg>, 85 def FNEG_MM : MMRel, ABSS_FT<"neg.d", AFGR64Opnd, AFGR64Opnd, II_NEG, fneg>,
95 ABS_FM_MM<1, 0x2d>; 86 ABS_FM_MM<1, 0x2d>;
96 87
97 def FMOV_D32_MM : MMRel, ABSS_FT<"mov.d", AFGR64Opnd, AFGR64Opnd, II_MOV_D>, 88 def FMOV_D32_MM : MMRel, ABSS_FT<"mov.d", AFGR64Opnd, AFGR64Opnd, II_MOV_D>,
98 ABS_FM_MM<1, 0x1>, AdditionalRequires<[NotFP64bit]>; 89 ABS_FM_MM<1, 0x1>, FGR_32;
99 90
100 def MOVZ_I_S_MM : MMRel, CMov_I_F_FT<"movz.s", GPR32Opnd, FGR32Opnd, 91 def MOVZ_I_S_MM : MMRel, CMov_I_F_FT<"movz.s", GPR32Opnd, FGR32Opnd,
101 II_MOVZ_S>, CMov_I_F_FM_MM<0x78, 0>; 92 II_MOVZ_S>, CMov_I_F_FM_MM<0x78, 0>;
102 def MOVN_I_S_MM : MMRel, CMov_I_F_FT<"movn.s", GPR32Opnd, FGR32Opnd, 93 def MOVN_I_S_MM : MMRel, CMov_I_F_FT<"movn.s", GPR32Opnd, FGR32Opnd,
103 II_MOVN_S>, CMov_I_F_FM_MM<0x38, 0>; 94 II_MOVN_S>, CMov_I_F_FM_MM<0x38, 0>;
122 def MFC1_MM : MMRel, MFC1_FT<"mfc1", GPR32Opnd, FGR32Opnd, 113 def MFC1_MM : MMRel, MFC1_FT<"mfc1", GPR32Opnd, FGR32Opnd,
123 II_MFC1, bitconvert>, MFC1_FM_MM<0x80>; 114 II_MFC1, bitconvert>, MFC1_FM_MM<0x80>;
124 def MTC1_MM : MMRel, MTC1_FT<"mtc1", FGR32Opnd, GPR32Opnd, 115 def MTC1_MM : MMRel, MTC1_FT<"mtc1", FGR32Opnd, GPR32Opnd,
125 II_MTC1, bitconvert>, MFC1_FM_MM<0xa0>; 116 II_MTC1, bitconvert>, MFC1_FM_MM<0xa0>;
126 def MFHC1_MM : MMRel, MFC1_FT<"mfhc1", GPR32Opnd, AFGR64Opnd, II_MFHC1>, 117 def MFHC1_MM : MMRel, MFC1_FT<"mfhc1", GPR32Opnd, AFGR64Opnd, II_MFHC1>,
127 MFC1_FM_MM<0xc0>, ISA_MIPS32R2, AdditionalRequires<[NotFP64bit]>; 118 MFC1_FM_MM<0xc0>, ISA_MIPS32R2, FGR_32;
128 def MTHC1_MM : MMRel, MTC1_64_FT<"mthc1", AFGR64Opnd, GPR32Opnd, II_MTHC1>, 119 def MTHC1_MM : MMRel, MTC1_64_FT<"mthc1", AFGR64Opnd, GPR32Opnd, II_MTHC1>,
129 MFC1_FM_MM<0xe0>, ISA_MIPS32R2, AdditionalRequires<[NotFP64bit]>; 120 MFC1_FM_MM<0xe0>, ISA_MIPS32R2, FGR_32;
130 121
131 def MADD_S_MM : MMRel, MADDS_FT<"madd.s", FGR32Opnd, II_MADD_S, fadd>, 122 def MADD_S_MM : MMRel, MADDS_FT<"madd.s", FGR32Opnd, II_MADD_S, fadd>,
132 MADDS_FM_MM<0x1>; 123 MADDS_FM_MM<0x1>;
133 def MSUB_S_MM : MMRel, MADDS_FT<"msub.s", FGR32Opnd, II_MSUB_S, fsub>, 124 def MSUB_S_MM : MMRel, MADDS_FT<"msub.s", FGR32Opnd, II_MSUB_S, fsub>,
134 MADDS_FM_MM<0x21>; 125 MADDS_FM_MM<0x21>;
144 def NMADD_D32_MM : MMRel, NMADDS_FT<"nmadd.d", AFGR64Opnd, II_NMADD_D, fadd>, 135 def NMADD_D32_MM : MMRel, NMADDS_FT<"nmadd.d", AFGR64Opnd, II_NMADD_D, fadd>,
145 MADDS_FM_MM<0xa>; 136 MADDS_FM_MM<0xa>;
146 def NMSUB_D32_MM : MMRel, NMADDS_FT<"nmsub.d", AFGR64Opnd, II_NMSUB_D, fsub>, 137 def NMSUB_D32_MM : MMRel, NMADDS_FT<"nmsub.d", AFGR64Opnd, II_NMSUB_D, fsub>,
147 MADDS_FM_MM<0x2a>; 138 MADDS_FM_MM<0x2a>;
148 } 139 }
140
141 let AdditionalPredicates = [InMicroMips] in {
142 def FLOOR_W_S_MM : MMRel, ABSS_FT<"floor.w.s", FGR32Opnd, FGR32Opnd,
143 II_FLOOR>, ROUND_W_FM_MM<0, 0x2c>;
144 def TRUNC_W_S_MM : MMRel, StdMMR6Rel, ABSS_FT<"trunc.w.s", FGR32Opnd,
145 FGR32Opnd, II_TRUNC>, ROUND_W_FM_MM<0, 0xac>;
146 def CEIL_W_S_MM : MMRel, ABSS_FT<"ceil.w.s", FGR32Opnd, FGR32Opnd, II_CEIL>,
147 ROUND_W_FM_MM<0, 0x6c>;
148 def FSQRT_S_MM : MMRel, ABSS_FT<"sqrt.s", FGR32Opnd, FGR32Opnd, II_SQRT_S,
149 fsqrt>, ROUND_W_FM_MM<0, 0x28>;
150 }