summaryrefslogtreecommitdiff
path: root/src/arch/arm/v7/opdefs
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-10-16 09:16:30 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-10-16 09:16:30 (GMT)
commit570ae6b84ad1a17835da538ec3be9cf200cd1ebc (patch)
tree2f54ff9c5fb81efe97459e5c24cb8ff6449802e9 /src/arch/arm/v7/opdefs
parent1aac673d39180b661f6a2dc5ff6335a1cfa0b0a7 (diff)
Marked ARMv7 instructions which pop the PC register as return points.
Diffstat (limited to 'src/arch/arm/v7/opdefs')
-rw-r--r--src/arch/arm/v7/opdefs/pop_A88131.d20
-rw-r--r--src/arch/arm/v7/opdefs/pop_A88132.d14
2 files changed, 32 insertions, 2 deletions
diff --git a/src/arch/arm/v7/opdefs/pop_A88131.d b/src/arch/arm/v7/opdefs/pop_A88131.d
index 7de7ee4..2dee09a 100644
--- a/src/arch/arm/v7/opdefs/pop_A88131.d
+++ b/src/arch/arm/v7/opdefs/pop_A88131.d
@@ -37,6 +37,12 @@
}
+ @hooks {
+
+ link = handle_armv7_return_from_pop
+
+ }
+
}
@encoding (T2) {
@@ -51,6 +57,12 @@
}
+ @hooks {
+
+ link = handle_armv7_return_from_pop
+
+ }
+
}
@encoding (T3) {
@@ -61,7 +73,13 @@
@conv {
- registers = Zeros(16)
+ registers = RegistersList(1 << Rt)
+
+ }
+
+ @hooks {
+
+ link = handle_armv7_return_from_pop
}
diff --git a/src/arch/arm/v7/opdefs/pop_A88132.d b/src/arch/arm/v7/opdefs/pop_A88132.d
index 692aecb..27bbf3b 100644
--- a/src/arch/arm/v7/opdefs/pop_A88132.d
+++ b/src/arch/arm/v7/opdefs/pop_A88132.d
@@ -43,6 +43,12 @@
}
+ @hooks {
+
+ link = handle_armv7_return_from_pop
+
+ }
+
}
@encoding (A2) {
@@ -53,7 +59,7 @@
@conv {
- registers = Zeros(16)
+ registers = RegistersList(1 << Rt)
}
@@ -63,5 +69,11 @@
}
+ @hooks {
+
+ link = handle_armv7_return_from_pop
+
+ }
+
}