forked from OSchip/llvm-project
Better error-handling for DisassembleThumb2DPSoReg() where the 3-reg operand
instructions should have Rd (Inst{11-8}) != 0b1111. Ref: A6.3 32-bit Thumb instruction encoding A6.3.11 Data-processing (shifted register) llvm-svn: 101788
This commit is contained in:
parent
47cf5b581a
commit
25df2a75bd
|
@ -1340,12 +1340,15 @@ static bool DisassembleThumb2DPSoReg(MCInst &MI, unsigned Opcode, uint32_t insn,
|
|||
if ((Idx = TID.getOperandConstraint(OpIdx, TOI::TIED_TO)) != -1) {
|
||||
// Process tied_to operand constraint.
|
||||
MI.addOperand(MI.getOperand(Idx));
|
||||
} else {
|
||||
assert(!NoDstReg && "Internal error");
|
||||
++OpIdx;
|
||||
} else if (!NoDstReg) {
|
||||
MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B, ARM::GPRRegClassID,
|
||||
decodeRn(insn))));
|
||||
++OpIdx;
|
||||
} else {
|
||||
DEBUG(errs() << "Thumb encoding error: d==15 for three-reg operands.\n");
|
||||
return false;
|
||||
}
|
||||
++OpIdx;
|
||||
}
|
||||
|
||||
MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B, ARM::GPRRegClassID,
|
||||
|
|
Loading…
Reference in New Issue