Index: src/mips/disasm-mips.cc |
diff --git a/src/mips/disasm-mips.cc b/src/mips/disasm-mips.cc |
index 1d40c2c8204921fd191ec5aaab3198cbc4475a68..333ad15022700234aa76e6f4dc90ba3ce36165bd 100644 |
--- a/src/mips/disasm-mips.cc |
+++ b/src/mips/disasm-mips.cc |
@@ -350,6 +350,10 @@ int Decoder::FormatFPURegister(Instruction* instr, const char* format) { |
int reg = instr->FdValue(); |
PrintFPURegister(reg); |
return 2; |
+ } else if (format[1] == 'r') { // 'fr: fr register. |
+ int reg = instr->FrValue(); |
+ PrintFPURegister(reg); |
+ return 2; |
} |
UNREACHABLE(); |
return -1; |
@@ -618,6 +622,15 @@ void Decoder::DecodeTypeRegister(Instruction* instr) { |
UNREACHABLE(); |
} |
break; |
+ case COP1X: |
+ switch (instr->FunctionFieldRaw()) { |
+ case MADD_D: |
+ Format(instr, "madd.d 'fd, 'fr, 'fs, 'ft"); |
+ break; |
+ default: |
+ UNREACHABLE(); |
+ }; |
+ break; |
case SPECIAL: |
switch (instr->FunctionFieldRaw()) { |
case JR: |