summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/arm/isa/formats/uncond.isa6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/arch/arm/isa/formats/uncond.isa b/src/arch/arm/isa/formats/uncond.isa
index 0aa57a261..f1bfceac1 100644
--- a/src/arch/arm/isa/formats/uncond.isa
+++ b/src/arch/arm/isa/formats/uncond.isa
@@ -235,6 +235,9 @@ def format ArmUnconditional() {{
return new BlxImm(machInst, imm);
}
case 0x2:
+ if (CPNUM == 0xa || CPNUM == 0xb) {
+ return decodeExtensionRegLoadStore(machInst);
+ }
if (bits(op1, 0) == 1) {
if (rn == INTREG_PC) {
if (bits(op1, 4, 3) != 0x0) {
@@ -260,6 +263,9 @@ def format ArmUnconditional() {{
break;
case 0x3:
{
+ if (CPNUM == 0xa || CPNUM == 0xb) {
+ return decodeShortFpTransfer(machInst);
+ }
const bool op = bits(machInst, 4);
if (op) {
if (bits(op1, 0)) {