| Index: src/arm/disasm-arm.cc
|
| diff --git a/src/arm/disasm-arm.cc b/src/arm/disasm-arm.cc
|
| index a3775b5fca48ba257bcbb9aa1d66f2ca0cf6f117..d4bd81ce464c9c5a7576f6a18f24a94e02cc41ba 100644
|
| --- a/src/arm/disasm-arm.cc
|
| +++ b/src/arm/disasm-arm.cc
|
| @@ -502,13 +502,16 @@ int Decoder::FormatOption(Instruction* instr, const char* format) {
|
| ASSERT(STRING_STARTS_WITH(format, "memop"));
|
| if (instr->HasL()) {
|
| Print("ldr");
|
| - } else if ((instr->Bits(27, 25) == 0) && (instr->Bit(20) == 0)) {
|
| - if (instr->Bits(7, 4) == 0xf) {
|
| - Print("strd");
|
| - } else {
|
| - Print("ldrd");
|
| - }
|
| } else {
|
| + if ((instr->Bits(27, 25) == 0) && (instr->Bit(20) == 0) &&
|
| + (instr->Bits(7, 6) == 3) && (instr->Bit(4) == 1)) {
|
| + if (instr->Bit(5) == 1) {
|
| + Print("strd");
|
| + } else {
|
| + Print("ldrd");
|
| + }
|
| + return 5;
|
| + }
|
| Print("str");
|
| }
|
| return 5;
|
| @@ -1086,10 +1089,10 @@ void Decoder::DecodeTypeVFP(Instruction* instr) {
|
| }
|
| } else if ((instr->Opc2Value() == 0x0) && (instr->Opc3Value() == 0x3)) {
|
| // vabs
|
| - Format(instr, "vabs'cond 'Dd, 'Dm");
|
| + Format(instr, "vabs.f64'cond 'Dd, 'Dm");
|
| } else if ((instr->Opc2Value() == 0x1) && (instr->Opc3Value() == 0x1)) {
|
| // vneg
|
| - Format(instr, "vneg'cond 'Dd, 'Dm");
|
| + Format(instr, "vneg.f64'cond 'Dd, 'Dm");
|
| } else if ((instr->Opc2Value() == 0x7) && (instr->Opc3Value() == 0x3)) {
|
| DecodeVCVTBetweenDoubleAndSingle(instr);
|
| } else if ((instr->Opc2Value() == 0x8) && (instr->Opc3Value() & 0x1)) {
|
|
|