OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/disassembler.h" | 5 #include "vm/disassembler.h" |
6 | 6 |
7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. | 7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. |
8 #if defined(TARGET_ARCH_MIPS) | 8 #if defined(TARGET_ARCH_MIPS) |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 | 10 |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 break; | 322 break; |
323 } | 323 } |
324 case MFHI: { | 324 case MFHI: { |
325 Format(instr, "mfhi 'rd"); | 325 Format(instr, "mfhi 'rd"); |
326 break; | 326 break; |
327 } | 327 } |
328 case MFLO: { | 328 case MFLO: { |
329 Format(instr, "mflo 'rd"); | 329 Format(instr, "mflo 'rd"); |
330 break; | 330 break; |
331 } | 331 } |
| 332 case MOVCI: { |
| 333 if (instr->Bit(16)) { |
| 334 Format(instr, "movt 'rd, 'rs"); |
| 335 } else { |
| 336 Format(instr, "movf 'rd, 'rs"); |
| 337 } |
| 338 break; |
| 339 } |
332 case MOVN: { | 340 case MOVN: { |
333 Format(instr, "movn 'rd, 'rs, 'rt"); | 341 Format(instr, "movn 'rd, 'rs, 'rt"); |
334 break; | 342 break; |
335 } | 343 } |
336 case MOVZ: { | 344 case MOVZ: { |
337 Format(instr, "movz 'rd, 'rs, 'rt"); | 345 Format(instr, "movz 'rd, 'rs, 'rt"); |
338 break; | 346 break; |
339 } | 347 } |
340 case MTHI: { | 348 case MTHI: { |
341 Format(instr, "mthi 'rs"); | 349 Format(instr, "mthi 'rs"); |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 } | 524 } |
517 case COP1_SQRT: { | 525 case COP1_SQRT: { |
518 Format(instr, "sqrt.'fmt 'fd, 'fs"); | 526 Format(instr, "sqrt.'fmt 'fd, 'fs"); |
519 break; | 527 break; |
520 } | 528 } |
521 case COP1_MOV: { | 529 case COP1_MOV: { |
522 Format(instr, "mov.'fmt 'fd, 'fs"); | 530 Format(instr, "mov.'fmt 'fd, 'fs"); |
523 break; | 531 break; |
524 } | 532 } |
525 case COP1_C_F: { | 533 case COP1_C_F: { |
526 Format(instr, "c.f.'fmt 'fd, 'fs"); | 534 Format(instr, "c.f.'fmt 'fs, 'ft"); |
527 break; | 535 break; |
528 } | 536 } |
529 case COP1_C_UN: { | 537 case COP1_C_UN: { |
530 Format(instr, "c.un.'fmt 'fd, 'fs"); | 538 Format(instr, "c.un.'fmt 'fs, 'ft"); |
531 break; | 539 break; |
532 } | 540 } |
533 case COP1_C_EQ: { | 541 case COP1_C_EQ: { |
534 Format(instr, "c.eq.'fmt 'fd, 'fs"); | 542 Format(instr, "c.eq.'fmt 'fs, 'ft"); |
535 break; | 543 break; |
536 } | 544 } |
537 case COP1_C_UEQ: { | 545 case COP1_C_UEQ: { |
538 Format(instr, "c.ueq.'fmt 'fd, 'fs"); | 546 Format(instr, "c.ueq.'fmt 'fs, 'ft"); |
539 break; | 547 break; |
540 } | 548 } |
541 case COP1_C_OLT: { | 549 case COP1_C_OLT: { |
542 Format(instr, "c.olt.'fmt 'fd, 'fs"); | 550 Format(instr, "c.olt.'fmt 'fs, 'ft"); |
543 break; | 551 break; |
544 } | 552 } |
545 case COP1_C_ULT: { | 553 case COP1_C_ULT: { |
546 Format(instr, "c.ult.'fmt 'fd, 'fs"); | 554 Format(instr, "c.ult.'fmt 'fs, 'ft"); |
547 break; | 555 break; |
548 } | 556 } |
549 case COP1_C_OLE: { | 557 case COP1_C_OLE: { |
550 Format(instr, "c.ole.'fmt 'fd, 'fs"); | 558 Format(instr, "c.ole.'fmt 'fs, 'ft"); |
551 break; | 559 break; |
552 } | 560 } |
553 case COP1_C_ULE: { | 561 case COP1_C_ULE: { |
554 Format(instr, "c.ule.'fmt 'fd, 'fs"); | 562 Format(instr, "c.ule.'fmt 'fs, 'ft"); |
555 break; | 563 break; |
556 } | 564 } |
557 case COP1_CVT_D: { | 565 case COP1_CVT_D: { |
558 Format(instr, "cvt.d.'fmt 'fd, 'fs"); | 566 Format(instr, "cvt.d.'fmt 'fd, 'fs"); |
559 break; | 567 break; |
560 } | 568 } |
561 case COP1_CVT_W: { | 569 case COP1_CVT_W: { |
562 Format(instr, "cvt.w.'fmt 'fd, 'fs"); | 570 Format(instr, "cvt.w.'fmt 'fd, 'fs"); |
563 break; | 571 break; |
564 } | 572 } |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 pc); | 788 pc); |
781 pc += instruction_length; | 789 pc += instruction_length; |
782 } | 790 } |
783 | 791 |
784 return; | 792 return; |
785 } | 793 } |
786 | 794 |
787 } // namespace dart | 795 } // namespace dart |
788 | 796 |
789 #endif // defined TARGET_ARCH_MIPS | 797 #endif // defined TARGET_ARCH_MIPS |
OLD | NEW |