Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
19bb93ec
Commit
19bb93ec
authored
Apr 05, 2018
by
Piotr Caban
Committed by
Alexandre Julliard
Apr 09, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcr110: Add __crtCapturePreviousContext implementation.
Signed-off-by:
Piotr Caban
<
piotr@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
a2a258f4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
3 deletions
+41
-3
msvcr110.spec
dlls/msvcr110/msvcr110.spec
+1
-1
msvcr120.spec
dlls/msvcr120/msvcr120.spec
+1
-1
msvcr120_app.spec
dlls/msvcr120_app/msvcr120_app.spec
+1
-1
except_x86_64.c
dlls/msvcrt/except_x86_64.c
+38
-0
No files found.
dlls/msvcr110/msvcr110.spec
View file @
19bb93ec
...
...
@@ -905,7 +905,7 @@
@ cdecl -arch=i386 __control87_2(long long ptr ptr)
@ cdecl __create_locale(long str) MSVCRT__create_locale
@ cdecl -arch=win64 -norelay __crtCaptureCurrentContext(ptr) ntdll.RtlCaptureContext
@
stub -arch=win64 __crtCapturePreviousContext
@
cdecl -arch=x86_64 -norelay __crtCapturePreviousContext(ptr)
@ cdecl __crtCompareStringA(long long str long str long)
@ stub -arch=i386,win64 __crtCompareStringEx
@ cdecl __crtCompareStringW(long long wstr long wstr long)
...
...
dlls/msvcr120/msvcr120.spec
View file @
19bb93ec
...
...
@@ -890,7 +890,7 @@
@ cdecl -arch=i386 __control87_2(long long ptr ptr)
@ cdecl __create_locale(long str) MSVCRT__create_locale
@ cdecl -arch=win64 -norelay __crtCaptureCurrentContext(ptr) ntdll.RtlCaptureContext
@
stub -arch=win64 __crtCapturePreviousContext
@
cdecl -arch=x86_64 -norelay __crtCapturePreviousContext(ptr)
@ cdecl __crtCompareStringA(long long str long str long)
@ stub -arch=i386,win64 __crtCompareStringEx
@ cdecl __crtCompareStringW(long long wstr long wstr long)
...
...
dlls/msvcr120_app/msvcr120_app.spec
View file @
19bb93ec
...
...
@@ -884,7 +884,7 @@
@ cdecl -arch=i386 __control87_2(long long ptr ptr) msvcr120.__control87_2
@ cdecl __create_locale(long str) msvcr120.__create_locale
@ cdecl -arch=win64 -norelay __crtCaptureCurrentContext(ptr) msvcr120.__crtCaptureCurrentContext
@
stub -arch=win64
__crtCapturePreviousContext
@
cdecl -arch=x86_64 -norelay __crtCapturePreviousContext(ptr) msvcr120.
__crtCapturePreviousContext
@ stub __crtCloseWinRTThreadHandle
@ cdecl __crtCompareStringA(long long str long str long) msvcr120.__crtCompareStringA
@ cdecl __crtCompareStringW(long long wstr long wstr long) msvcr120.__crtCompareStringW
...
...
dlls/msvcrt/except_x86_64.c
View file @
19bb93ec
...
...
@@ -798,4 +798,42 @@ int __cdecl _fpieee_flt(ULONG exception_code, EXCEPTION_POINTERS *ep,
return
EXCEPTION_CONTINUE_SEARCH
;
}
#if _MSVCR_VER>=110 && _MSVCR_VER<=120
/*********************************************************************
* __crtCapturePreviousContext (MSVCR110.@)
*/
void
__cdecl
get_prev_context
(
CONTEXT
*
ctx
,
DWORD64
rip
)
{
ULONG64
frame
,
image_base
;
RUNTIME_FUNCTION
*
rf
;
void
*
data
;
TRACE
(
"(%p)
\n
"
,
ctx
);
ctx
->
Rip
=
rip
;
ctx
->
Rsp
+=
3
*
8
;
/* Rip, Rcx, return address */
rf
=
RtlLookupFunctionEntry
(
ctx
->
Rip
,
&
image_base
,
NULL
);
if
(
!
rf
)
{
FIXME
(
"RtlLookupFunctionEntry failed
\n
"
);
return
;
}
RtlVirtualUnwind
(
UNW_FLAG_NHANDLER
,
image_base
,
ctx
->
Rip
,
rf
,
ctx
,
&
data
,
&
frame
,
NULL
);
}
__ASM_GLOBAL_FUNC
(
__crtCapturePreviousContext
,
"pushq (%rsp)
\n\t
"
/* save Rip */
__ASM_CFI
(
".cfi_adjust_cfa_offset 8
\n\t
"
)
"pushq %rcx
\n\t
"
__ASM_CFI
(
".cfi_adjust_cfa_offset 8
\n\t
"
)
"call "
__ASM_NAME
(
"RtlCaptureContext"
)
"
\n\t
"
"popq %rcx
\n\t
"
__ASM_CFI
(
".cfi_adjust_cfa_offset -8
\n\t
"
)
"popq %rdx
\n\t
"
__ASM_CFI
(
".cfi_adjust_cfa_offset -8
\n\t
"
)
"jmp "
__ASM_NAME
(
"get_prev_context"
)
);
#endif
#endif
/* __x86_64__ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment