aboutsummaryrefslogtreecommitdiff
path: root/Debugger/abort_handler.S
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2012-09-05 14:12:13 +0800
committerTat-Chee Wan (USM)2012-09-05 14:12:13 +0800
commitaa0778c0d89f9f0722428e419866ff3aedf06bf2 (patch)
tree5aa23e5535fffa4868c4566626abd03c9d23b7b1 /Debugger/abort_handler.S
parentcf42b7bf19c5439adaeda8c36bab0893a9e83eed (diff)
updated arm function label declarations to use .type directive for interworking
Newer binutils (>2.21) does not handle interworking correctly if the .type directive is not used for ARM functions. The fix is to add a private copy of the arm_interwork macro to the debugger stub to avoid this issue when calling ARM routines from Thumb (used by NIF).
Diffstat (limited to 'Debugger/abort_handler.S')
-rw-r--r--Debugger/abort_handler.S6
1 files changed, 2 insertions, 4 deletions
diff --git a/Debugger/abort_handler.S b/Debugger/abort_handler.S
index f4d1bd0..dab25d1 100644
--- a/Debugger/abort_handler.S
+++ b/Debugger/abort_handler.S
@@ -55,10 +55,8 @@
.extern default_prefetch_abort_handler
.extern default_data_abort_handler
- .global prefetch_abort_handler
- .global data_abort_handler
-prefetch_abort_handler:
+ dbg_interwork prefetch_abort_handler
ldr sp, =__debugger_stack__
stmfd sp, {r0-r15}^ /* Save workspace, previous mode's pc via 'S' flag, R13-R15: placeholders */
mov r2, #PREFETCH_OFFSET
@@ -66,7 +64,7 @@ prefetch_abort_handler:
mov r5, #DBG_ABORT_PREFETCH /* Debugger Abort Type */
b _common_abort_handler
-data_abort_handler:
+ dbg_interwork data_abort_handler
ldr sp, =__debugger_stack__
stmfd sp, {r0-r15}^ /* Save workspace, previous mode's pc via 'S' flag, R13-R15: placeholders */
mov r2, #DATA_OFFSET