Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(578)

Side by Side Diff: src/mips64/constants-mips64.cc

Issue 1356693002: MIPS64: Optimize simulator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix nit. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/mips64/constants-mips64.h ('k') | src/mips64/disasm-mips64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #if V8_TARGET_ARCH_MIPS64 5 #if V8_TARGET_ARCH_MIPS64
6 6
7 #include "src/mips64/constants-mips64.h" 7 #include "src/mips64/constants-mips64.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 case TEQ: 212 case TEQ:
213 case TNE: 213 case TNE:
214 return true; 214 return true;
215 default: 215 default:
216 return false; 216 return false;
217 } 217 }
218 } 218 }
219 } 219 }
220 220
221 221
222 Instruction::Type Instruction::InstructionType() const {
223 switch (OpcodeFieldRaw()) {
224 case SPECIAL:
225 switch (FunctionFieldRaw()) {
226 case JR:
227 case JALR:
228 case BREAK:
229 case SLL:
230 case DSLL:
231 case DSLL32:
232 case SRL:
233 case DSRL:
234 case DSRL32:
235 case SRA:
236 case DSRA:
237 case DSRA32:
238 case SLLV:
239 case DSLLV:
240 case SRLV:
241 case DSRLV:
242 case SRAV:
243 case DSRAV:
244 case MFHI:
245 case MFLO:
246 case MULT:
247 case DMULT:
248 case MULTU:
249 case DMULTU:
250 case DIV:
251 case DDIV:
252 case DIVU:
253 case DDIVU:
254 case ADD:
255 case DADD:
256 case ADDU:
257 case DADDU:
258 case SUB:
259 case DSUB:
260 case SUBU:
261 case DSUBU:
262 case AND:
263 case OR:
264 case XOR:
265 case NOR:
266 case SLT:
267 case SLTU:
268 case TGE:
269 case TGEU:
270 case TLT:
271 case TLTU:
272 case TEQ:
273 case TNE:
274 case MOVZ:
275 case MOVN:
276 case MOVCI:
277 case SELEQZ_S:
278 case SELNEZ_S:
279 return kRegisterType;
280 default:
281 return kUnsupported;
282 }
283 break;
284 case SPECIAL2:
285 switch (FunctionFieldRaw()) {
286 case MUL:
287 case CLZ:
288 return kRegisterType;
289 default:
290 return kUnsupported;
291 }
292 break;
293 case SPECIAL3:
294 switch (FunctionFieldRaw()) {
295 case INS:
296 case EXT:
297 case DEXT:
298 return kRegisterType;
299 case BSHFL: {
300 int sa = SaFieldRaw() >> kSaShift;
301 switch (sa) {
302 case BITSWAP:
303 return kRegisterType;
304 case WSBH:
305 case SEB:
306 case SEH:
307 return kUnsupported;
308 }
309 sa >>= kBp2Bits;
310 switch (sa) {
311 case ALIGN:
312 return kRegisterType;
313 default:
314 return kUnsupported;
315 }
316 }
317 case DBSHFL: {
318 int sa = SaFieldRaw() >> kSaShift;
319 switch (sa) {
320 case DBITSWAP:
321 return kRegisterType;
322 case DSBH:
323 case DSHD:
324 return kUnsupported;
325 }
326 sa = SaFieldRaw() >> kSaShift;
327 sa >>= kBp3Bits;
328 switch (sa) {
329 case DALIGN:
330 return kRegisterType;
331 default:
332 return kUnsupported;
333 }
334 }
335 default:
336 return kUnsupported;
337 }
338 break;
339 case COP1: // Coprocessor instructions.
340 switch (RsFieldRawNoAssert()) {
341 case BC1: // Branch on coprocessor condition.
342 case BC1EQZ:
343 case BC1NEZ:
344 return kImmediateType;
345 default:
346 return kRegisterType;
347 }
348 break;
349 case COP1X:
350 return kRegisterType;
351 // 16 bits Immediate type instructions. e.g.: addi dest, src, imm16.
352 case REGIMM:
353 case BEQ:
354 case BNE:
355 case BLEZ:
356 case BGTZ:
357 case ADDI:
358 case DADDI:
359 case ADDIU:
360 case DADDIU:
361 case SLTI:
362 case SLTIU:
363 case ANDI:
364 case ORI:
365 case XORI:
366 case LUI:
367 case BEQL:
368 case BNEL:
369 case BLEZL:
370 case BGTZL:
371 case POP66:
372 case POP76:
373 case LB:
374 case LH:
375 case LWL:
376 case LW:
377 case LWU:
378 case LD:
379 case LBU:
380 case LHU:
381 case LWR:
382 case SB:
383 case SH:
384 case SWL:
385 case SW:
386 case SD:
387 case SWR:
388 case LWC1:
389 case LDC1:
390 case SWC1:
391 case SDC1:
392 case PCREL:
393 case BC:
394 case BALC:
395 return kImmediateType;
396 // 26 bits immediate type instructions. e.g.: j imm26.
397 case J:
398 case JAL:
399 return kJumpType;
400 default:
401 return kUnsupported;
402 }
403 return kUnsupported;
404 }
405
406
407 } // namespace internal 222 } // namespace internal
408 } // namespace v8 223 } // namespace v8
409 224
410 #endif // V8_TARGET_ARCH_MIPS64 225 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/mips64/constants-mips64.h ('k') | src/mips64/disasm-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698