mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
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
ede59ecfbb
commit
b386de1758
@ -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
Block a user