diff options
author | Geoff Norton <grompf@gmail.com> | 2015-02-17 12:50:09 -0800 |
---|---|---|
committer | Geoff Norton <grompf@gmail.com> | 2015-02-17 12:50:09 -0800 |
commit | 93e6d80704cfe274a38a2c4cd26e14cb823f7236 (patch) | |
tree | 146dd9413ba740d7c47b46f847e7322ec671b67a /src/pal/src/exception/seh-unwind.cpp | |
parent | 551c97656c6a5a08c22ff614e81423170ab08ee5 (diff) | |
parent | 2ae979db2206f49fef92e83af3571f6901dc5bff (diff) | |
download | coreclr-93e6d80704cfe274a38a2c4cd26e14cb823f7236.tar.gz coreclr-93e6d80704cfe274a38a2c4cd26e14cb823f7236.tar.bz2 coreclr-93e6d80704cfe274a38a2c4cd26e14cb823f7236.zip |
Merge branch 'master' into unix_issue177
Conflicts:
src/pal/src/config.h.linux
src/pal/src/config.h.osx
src/pal/src/exception/seh-unwind.cpp
Diffstat (limited to 'src/pal/src/exception/seh-unwind.cpp')
-rw-r--r-- | src/pal/src/exception/seh-unwind.cpp | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/src/pal/src/exception/seh-unwind.cpp b/src/pal/src/exception/seh-unwind.cpp index 24ae3c550f..94d9c3be16 100644 --- a/src/pal/src/exception/seh-unwind.cpp +++ b/src/pal/src/exception/seh-unwind.cpp @@ -215,15 +215,6 @@ void DisplayContext(_Unwind_Context *context) fprintf(stderr, " cfa=%p", _Unwind_GetCFA(context)); #if defined(_X86_) // TODO: display more registers -#elif defined(_PPC_) - fprintf(stderr, " ra =0x%p", _Unwind_GetGR(context, 0x41)); - fprintf(stderr, " r11=0x%p\n", _Unwind_GetGR(context, 0x46)); - for (int i = 13; i < 32; i++) - { - fprintf(stderr, " r%02d=0x%p", i, _Unwind_GetGR(context, i)); - if ((i - 13) % 4 == 3) - fprintf(stderr, "\n"); - } #endif fprintf(stderr, "\n"); } @@ -512,9 +503,7 @@ static void RtlpRaiseException(EXCEPTION_RECORD *ExceptionRecord) // The frame we're looking at now is either RaiseException or PAL_TryExcept. // If it's RaiseException, we have to unwind one level further to get the // actual context user code could be resumed at. -#if defined(_PPC_) - void *pc = (void *) ContextRecord.Iar; -#elif defined(_X86_) +#if defined(_X86_) void *pc = (void *) ContextRecord.Eip; #elif defined(_AMD64_) void *pc = (void *) ContextRecord.Rip; @@ -854,10 +843,7 @@ _Unwind_Reason_Code PAL_SEHPersonalityRoutine( // Obtain the filter and parameter from the original frame. PFN_PAL_EXCEPTION_FILTER pfnFilter; void *pvParam; -#if defined(_PPC_) - pfnFilter = (PFN_PAL_EXCEPTION_FILTER) _Unwind_GetGR(context, 28); - pvParam = _Unwind_GetGR(context, 29); -#elif defined(_X86_) +#if defined(_X86_) pfnFilter = ((PFN_PAL_EXCEPTION_FILTER *) _Unwind_GetGR(context, 4))[3]; // [ebp+12] pvParam = ((void **) _Unwind_GetGR(context, 4))[4]; // [ebp+16] #elif defined(_AMD64_) @@ -1072,9 +1058,7 @@ _Unwind_Reason_Code PAL_SEHFilterPersonalityRoutine( // Retrieve the dispatcher context of the outer _Unwind_RaiseException. PAL_DISPATCHER_CONTEXT *outerDispatcherContext; -#if defined(_PPC_) - outerDispatcherContext = (PAL_DISPATCHER_CONTEXT *) _Unwind_GetGR(context, 29); -#elif defined(_X86_) +#if defined(_X86_) outerDispatcherContext = (PAL_DISPATCHER_CONTEXT *) ((void **) _Unwind_GetGR(context, 4))[3]; // [ebp+12] #elif defined(_AMD64_) // Filter address is stored at RSP+8 @@ -1123,14 +1107,3 @@ _Unwind_Reason_Code PAL_SEHFilterPersonalityRoutine( return _URC_CONTINUE_UNWIND; } } - -#ifdef _PPC_ -// This function does not do anything. It ist just here to be called by -// PAL_TRY, so we can avoid the body of PAL_TRY being translated by the -// compiler into a leaf function (i.e., one that does not set up its -// own frame), because on a hardware fault in a leaf function, we would -// get a stack that would not be unwindable. -EXTERN_C VOID PALAPI PAL_DummyCall() -{ -} -#endif // _PPC_ |