diff options
author | WaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com> | 2020-11-29 08:11:33 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-29 17:11:33 +0100 |
commit | 7da4550eea43a5ec83d1afc88022aaa62827febc (patch) | |
tree | cbc1f372a00f00f62e2877aef86244ae023f4d3a /src/ARMJIT_x64 | |
parent | 14be591ab8e769457678d5cac8536b2abfb3a94f (diff) |
Add support for macOS (#771)
* use shm_open() instead of memfd_create() on macOS
malloc.h isn't a header on macOS
* Change OpenGL headers + create ifdef for DO_PROCLIST
macOS seems to already have the OpenGL functions defined, without the ifdef, it gives "ambiguous references" errors.
* macOS doesn't have ->gregs in uc_mcontext
and it doesn't have REG_RIP either
https://github.com/gperftools/gperftools/blob/master/m4/pc_from_ucontext.m4
* use getpid() to make memory file name unique
* #ifndef __APPLE__ for AF_PACKET and linux/if_packet.h
* Add include and link directories for macOS and link the OpenGL framework
* Add macOS CI
* Use newly added libslirp package from Homebrew
https://github.com/Homebrew/homebrew-core/pull/63412
* Use Apple's Clang instead of GNU GCC on macOS
* Add macOS build instructions to README
* Try to fix macOS undefined symbol
* snprintf doesn't take null terminator into account
* Map new memory on macOS for JIT
* Only use gcc-ar if using GNU Compiler
* re-add fastmem code - whoops!
* Fix style issue - use camelCase not snake_case
* Set Minimum macOS version
* Switch Minimum OS X version to 10.9
* Add macOS libpcap library name
* fix memory leak
* Fix binding keys in macOS
* Allow getting MAC address on macOS
melonDS on Linux uses AF_PACKET, which doesn't exist on macOS. Instead, this commit uses AF_LINK on macOS to get the MAC address.
* Remove unneeded macOS CI dependencies
* Build melonDS app bundle on macOS
Now it is no longer required to install the libraries on macOS, they come with the app bundle.
* fix macOS CI not being able to find macdeployqt
* copy melonDS.app with recursive because it's a folder
* Disable fastmem checkbox on macOS
* Disable fastmem by default in config
* forgot a semicolon
* Don't bundle libraries, causes issues on macOS <10.15
* Update README + allow finding version in Finder on macOS
* Make sure fastmem checkbox stays uncheckable
Diffstat (limited to 'src/ARMJIT_x64')
-rw-r--r-- | src/ARMJIT_x64/ARMJIT_Compiler.cpp | 2 | ||||
-rw-r--r-- | src/ARMJIT_x64/ARMJIT_Linkage.s | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/ARMJIT_x64/ARMJIT_Compiler.cpp b/src/ARMJIT_x64/ARMJIT_Compiler.cpp index 076f48c..cc4ad80 100644 --- a/src/ARMJIT_x64/ARMJIT_Compiler.cpp +++ b/src/ARMJIT_x64/ARMJIT_Compiler.cpp @@ -221,6 +221,8 @@ Compiler::Compiler() #ifdef _WIN32 DWORD dummy; VirtualProtect(pageAligned, alignedSize, PAGE_EXECUTE_READWRITE, &dummy); + #elif defined(__APPLE__) + pageAligned = (u8*)mmap(NULL, 1024*1024*32, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS ,-1, 0); #else mprotect(pageAligned, alignedSize, PROT_EXEC | PROT_READ | PROT_WRITE); #endif diff --git a/src/ARMJIT_x64/ARMJIT_Linkage.s b/src/ARMJIT_x64/ARMJIT_Linkage.s index 0a84df0..8cc0b5f 100644 --- a/src/ARMJIT_x64/ARMJIT_Linkage.s +++ b/src/ARMJIT_x64/ARMJIT_Linkage.s @@ -29,8 +29,13 @@ .p2align 4,,15 +#ifdef __APPLE__ +.global _ARM_Dispatch +_ARM_Dispatch: +#else .global ARM_Dispatch ARM_Dispatch: +#endif #ifdef WIN64 push rdi push rsi @@ -54,8 +59,13 @@ ARM_Dispatch: .p2align 4,,15 +#ifdef __APPLE__ +.global _ARM_Ret +_ARM_Ret: +#else .global ARM_Ret ARM_Ret: +#endif mov [RCPU + ARM_CPSR_offset], RCPSR #ifdef WIN64 |