summaryrefslogtreecommitdiff
path: root/plugins/arm/v7/opdefs/pop_A88131.d
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/arm/v7/opdefs/pop_A88131.d')
-rw-r--r--plugins/arm/v7/opdefs/pop_A88131.d40
1 files changed, 29 insertions, 11 deletions
diff --git a/plugins/arm/v7/opdefs/pop_A88131.d b/plugins/arm/v7/opdefs/pop_A88131.d
index 2dee09a..1169729 100644
--- a/plugins/arm/v7/opdefs/pop_A88131.d
+++ b/plugins/arm/v7/opdefs/pop_A88131.d
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* ##FILE## - traduction d'instructions ARMv7
*
- * Copyright (C) 2015 Cyrille Bagard
+ * Copyright (C) 2017 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -23,17 +23,27 @@
@title POP (Thumb)
-@desc Pop Multiple Registers loads multiple registers from the stack, loading from consecutive memory locations starting at the address in SP, and updates SP to point just above the loaded data.
+@id 130
+
+@desc {
+
+ Pop Multiple Registers loads multiple registers from the stack, loading from consecutive memory locations starting at the address in SP, and updates SP to point just above the loaded data.
+
+}
@encoding (t1) {
@half 1 0 1 1 1 1 0 P(1) register_list(8)
- @syntax <registers>
+ @syntax {
+
+ @conv {
- @conv {
+ registers = RegList(P:'0000000':register_list)
- registers = RegistersList(P:'0000000':register_list)
+ }
+
+ @asm pop registers
}
@@ -49,11 +59,15 @@
@word 1 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 P(1) M(1) 0 register_list(13)
- @syntax ".W" <registers>
+ @syntax {
+
+ @conv {
+
+ registers = RegList(P:M:'0':register_list)
- @conv {
+ }
- registers = RegistersList(P:M:'0':register_list)
+ @asm pop.w registers
}
@@ -69,11 +83,15 @@
@word 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 Rt(4) 1 0 1 1 0 0 0 0 0 1 0 0
- @syntax ".W" <registers>
+ @syntax {
+
+ @conv {
+
+ registers = SingleRegList(Rt)
- @conv {
+ }
- registers = RegistersList(1 << Rt)
+ @asm pop.w registers
}