modified include/reactos/libs/pseh/pseh2.h

Make SF_FramePointer field of _SEHFrame_t volatile, too, just to be safe
   Unoptimized compilation doesn't perform const-folding - "static const" could result in compilation errors, use just "const"
   Renamed _SEH2_GetExceptionPointers to _SEH2_GetExceptionInformation to be closer to the "standard" SEH syntax

modified   lib/pseh/framebased-gcchack.c
   Clobber the register that's actually used

svn path=/trunk/; revision=37570
This commit is contained in:
KJK::Hyperion 2008-11-23 00:20:37 +00:00
parent 29fc9d57c7
commit 7d4a8b9e1c
2 changed files with 4 additions and 4 deletions

View file

@ -122,7 +122,7 @@ typedef struct __SEHFrame
{ {
_SEHRegistration_t SF_Registration; _SEHRegistration_t SF_Registration;
volatile struct __SEHTryLevel * volatile SF_TopTryLevel; volatile struct __SEHTryLevel * volatile SF_TopTryLevel;
void * SF_FramePointer; void * volatile SF_FramePointer;
void * volatile SF_StackPointer; void * volatile SF_StackPointer;
volatile unsigned long SF_Code; volatile unsigned long SF_Code;
} }
@ -176,7 +176,7 @@ _SEHTryLevel_t;
\ \
_SEHBeginScope: __SEH_SIDE_EFFECT; \ _SEHBeginScope: __SEH_SIDE_EFFECT; \
\ \
static const int _SEHTopTryLevel = (_SEHScopeKind != 0); \ const int _SEHTopTryLevel = (_SEHScopeKind != 0); \
_SEHFrame_t * const _SEHCurFrameP = _SEHFrameP; \ _SEHFrame_t * const _SEHCurFrameP = _SEHFrameP; \
volatile _SEHTryLevel_t * const _SEHPrevTryLevelP = _SEHTryLevelP; \ volatile _SEHTryLevel_t * const _SEHPrevTryLevelP = _SEHTryLevelP; \
\ \
@ -342,7 +342,7 @@ _SEHTryLevel_t;
} \ } \
__SEH_END_SCOPE; __SEH_END_SCOPE;
#define _SEH2_GetExceptionPointers() ((struct _EXCEPTION_POINTERS *)_SEHExceptionPointers) #define _SEH2_GetExceptionInformation() ((struct _EXCEPTION_POINTERS *)_SEHExceptionPointers)
#define _SEH2_GetExceptionCode() ((_SEHFrameP)->SF_Code) #define _SEH2_GetExceptionCode() ((_SEHFrameP)->SF_Code)
#define _SEH2_YIELD(STMT_) \ #define _SEH2_YIELD(STMT_) \

View file

@ -154,7 +154,7 @@ void __cdecl _SEH2LeaveFrame()
"movl %%edx, %%fs:0\n" : "movl %%edx, %%fs:0\n" :
: :
: :
"ecx" "edx"
); );
} }