summaryrefslogtreecommitdiff
path: root/Debugger/debug_macros.h
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-07-01 12:09:21 +0800
committerTat-Chee Wan (USM)2011-07-01 12:09:21 +0800
commit80a5686b41b09b05219fe87def8fc74beecec774 (patch)
tree43c2d5d2554fa50024b11e533329431217bb5808 /Debugger/debug_macros.h
parentf68750cddf5754e527278f56e472757671fc6869 (diff)
simple code optimization
Reduced the number of instructions needed to access User Stack Registers by defining more compact macros for immediate access needs.
Diffstat (limited to 'Debugger/debug_macros.h')
-rw-r--r--Debugger/debug_macros.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/Debugger/debug_macros.h b/Debugger/debug_macros.h
index 75d6299..7932d97 100644
--- a/Debugger/debug_macros.h
+++ b/Debugger/debug_macros.h
@@ -281,6 +281,34 @@
str \contentsreg, [\addressreg, \indexreg, lsl #2]
.endm
+/* _getdbgregister
+ * Retrieve register contents from debugger stack given immediate index value
+ *
+ * On entry:
+ * indexval contains debugger stack index value (0-max index)
+ * On exit:
+ * contentsreg: Register Contents for given index
+ */
+ .macro _getdbgregister indexval, contentsreg
+ ldr \contentsreg, =__debugger_stack_bottom__
+ ldr \contentsreg, [\contentsreg, #(\indexval << 2)]
+ .endm
+
+/* _setdbgregister
+ * Store register contents to debugger stack given immediate index value
+ *
+ * On entry:
+ * indexval contains debugger stack index value (0-max index)
+ * contentsreg: Register Contents for given index
+ * addressreg: Scratch register for address pointer
+ * On exit:
+ * contentsreg: Register Contents for given index
+ * addressreg: Destroyed
+ */
+ .macro _setdbgregister indexval, contentsreg, addressreg
+ ldr \addressreg, =__debugger_stack_bottom__
+ str \contentsreg, [\addressreg, #(\indexval << 2)]
+ .endm
/* _index2bkptindex_addr
* Convert Breakpoint index to breakpoing entry address