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

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

Issue 1145223002: MIPS: Add float instructions and test coverage, part two (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comments Created 5 years, 7 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.cc ('k') | src/mips64/simulator-mips64.h » ('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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 // A Disassembler object is used to disassemble a block of code instruction by 5 // A Disassembler object is used to disassemble a block of code instruction by
6 // instruction. The default implementation of the NameConverter object can be 6 // instruction. The default implementation of the NameConverter object can be
7 // overriden to modify register names or to do symbol lookup on addresses. 7 // overriden to modify register names or to do symbol lookup on addresses.
8 // 8 //
9 // The example below will disassemble a block of code and print it to stdout. 9 // The example below will disassemble a block of code and print it to stdout.
10 // 10 //
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 break; 607 break;
608 case FLOOR_L_D: 608 case FLOOR_L_D:
609 Format(instr, "floor.l.'t 'fd, 'fs"); 609 Format(instr, "floor.l.'t 'fd, 'fs");
610 break; 610 break;
611 case CEIL_W_D: 611 case CEIL_W_D:
612 Format(instr, "ceil.w.'t 'fd, 'fs"); 612 Format(instr, "ceil.w.'t 'fd, 'fs");
613 break; 613 break;
614 case CEIL_L_D: 614 case CEIL_L_D:
615 Format(instr, "ceil.l.'t 'fd, 'fs"); 615 Format(instr, "ceil.l.'t 'fd, 'fs");
616 break; 616 break;
617 case CLASS_D:
618 Format(instr, "class.'t 'fd, 'fs");
619 break;
617 case CVT_S_D: 620 case CVT_S_D:
618 Format(instr, "cvt.s.'t 'fd, 'fs"); 621 Format(instr, "cvt.s.'t 'fd, 'fs");
619 break; 622 break;
620 case C_F_D: 623 case C_F_D:
621 Format(instr, "c.f.'t 'fs, 'ft, 'Cc"); 624 Format(instr, "c.f.'t 'fs, 'ft, 'Cc");
622 break; 625 break;
623 case C_UN_D: 626 case C_UN_D:
624 Format(instr, "c.un.'t 'fs, 'ft, 'Cc"); 627 Format(instr, "c.un.'t 'fs, 'ft, 'Cc");
625 break; 628 break;
626 case C_EQ_D: 629 case C_EQ_D:
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 673
671 674
672 void Decoder::DecodeTypeRegisterLRsType(Instruction* instr) { 675 void Decoder::DecodeTypeRegisterLRsType(Instruction* instr) {
673 switch (instr->FunctionFieldRaw()) { 676 switch (instr->FunctionFieldRaw()) {
674 case CVT_D_L: 677 case CVT_D_L:
675 Format(instr, "cvt.d.l 'fd, 'fs"); 678 Format(instr, "cvt.d.l 'fd, 'fs");
676 break; 679 break;
677 case CVT_S_L: 680 case CVT_S_L:
678 Format(instr, "cvt.s.l 'fd, 'fs"); 681 Format(instr, "cvt.s.l 'fd, 'fs");
679 break; 682 break;
683 case CMP_AF:
684 Format(instr, "cmp.af.d 'fd, 'fs, 'ft");
685 break;
680 case CMP_UN: 686 case CMP_UN:
681 Format(instr, "cmp.un.d 'fd, 'fs, 'ft"); 687 Format(instr, "cmp.un.d 'fd, 'fs, 'ft");
682 break; 688 break;
683 case CMP_EQ: 689 case CMP_EQ:
684 Format(instr, "cmp.eq.d 'fd, 'fs, 'ft"); 690 Format(instr, "cmp.eq.d 'fd, 'fs, 'ft");
685 break; 691 break;
686 case CMP_UEQ: 692 case CMP_UEQ:
687 Format(instr, "cmp.ueq.d 'fd, 'fs, 'ft"); 693 Format(instr, "cmp.ueq.d 'fd, 'fs, 'ft");
688 break; 694 break;
689 case CMP_LT: 695 case CMP_LT:
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 break; 1128 break;
1123 } 1129 }
1124 case EXT: { 1130 case EXT: {
1125 Format(instr, "ext 'rt, 'rs, 'sa, 'ss1"); 1131 Format(instr, "ext 'rt, 'rs, 'sa, 'ss1");
1126 break; 1132 break;
1127 } 1133 }
1128 case DEXT: { 1134 case DEXT: {
1129 Format(instr, "dext 'rt, 'rs, 'sa, 'ss1"); 1135 Format(instr, "dext 'rt, 'rs, 'sa, 'ss1");
1130 break; 1136 break;
1131 } 1137 }
1138 case BITSWAP: {
1139 Format(instr, "bitswap 'rd, 'rt");
1140 break;
1141 }
1142 case DBITSWAP: {
1143 switch (instr->SaFieldRaw()) {
1144 case DBITSWAP_SA:
1145 Format(instr, "dbitswap 'rd, 'rt");
1146 break;
1147 default:
1148 UNREACHABLE();
1149 }
1150 break;
1151 }
1132 default: 1152 default:
1133 UNREACHABLE(); 1153 UNREACHABLE();
1134 } 1154 }
1135 } 1155 }
1136 1156
1137 1157
1138 int Decoder::DecodeTypeRegister(Instruction* instr) { 1158 int Decoder::DecodeTypeRegister(Instruction* instr) {
1139 switch (instr->OpcodeFieldRaw()) { 1159 switch (instr->OpcodeFieldRaw()) {
1140 case COP1: // Coprocessor instructions. 1160 case COP1: // Coprocessor instructions.
1141 DecodeTypeRegisterCOP1(instr); 1161 DecodeTypeRegisterCOP1(instr);
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start()); 1583 prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
1564 } 1584 }
1565 } 1585 }
1566 1586
1567 1587
1568 #undef UNSUPPORTED 1588 #undef UNSUPPORTED
1569 1589
1570 } // namespace disasm 1590 } // namespace disasm
1571 1591
1572 #endif // V8_TARGET_ARCH_MIPS64 1592 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/mips64/constants-mips64.cc ('k') | src/mips64/simulator-mips64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698