ARM: Decode the 16 bit thumb versions of the REV* instructions.
This commit is contained in:
parent
15356af288
commit
f19b605aed
1 changed files with 13 additions and 9 deletions
|
@ -649,15 +649,19 @@ def format Thumb16Misc() {{
|
|||
(bits(machInst, 7, 3) << 1),
|
||||
(IntRegIndex)(uint32_t)bits(machInst, 2, 0));
|
||||
case 0xa:
|
||||
switch (bits(machInst, 7, 5)) {
|
||||
case 0x0:
|
||||
return new WarnUnimplemented("rev", machInst);
|
||||
case 0x1:
|
||||
return new WarnUnimplemented("rev16", machInst);
|
||||
case 0x3:
|
||||
return new WarnUnimplemented("revsh", machInst);
|
||||
default:
|
||||
break;
|
||||
{
|
||||
IntRegIndex rd = (IntRegIndex)(uint32_t)bits(machInst, 2, 0);
|
||||
IntRegIndex rm = (IntRegIndex)(uint32_t)bits(machInst, 5, 3);
|
||||
switch (bits(machInst, 7, 6)) {
|
||||
case 0x0:
|
||||
return new Rev(machInst, rd, rm);
|
||||
case 0x1:
|
||||
return new Rev16(machInst, rd, rm);
|
||||
case 0x3:
|
||||
return new Revsh(machInst, rd, rm);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0xb:
|
||||
|
|
Loading…
Reference in a new issue