reactos/sdk/lib/rtl/arm/debug_asm.S

82 lines
1.8 KiB
ArmAsm

/*
* PROJECT: ReactOS Kernel
* LICENSE: BSD - See COPYING.ARM in the top level directory
* FILE: lib/rtl/arm/debug_asm.S
* PURPOSE: Cross-privilege Debugging and Exception Support for ARM
* PROGRAMMERS: ReactOS Portable Systems Group
*/
#include <ksarm.h>
TEXTAREA
LEAF_ENTRY DbgBreakPoint
__debugbreak
bx lr
LEAF_END DbgBreakPoint
LEAF_ENTRY DbgUserBreakPoint
__debugbreak
bx lr
LEAF_END DbgUserBreakPoint
LEAF_ENTRY DbgBreakPointWithStatus
__debugbreak
bx lr
LEAF_END
LEAF_ENTRY RtlpBreakWithStatusInstruction
__debugbreak
bx lr
LEAF_END
LEAF_ENTRY DebugService
__debugservice
//bkpt BREAKPOINT_PRINT // Could be prompt too, we check this later
bx lr
LEAF_END DebugService
LEAF_ENTRY DebugService2
//bkpt BREAKPOINT_LOAD_SYMBOLS // Could be unload too, we check this later
bx lr
LEAF_END DebugService2
LEAF_ENTRY RtlCaptureContext
// FIXME-PERF: Change to stmdb later
str r0, [a1, #CxR0]
str r1, [a1, #CxR1]
str r2, [a1, #CxR2]
str r3, [a1, #CxR3]
str r4, [a1, #CxR4]
str r5, [a1, #CxR5]
str r6, [a1, #CxR6]
str r7, [a1, #CxR7]
str r8, [a1, #CxR8]
str r9, [a1, #CxR9]
str r10, [a1, #CxR10]
str r11, [a1, #CxR11]
str r12, [a1, #CxR12]
str sp, [a1, #CxSp]
str lr, [a1, #CxLr]
/* Need to do this indirectly, since "str pc, [a1, #CxPc]" generates
unpredictable behavior (error A2193) */
mov ip, pc
str ip, [a1, #CxPc]
mrs ip, spsr
str ip, [a1, #CxCpsr]
// FIXME: Fpscr and remaining stuff
/* Set flags */
mov32 r0, #CONTEXT_FULL
str ip, [a1, #CxContextFlags]
/* Return */
bx lr
LEAF_END RtlCaptureContext
END
/* EOF */