| OLD | NEW | 
|---|
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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 | 
| OLD | NEW | 
|---|