Index: src/ppc/disasm-ppc.cc |
diff --git a/src/ppc/disasm-ppc.cc b/src/ppc/disasm-ppc.cc |
index cc487ac86d8e5a7154f397e146c00e53917a5a35..eb2064faf2f6bc6bfbcd48ae50a00b47291dd61f 100644 |
--- a/src/ppc/disasm-ppc.cc |
+++ b/src/ppc/disasm-ppc.cc |
@@ -78,6 +78,7 @@ class Decoder { |
void DecodeExt1(Instruction* instr); |
void DecodeExt2(Instruction* instr); |
+ void DecodeExt3(Instruction* instr); |
void DecodeExt4(Instruction* instr); |
void DecodeExt5(Instruction* instr); |
@@ -876,6 +877,19 @@ void Decoder::DecodeExt2(Instruction* instr) { |
} |
+void Decoder::DecodeExt3(Instruction* instr) { |
+ switch (instr->Bits(10, 1) << 1) { |
+ case FCFID: { |
+ Format(instr, "fcfids'. 'Dt, 'Db"); |
+ break; |
+ } |
+ default: { |
+ Unknown(instr); // not used by V8 |
+ } |
+ } |
+} |
+ |
+ |
void Decoder::DecodeExt4(Instruction* instr) { |
switch (instr->Bits(5, 1) << 1) { |
case FDIV: { |
@@ -1293,7 +1307,10 @@ int Decoder::InstructionDecode(byte* instr_ptr) { |
Format(instr, "stfdu 'Dt, 'int16('ra)"); |
break; |
} |
- case EXT3: |
+ case EXT3: { |
+ DecodeExt3(instr); |
+ break; |
+ } |
case EXT4: { |
DecodeExt4(instr); |
break; |