mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
The Thumb2 RFE instructions need to have their second halfword fully specified.
In addition, the base register is not rGPR, but GPR with th exception that: if n == 15 then UNPREDICTABLE rdar://problem/9273836 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129391 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1142,8 +1142,12 @@ static bool DisassembleThumb2SRS(MCInst &MI, unsigned Opcode, uint32_t insn,
|
||||
// t2RFE[IA|DB]W/t2RFE[IA|DB]: Rn
|
||||
static bool DisassembleThumb2RFE(MCInst &MI, unsigned Opcode, uint32_t insn,
|
||||
unsigned short NumOps, unsigned &NumOpsAdded, BO B) {
|
||||
MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B, ARM::GPRRegClassID,
|
||||
decodeRn(insn))));
|
||||
unsigned Rn = decodeRn(insn);
|
||||
if (Rn == 15) {
|
||||
DEBUG(errs() << "if n == 15 then UNPREDICTABLE\n");
|
||||
return false;
|
||||
}
|
||||
MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B,ARM::GPRRegClassID,Rn)));
|
||||
NumOpsAdded = 1;
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user