/* * 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 #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