mirror of
https://github.com/reactos/reactos.git
synced 2024-08-21 10:53:15 +00:00
83 lines
1.8 KiB
ArmAsm
83 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 */
|