From 80a5686b41b09b05219fe87def8fc74beecec774 Mon Sep 17 00:00:00 2001 From: Tat-Chee Wan (USM) Date: Fri, 1 Jul 2011 12:09:21 +0800 Subject: simple code optimization Reduced the number of instructions needed to access User Stack Registers by defining more compact macros for immediate access needs.--- Debugger/debug_macros.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'Debugger/debug_macros.h') 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 -- cgit v1.2.3