mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
Fix decoding of Thumb2 prefetch instructions, which account for all the remaining Thumb2 decoding failures found by randomized testing so far.
llvm-svn: 138341
This commit is contained in:
parent
d449bc9bff
commit
3de2d7656d
@ -2392,9 +2392,15 @@ static DecodeStatus DecodeT2LoadShift(llvm::MCInst &Inst, unsigned Insn,
|
||||
uint64_t Address, const void *Decoder) {
|
||||
DecodeStatus S = Success;
|
||||
|
||||
if (Inst.getOpcode() != ARM::t2PLDs) {
|
||||
unsigned Rt = fieldFromInstruction32(Insn, 12, 4);
|
||||
CHECK(S, DecodeGPRRegisterClass(Inst, Rt, Address, Decoder));
|
||||
switch (Inst.getOpcode()) {
|
||||
case ARM::t2PLDs:
|
||||
case ARM::t2PLDWs:
|
||||
case ARM::t2PLIs:
|
||||
break;
|
||||
default: {
|
||||
unsigned Rt = fieldFromInstruction32(Insn, 12, 4);
|
||||
CHECK(S, DecodeGPRRegisterClass(Inst, Rt, Address, Decoder));
|
||||
}
|
||||
}
|
||||
|
||||
unsigned Rn = fieldFromInstruction32(Insn, 16, 4);
|
||||
|
@ -292,3 +292,6 @@
|
||||
|
||||
# CHECK: uxtb16 r9, r12, ror #16
|
||||
0x3f 0xfa 0xec 0xf9
|
||||
|
||||
# CHECK: pldw [r11, r12, lsl #2]
|
||||
0x3b 0xf8 0x2c 0xf0
|
||||
|
Loading…
Reference in New Issue
Block a user