mirror of
https://github.com/reactos/reactos.git
synced 2024-11-10 00:34:39 +00:00
527f2f9057
* Create a branch for some evul shell experiments. svn path=/branches/shell-experiments/; revision=61927
75 lines
1.5 KiB
ArmAsm
75 lines
1.5 KiB
ArmAsm
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS CRT
|
|
* FILE: lib/crt/misc/i386/seh.S
|
|
* PURPOSE: SEH Support for the CRT
|
|
* PROGRAMMERS: arty
|
|
*/
|
|
|
|
/* INCLUDES ******************************************************************/
|
|
|
|
#include <ndk/asm.h>
|
|
|
|
#define DISPOSITION_DISMISS 0
|
|
#define DISPOSITION_CONTINUE_SEARCH 1
|
|
#define DISPOSITION_COLLIDED_UNWIND 3
|
|
|
|
/* GLOBALS *******************************************************************/
|
|
|
|
.globl _global_unwind2
|
|
.globl _local_unwind2
|
|
.globl _abnormal_termination
|
|
.globl _except_handler2
|
|
.globl _except_handler3
|
|
|
|
/* FUNCTIONS *****************************************************************/
|
|
|
|
unwind_handler:
|
|
blr
|
|
|
|
_global_unwind2:
|
|
blr
|
|
|
|
_local_unwind2:
|
|
blr
|
|
|
|
_except_handler2:
|
|
blr
|
|
|
|
_except_handler3:
|
|
blr
|
|
|
|
//
|
|
//
|
|
// REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME
|
|
// sorry
|
|
//
|
|
//
|
|
.globl RtlpGetStackLimits
|
|
RtlpGetStackLimits:
|
|
stwu 1,16(1)
|
|
mflr 0
|
|
|
|
stw 0,4(1)
|
|
stw 3,8(1)
|
|
stw 4,12(1)
|
|
|
|
/* Get the current thread */
|
|
lwz 3,KPCR_CURRENT_THREAD(13)
|
|
|
|
/* Get the stack limits */
|
|
lwz 4,KTHREAD_STACK_LIMIT(3)
|
|
lwz 5,KTHREAD_INITIAL_STACK(3)
|
|
subi 5,5,SIZEOF_FX_SAVE_AREA
|
|
|
|
/* Return them */
|
|
lwz 3,8(1)
|
|
stw 4,0(3)
|
|
|
|
lwz 3,12(1)
|
|
stw 5,0(3)
|
|
|
|
addi 1,1,16
|
|
|
|
/* return */
|
|
blr
|