-
-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows ARM support #545
Comments
I haven't looked at arm32 or arm64 on UWP at all so I don't know the extent of changes required to support them. I would think it's more complex than just setting some #define and certainly requires some additional code. |
Been trying to get a build going to get some scope for what it takes to do this. #ifdef _WIN64
#ifdef __MINGW64__
struct _RUNTIME_FUNCTION;
typedef struct _RUNTIME_FUNCTION RUNTIME_FUNCTION;
#else
+ #ifdef _M_ARM64
+ struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
+ typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION;
+ #else
struct _IMAGE_RUNTIME_FUNCTION_ENTRY;
typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION;
#endif
#endif
+ #endif Because typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
DWORD BeginAddress;
union {
DWORD UnwindData;
struct {
DWORD Flag : 2;
DWORD FunctionLength : 11;
DWORD RegF : 3;
DWORD RegI : 4;
DWORD H : 1;
DWORD CR : 2;
DWORD FrameSize : 9;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY; some functions like flycast/core/windows/unwind_info.cpp Lines 67 to 88 in 85188bf
|
Dynamic unwind information isn't absolutely needed to get a first build working. This is just needed to be able to throw exceptions through dynarec blocks. (There's no unwind info on arm32 for example.) The main reason there's no build yet is that I don't have a hardware platform to test with. |
Hi,
I just want to know if it's possible to compile flycast libretro core for ARM32 (specifically for UWP)
Interpreter worked fine (partially because some games has textures issue) but it's almost stable
Dynarec was not possible because the arm32 code is for linux only if
FEAT_SHREC = DYNAREC_JIT
,the only way I was able to compile is to activate the below options
FEAT_SHREC = DYNAREC_CPP
:but I got black screen only (no crash happening)
I just need to know if there is any possible chance to get the dynarec working on UWP ARM32
Many thanks for your support.
The text was updated successfully, but these errors were encountered: