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
457a6fd4
Commit
457a6fd4
authored
Dec 07, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcrt: Add a stub ARM64EC CPU backend.
parent
158a2bad
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
170 additions
and
1 deletion
+170
-1
Makefile.in
dlls/crtdll/Makefile.in
+1
-0
Makefile.in
dlls/msvcr100/Makefile.in
+1
-0
Makefile.in
dlls/msvcr110/Makefile.in
+1
-0
Makefile.in
dlls/msvcr120/Makefile.in
+1
-0
Makefile.in
dlls/msvcr70/Makefile.in
+1
-0
Makefile.in
dlls/msvcr71/Makefile.in
+1
-0
Makefile.in
dlls/msvcr80/Makefile.in
+1
-0
Makefile.in
dlls/msvcr90/Makefile.in
+1
-0
Makefile.in
dlls/msvcrt/Makefile.in
+1
-0
except_arm64ec.c
dlls/msvcrt/except_arm64ec.c
+158
-0
except_x86_64.c
dlls/msvcrt/except_x86_64.c
+1
-1
Makefile.in
dlls/msvcrtd/Makefile.in
+1
-0
Makefile.in
dlls/ucrtbase/Makefile.in
+1
-0
No files found.
dlls/crtdll/Makefile.in
View file @
457a6fd4
...
...
@@ -15,6 +15,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcr100/Makefile.in
View file @
457a6fd4
...
...
@@ -17,6 +17,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcr110/Makefile.in
View file @
457a6fd4
...
...
@@ -17,6 +17,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcr120/Makefile.in
View file @
457a6fd4
...
...
@@ -17,6 +17,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcr70/Makefile.in
View file @
457a6fd4
...
...
@@ -16,6 +16,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcr71/Makefile.in
View file @
457a6fd4
...
...
@@ -16,6 +16,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcr80/Makefile.in
View file @
457a6fd4
...
...
@@ -16,6 +16,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcr90/Makefile.in
View file @
457a6fd4
...
...
@@ -16,6 +16,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcrt/Makefile.in
View file @
457a6fd4
...
...
@@ -21,6 +21,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/msvcrt/except_arm64ec.c
0 → 100644
View file @
457a6fd4
/*
* msvcrt C++ exception handling
*
* Copyright 2011 Alexandre Julliard
* Copyright 2013 André Hentschel
* Copyright 2017 Martin Storsjo
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifdef __arm64ec__
#include <setjmp.h>
#include <stdarg.h>
#include <fpieee.h>
#include "ntstatus.h"
#define WIN32_NO_STATUS
#include "windef.h"
#include "winbase.h"
#include "winternl.h"
#include "msvcrt.h"
#include "wine/exception.h"
#include "excpt.h"
#include "wine/debug.h"
#include "cppexcept.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
seh
);
/*********************************************************************
* __CxxExceptionFilter (MSVCRT.@)
*/
int
CDECL
__CxxExceptionFilter
(
PEXCEPTION_POINTERS
ptrs
,
const
type_info
*
ti
,
int
flags
,
void
**
copy
)
{
FIXME
(
"%p %p %x %p: not implemented
\n
"
,
ptrs
,
ti
,
flags
,
copy
);
return
EXCEPTION_CONTINUE_SEARCH
;
}
/*********************************************************************
* __CxxFrameHandler (MSVCRT.@)
*/
EXCEPTION_DISPOSITION
CDECL
__CxxFrameHandler
(
EXCEPTION_RECORD
*
rec
,
ULONG64
frame
,
CONTEXT
*
context
,
DISPATCHER_CONTEXT
*
dispatch
)
{
FIXME
(
"%p %I64x %p %p: not implemented
\n
"
,
rec
,
frame
,
context
,
dispatch
);
return
ExceptionContinueSearch
;
}
/*********************************************************************
* __CppXcptFilter (MSVCRT.@)
*/
int
CDECL
__CppXcptFilter
(
NTSTATUS
ex
,
PEXCEPTION_POINTERS
ptr
)
{
/* only filter c++ exceptions */
if
(
ex
!=
CXX_EXCEPTION
)
return
EXCEPTION_CONTINUE_SEARCH
;
return
_XcptFilter
(
ex
,
ptr
);
}
/*********************************************************************
* __CxxDetectRethrow (MSVCRT.@)
*/
BOOL
CDECL
__CxxDetectRethrow
(
PEXCEPTION_POINTERS
ptrs
)
{
PEXCEPTION_RECORD
rec
;
if
(
!
ptrs
)
return
FALSE
;
rec
=
ptrs
->
ExceptionRecord
;
if
(
rec
->
ExceptionCode
==
CXX_EXCEPTION
&&
rec
->
NumberParameters
==
3
&&
rec
->
ExceptionInformation
[
0
]
==
CXX_FRAME_MAGIC_VC6
&&
rec
->
ExceptionInformation
[
2
])
{
ptrs
->
ExceptionRecord
=
msvcrt_get_thread_data
()
->
exc_record
;
return
TRUE
;
}
return
(
msvcrt_get_thread_data
()
->
exc_record
==
rec
);
}
/*********************************************************************
* __CxxQueryExceptionSize (MSVCRT.@)
*/
unsigned
int
CDECL
__CxxQueryExceptionSize
(
void
)
{
return
sizeof
(
cxx_exception_type
);
}
/*******************************************************************
* _setjmp (MSVCRT.@)
*/
int
__attribute__
((
naked
))
MSVCRT__setjmp
(
jmp_buf
buf
)
{
asm
(
"b "
__ASM_NAME
(
"__wine_setjmpex"
)
);
}
/*******************************************************************
* longjmp (MSVCRT.@)
*/
void
__cdecl
MSVCRT_longjmp
(
_JUMP_BUFFER
*
jmp
,
int
retval
)
{
EXCEPTION_RECORD
rec
;
if
(
!
retval
)
retval
=
1
;
if
(
jmp
->
Frame
)
{
rec
.
ExceptionCode
=
STATUS_LONGJUMP
;
rec
.
ExceptionFlags
=
0
;
rec
.
ExceptionRecord
=
NULL
;
rec
.
ExceptionAddress
=
NULL
;
rec
.
NumberParameters
=
1
;
rec
.
ExceptionInformation
[
0
]
=
(
DWORD_PTR
)
jmp
;
RtlUnwind
(
(
void
*
)
jmp
->
Frame
,
(
void
*
)
jmp
->
Rip
,
&
rec
,
IntToPtr
(
retval
)
);
}
__wine_longjmp
(
(
__wine_jmp_buf
*
)
jmp
,
retval
);
}
/*********************************************************************
* _fpieee_flt (MSVCRT.@)
*/
int
__cdecl
_fpieee_flt
(
__msvcrt_ulong
exception_code
,
EXCEPTION_POINTERS
*
ep
,
int
(
__cdecl
*
handler
)(
_FPIEEE_RECORD
*
)
)
{
FIXME
(
"(%lx %p %p)
\n
"
,
exception_code
,
ep
,
handler
);
return
EXCEPTION_CONTINUE_SEARCH
;
}
#if _MSVCR_VER>=110 && _MSVCR_VER<=120
/*********************************************************************
* __crtCapturePreviousContext (MSVCR110.@)
*/
void
__cdecl
__crtCapturePreviousContext
(
CONTEXT
*
ctx
)
{
FIXME
(
"not implemented
\n
"
);
}
#endif
#endif
/* __arm64ec__ */
dlls/msvcrt/except_x86_64.c
View file @
457a6fd4
...
...
@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#if
def __x86_64__
#if
defined(__x86_64__) && !defined(__arm64ec__)
#include <setjmp.h>
#include <stdarg.h>
...
...
dlls/msvcrtd/Makefile.in
View file @
457a6fd4
...
...
@@ -17,6 +17,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
dlls/ucrtbase/Makefile.in
View file @
457a6fd4
...
...
@@ -21,6 +21,7 @@ SOURCES = \
except.c
\
except_arm.c
\
except_arm64.c
\
except_arm64ec.c
\
except_i386.c
\
except_x86_64.c
\
exception_ptr.c
\
...
...
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