OLD | NEW |
1 //===- subzero/src/IceAssemblerMIPS32.h - Assembler for MIPS ----*- C++ -*-===// | 1 //===- subzero/src/IceAssemblerMIPS32.h - Assembler for MIPS ----*- C++ -*-===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 | 65 |
66 void emitFtRsImm16(IValueT Opcode, const Operand *OpFt, const Operand *OpRs, | 66 void emitFtRsImm16(IValueT Opcode, const Operand *OpFt, const Operand *OpRs, |
67 uint32_t Imm, const char *InsnName); | 67 uint32_t Imm, const char *InsnName); |
68 | 68 |
69 void emitRdRtSa(IValueT Opcode, const Operand *OpRd, const Operand *OpRt, | 69 void emitRdRtSa(IValueT Opcode, const Operand *OpRd, const Operand *OpRt, |
70 uint32_t Sa, const char *InsnName); | 70 uint32_t Sa, const char *InsnName); |
71 | 71 |
72 void emitRdRsRt(IValueT Opcode, const Operand *OpRd, const Operand *OpRs, | 72 void emitRdRsRt(IValueT Opcode, const Operand *OpRd, const Operand *OpRs, |
73 const Operand *OpRt, const char *InsnName); | 73 const Operand *OpRt, const char *InsnName); |
74 | 74 |
| 75 void emitCOP1Fcmp(IValueT Opcode, FPInstDataFormat Format, |
| 76 const Operand *OpFs, const Operand *OpFt, IValueT CC, |
| 77 const char *InsnName); |
| 78 |
75 void emitCOP1FmtFsFd(IValueT Opcode, FPInstDataFormat Format, | 79 void emitCOP1FmtFsFd(IValueT Opcode, FPInstDataFormat Format, |
76 const Operand *OpFd, const Operand *OpFs, | 80 const Operand *OpFd, const Operand *OpFs, |
77 const char *InsnName); | 81 const char *InsnName); |
78 | 82 |
79 void emitCOP1FmtFtFsFd(IValueT Opcode, FPInstDataFormat Format, | 83 void emitCOP1FmtFtFsFd(IValueT Opcode, FPInstDataFormat Format, |
80 const Operand *OpFd, const Operand *OpFs, | 84 const Operand *OpFd, const Operand *OpFs, |
81 const Operand *OpFt, const char *InsnName); | 85 const Operand *OpFt, const char *InsnName); |
82 | 86 |
83 void emitCOP1FmtRtFsFd(IValueT Opcode, FPInstDataFormat Format, | 87 void emitCOP1FmtRtFsFd(IValueT Opcode, FPInstDataFormat Format, |
84 const Operand *OpFd, const Operand *OpFs, | 88 const Operand *OpFd, const Operand *OpFs, |
(...skipping 16 matching lines...) Expand all Loading... |
101 void addu(const Operand *OpRd, const Operand *OpRs, const Operand *OpRt); | 105 void addu(const Operand *OpRd, const Operand *OpRs, const Operand *OpRt); |
102 | 106 |
103 void addiu(const Operand *OpRt, const Operand *OpRs, const uint32_t Imm); | 107 void addiu(const Operand *OpRt, const Operand *OpRs, const uint32_t Imm); |
104 | 108 |
105 void and_(const Operand *OpRd, const Operand *OpRs, const Operand *OpRt); | 109 void and_(const Operand *OpRd, const Operand *OpRs, const Operand *OpRt); |
106 | 110 |
107 void andi(const Operand *OpRt, const Operand *OpRs, const uint32_t Imm); | 111 void andi(const Operand *OpRt, const Operand *OpRs, const uint32_t Imm); |
108 | 112 |
109 void b(Label *TargetLabel); | 113 void b(Label *TargetLabel); |
110 | 114 |
| 115 void c_eq_d(const Operand *OpFd, const Operand *OpFs); |
| 116 |
| 117 void c_eq_s(const Operand *OpFd, const Operand *OpFs); |
| 118 |
| 119 void c_ole_d(const Operand *OpFd, const Operand *OpFs); |
| 120 |
| 121 void c_ole_s(const Operand *OpFd, const Operand *OpFs); |
| 122 |
| 123 void c_olt_d(const Operand *OpFd, const Operand *OpFs); |
| 124 |
| 125 void c_olt_s(const Operand *OpFd, const Operand *OpFs); |
| 126 |
| 127 void c_ueq_d(const Operand *OpFd, const Operand *OpFs); |
| 128 |
| 129 void c_ueq_s(const Operand *OpFd, const Operand *OpFs); |
| 130 |
| 131 void c_ule_d(const Operand *OpFd, const Operand *OpFs); |
| 132 |
| 133 void c_ule_s(const Operand *OpFd, const Operand *OpFs); |
| 134 |
| 135 void c_ult_d(const Operand *OpFd, const Operand *OpFs); |
| 136 |
| 137 void c_ult_s(const Operand *OpFd, const Operand *OpFs); |
| 138 |
| 139 void c_un_d(const Operand *OpFd, const Operand *OpFs); |
| 140 |
| 141 void c_un_s(const Operand *OpFd, const Operand *OpFs); |
| 142 |
111 void cvt_d_l(const Operand *OpFd, const Operand *OpFs); | 143 void cvt_d_l(const Operand *OpFd, const Operand *OpFs); |
112 | 144 |
113 void cvt_d_s(const Operand *OpFd, const Operand *OpFs); | 145 void cvt_d_s(const Operand *OpFd, const Operand *OpFs); |
114 | 146 |
115 void cvt_d_w(const Operand *OpFd, const Operand *OpFs); | 147 void cvt_d_w(const Operand *OpFd, const Operand *OpFs); |
116 | 148 |
117 void cvt_s_d(const Operand *OpFd, const Operand *OpFs); | 149 void cvt_s_d(const Operand *OpFd, const Operand *OpFs); |
118 | 150 |
119 void cvt_s_l(const Operand *OpFd, const Operand *OpFs); | 151 void cvt_s_l(const Operand *OpFd, const Operand *OpFs); |
120 | 152 |
121 void cvt_s_w(const Operand *OpFd, const Operand *OpFs); | 153 void cvt_s_w(const Operand *OpFd, const Operand *OpFs); |
122 | 154 |
123 void div_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 155 void div_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
124 | 156 |
125 void div_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 157 void div_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
126 | 158 |
127 void lw(const Operand *OpRt, const Operand *OpBase, const uint32_t Offset); | 159 void lw(const Operand *OpRt, const Operand *OpBase, const uint32_t Offset); |
128 | 160 |
129 void mfc1(const Operand *OpRt, const Operand *OpFs); | 161 void mfc1(const Operand *OpRt, const Operand *OpFs); |
130 | 162 |
131 void mov_d(const Operand *OpFd, const Operand *OpFs); | 163 void mov_d(const Operand *OpFd, const Operand *OpFs); |
132 | 164 |
133 void mov_s(const Operand *OpFd, const Operand *OpFs); | 165 void mov_s(const Operand *OpFd, const Operand *OpFs); |
134 | 166 |
135 void move(const Operand *OpRd, const Operand *OpRs); | 167 void move(const Operand *OpRd, const Operand *OpRs); |
136 | 168 |
| 169 void movf(const Operand *OpRd, const Operand *OpRs, const Operand *OpCc); |
| 170 |
137 void movn_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 171 void movn_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
138 | 172 |
139 void movn_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 173 void movn_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
140 | 174 |
| 175 void movt(const Operand *OpRd, const Operand *OpRs, const Operand *OpCc); |
| 176 |
141 void movz_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 177 void movz_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
142 | 178 |
143 void movz_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 179 void movz_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
144 | 180 |
145 void mtc1(const Operand *OpRt, const Operand *OpFs); | 181 void mtc1(const Operand *OpRt, const Operand *OpFs); |
146 | 182 |
147 void mul_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 183 void mul_d(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
148 | 184 |
149 void mul_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); | 185 void mul_s(const Operand *OpFd, const Operand *OpFs, const Operand *OpFt); |
150 | 186 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 void emitInst(IValueT Value) { | 294 void emitInst(IValueT Value) { |
259 AssemblerBuffer::EnsureCapacity _(&Buffer); | 295 AssemblerBuffer::EnsureCapacity _(&Buffer); |
260 Buffer.emit<IValueT>(Value); | 296 Buffer.emit<IValueT>(Value); |
261 } | 297 } |
262 }; | 298 }; |
263 | 299 |
264 } // end of namespace MIPS32 | 300 } // end of namespace MIPS32 |
265 } // end of namespace Ice | 301 } // end of namespace Ice |
266 | 302 |
267 #endif // SUBZERO_SRC_ICEASSEMBLERMIPS32_H | 303 #endif // SUBZERO_SRC_ICEASSEMBLERMIPS32_H |
OLD | NEW |