summaryrefslogtreecommitdiff
path: root/plugins/arm/v7/opdefs/pop_A88132.d
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/arm/v7/opdefs/pop_A88132.d')
-rw-r--r--plugins/arm/v7/opdefs/pop_A88132.d42
1 files changed, 28 insertions, 14 deletions
diff --git a/plugins/arm/v7/opdefs/pop_A88132.d b/plugins/arm/v7/opdefs/pop_A88132.d
index 27bbf3b..276bad4 100644
--- a/plugins/arm/v7/opdefs/pop_A88132.d
+++ b/plugins/arm/v7/opdefs/pop_A88132.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,23 +23,33 @@
@title POP (ARM)
-@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 131
+
+@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 (A1) {
@word cond(4) 1 0 0 0 1 0 1 1 1 1 0 1 register_list(16)
- @syntax <registers>
+ @syntax {
- @conv {
+ @conv {
- registers = RegistersList(register_list)
+ registers = RegList(register_list)
- }
+ }
- @rules {
+ @asm pop registers
- chk_call StoreCondition(cond)
+ @rules {
+
+ check g_arm_instruction_set_cond(cond)
+
+ }
}
@@ -55,17 +65,21 @@
@word cond(4) 0 1 0 0 1 0 0 1 1 1 0 1 Rt(4) 0 0 0 0 0 0 0 0 0 1 0 0
- @syntax <registers>
+ @syntax {
- @conv {
+ @conv {
- registers = RegistersList(1 << Rt)
+ registers = SingleRegList(Rt)
- }
+ }
+
+ @asm pop registers
+
+ @rules {
- @rules {
+ check g_arm_instruction_set_cond(cond)
- chk_call StoreCondition(cond)
+ }
}