dolphin/Source/Core/Common
Skyler Saleh 4ecb3084b7 Apple M1 Support for MacOS
This commit adds support for compiling Dolphin for ARM on MacOS so that it can
run natively on the M1 processors without running through Rosseta2 emulation
providing a 30-50% performance speedup and less hitches from Rosseta2.

It consists of several key changes:

- Adding support for W^X allocation(MAP_JIT) for the ARM JIT
- Adding the machine context and config info to identify the M1 processor
- Additions to the build system and docs to support building universal binaries
- Adding code signing entitlements to access the MAP_JIT functionality
- Updating the MoltenVK libvulkan.dylib to a newer version with M1 support
2021-05-22 15:25:17 -07:00
..
Config Config: Give Movie and Netplay higher priority than CommandLine 2021-03-07 14:22:53 +01:00
Crypto Externals: Add zstd 2020-05-13 20:53:10 +02:00
Debug Watches: Fix Save and Load from strings 2021-03-04 17:55:52 +04:00
GL Rehabilitate Haiku support. 2021-01-02 16:54:24 -05:00
Logging InputCommon: replace SerialInterface log with ControllerInterface 2021-05-05 00:16:08 +03:00
Align.h
Analytics.cpp Common/Analytics: Convert std::string overload into std::string_view 2019-06-05 13:24:31 -04:00
Analytics.h rename Core/Analytics to Core/DolphinAnalytics 2021-01-27 14:29:47 -08:00
AndroidAnalytics.cpp Android: Add usage statistics to android. 2018-08-23 17:31:17 -04:00
AndroidAnalytics.h Android: Add usage statistics to android. 2018-08-23 17:31:17 -04:00
Arm64Emitter.cpp Apple M1 Support for MacOS 2021-05-22 15:25:17 -07:00
Arm64Emitter.h Merge pull request #9712 from JosJuice/jitarm64-fmul-rounding 2021-05-20 10:25:02 -04:00
ArmCommon.h ArmCommon: Mark NO_COND as constexpr 2020-12-30 20:54:05 -05:00
ArmCPUDetect.cpp Apple M1 Support for MacOS 2021-05-22 15:25:17 -07:00
ArmFPURoundMode.cpp Implement ArmFPURoundMode.cpp 2021-04-25 15:56:19 +02:00
Assert.h Common/Assert: no longer needs special impl for msvc 2020-08-23 13:57:05 -07:00
BitField.h Change BitfieldExtract to use a pointer to the bitfield member 2021-05-07 15:11:17 -07:00
BitField.natvis
BitSet.h BitSet: Add << operator 2018-10-28 17:57:46 +00:00
BitUtils.h BitUtils: cleanup constexpr usage for msvc clz 2021-01-10 10:06:30 -08:00
BlockingLoop.h BlockingLoop: Add explicit [[fallthrough]] annotations 2021-04-19 17:34:46 -04:00
CDUtils.cpp Remove obsolete "Windows compatibility" macros 2019-10-07 22:46:37 +02:00
CDUtils.h CDUtils: Amend function names 2018-05-27 18:48:09 -04:00
ChunkFile.h Remove all remaining volatile qualifiers 2021-05-15 09:52:04 +02:00
CMakeLists.txt Remove Atomic.h 2021-05-13 18:56:27 +02:00
CodeBlock.h x64Emitter: Check end of allocated space when emitting code. 2020-08-24 19:31:32 +02:00
ColorUtil.cpp ColorUtil: Amend function name casing 2018-05-27 21:04:48 -04:00
ColorUtil.h ColorUtil: Amend function name casing 2018-05-27 21:04:48 -04:00
Common.h Remove obsolete "Windows compatibility" macros 2019-10-07 22:46:37 +02:00
CommonFuncs.cpp Add Android check for strerror_r variant 2020-07-16 18:51:58 +02:00
CommonFuncs.h Move GetModuleName to Common 2019-10-07 22:46:36 +02:00
CommonPaths.h Core: Add new Free Look settings and config 2020-12-24 13:49:25 -06:00
CommonTypes.h
CompatPatches.cpp handle to GetFileVersionInfoW must be zero 2020-08-23 13:55:14 -07:00
CPUDetect.h CPUDetect: Indicate slow PDEP/PEXT only for Zen1/+/2 (Family 23) 2020-11-08 14:27:24 +01:00
DebugInterface.h Debugger: Add a Thread widget 2020-05-03 20:48:30 +04:00
DynamicLibrary.cpp Common: Use fmt where applicable 2019-06-14 15:04:09 -04:00
DynamicLibrary.h Common: Add DynamicLibrary helper class 2019-03-29 19:52:33 +10:00
ENetUtil.cpp Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
ENetUtil.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
EnumFormatter.h EnumFormatter: fix signed/unsigned comparison warnings 2021-03-07 13:54:13 -08:00
Event.h Minor changes to usages of std::condition_variable. 2019-04-06 17:39:25 -05:00
FileSearch.cpp Android: Add specialized content provider implementation of DoFileSearch 2020-12-28 21:00:10 +01:00
FileSearch.h
FileUtil.cpp rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
FileUtil.h Merge pull request #9318 from JosJuice/android-saf-games 2020-12-30 11:10:35 +01:00
FixedSizeQueue.h FixedSizeQueue: Work around GCC generating large amounts of debug info 2019-10-06 16:23:45 +10:00
Flag.h
FloatUtils.cpp FloatUtils: Clean up memcpy usages 2018-05-10 12:28:09 -04:00
FloatUtils.h Attempt to fix linter issues. 2018-08-13 12:17:56 -07:00
FormatUtil.h Common: Assert that translatable strings use positional arguments 2020-11-20 20:24:30 +01:00
FPURoundMode.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
GekkoDisassembler.cpp GekkoDisassembler: fix rld* 2020-08-23 13:55:14 -07:00
GekkoDisassembler.h Common/GekkoDisassembler: Don't print out '\0' as a character 2019-07-03 20:12:50 -04:00
GenericCPUDetect.cpp
GenericFPURoundMode.cpp Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
Hash.cpp Fix -Wsign-compare warnings 2020-11-21 02:08:09 +01:00
Hash.h Use size_t in some DSP code code 2020-07-24 15:06:39 -07:00
HttpRequest.cpp Common: Fix logger related crash when HTTP response is empty 2020-10-29 21:20:59 +01:00
HttpRequest.h Common/HttpRequest: Add option to allow non 200 response codes 2019-04-13 12:58:23 +02:00
Image.cpp rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
Image.h Core: Remove ImageWrite and get rid of -Wmissing-declarations warnings 2020-12-16 16:04:19 +01:00
IniFile.cpp Common/IniFile: Add Exists function for section name only 2020-02-29 01:39:36 -05:00
IniFile.h Common: Move 'GetSection' functions to be public 2021-02-27 12:21:23 -06:00
Inline.h Externals: Add zstd 2020-05-13 20:53:10 +02:00
Intrinsics.h
IOFile.cpp rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
IOFile.h rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
JitRegister.cpp rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
JitRegister.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
Lazy.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
LdrWatcher.cpp
LdrWatcher.h
LinearDiskCache.h rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
make_scmrev.h.js
MathUtil.cpp Common: Move Matrix classes out of MathUtil into their own files and make their interface more friendly. 2019-02-03 11:35:31 -06:00
MathUtil.h MathUtil: Add SaturatingCast to cast floats more safely 2021-04-06 23:27:23 +02:00
Matrix.cpp Common: Add function to get Euler angles from a Quaternion 2021-03-17 20:58:33 -05:00
Matrix.h Common: Add function to get Euler angles from a Quaternion 2021-03-17 20:58:33 -05:00
MD5.cpp Common: Use fmt where applicable 2019-06-14 15:04:09 -04:00
MD5.h
MemArena.cpp General: Convert PanicAlerts over to fmt equivalent 2020-12-02 13:38:33 -05:00
MemArena.h Common: Add MemArena.h/cpp to the Common namespace 2018-05-15 18:27:32 -04:00
MemoryUtil.cpp Apple M1 Support for MacOS 2021-05-22 15:25:17 -07:00
MemoryUtil.h Apple M1 Support for MacOS 2021-05-22 15:25:17 -07:00
MinizipUtil.h Externals: Update minizip search path. 2020-04-29 12:41:36 +02:00
MsgHandler.cpp Common/MsgHandler: Add fmt-capable variants of the alert macros 2020-11-09 08:48:17 -05:00
MsgHandler.h Common: Assert that translatable strings use positional arguments 2020-11-20 20:24:30 +01:00
NandPaths.cpp Common: Use fmt where applicable 2019-06-14 15:04:09 -04:00
NandPaths.h NetPlay: Synchronize Mii data 2019-04-08 07:06:21 -04:00
Network.cpp NetworkCaptureLogger: PCAP support added 2021-01-30 19:35:09 +04:00
Network.h NetworkCaptureLogger: PCAP support added 2021-01-30 19:35:09 +04:00
PcapFile.cpp NetworkCaptureLogger: PCAP support added 2021-01-30 19:35:09 +04:00
PcapFile.h NetworkCaptureLogger: PCAP support added 2021-01-30 19:35:09 +04:00
PerformanceCounter.cpp
PerformanceCounter.h
Profiler.cpp Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
Profiler.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
QoSSession.cpp
QoSSession.h
Random.cpp Random: Add seeded PRNG 2021-01-31 13:16:45 +00:00
Random.h Random: Add seeded PRNG 2021-01-31 13:16:45 +00:00
Result.h
scmrev.h.in Make it possible to enable auto-updates by default with CMake builds 2021-04-17 19:45:43 +02:00
SCMRevGen.vcxproj Add an ARM64 target to Visual Studio projects 2019-12-28 19:20:41 +10:00
ScopeGuard.h Common: Avoid std::function overhead in ScopeGuard 2020-02-15 21:33:31 +01:00
SDCardUtil.cpp rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
SDCardUtil.h SDCardUtil: Namespace SDCardUtil 2018-05-11 09:19:30 -04:00
Semaphore.h remove extraneous WIN32_LEAN_AND_MEAN definition 2020-08-23 13:57:05 -07:00
SettingsHandler.cpp SettingsHandler: Don't output null bytes 2020-03-24 17:01:15 +01:00
SettingsHandler.h SettingsHandler: Don't output null bytes 2020-03-24 17:01:15 +01:00
SFMLHelper.cpp Improve SFMLHelper 2018-10-02 05:44:50 -04:00
SFMLHelper.h Improve SFMLHelper 2018-10-02 05:44:50 -04:00
SocketContext.cpp Common: Add RAII object that initializes and cleans up winsock 2021-03-04 13:44:12 -06:00
SocketContext.h Common: Add RAII object that initializes and cleans up winsock 2021-03-04 13:44:12 -06:00
SPSCQueue.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
StringUtil.cpp InputCommon: fix serialization of control expression with line breaks 2021-05-12 18:25:56 +03:00
StringUtil.h InputCommon: fix serialization of control expression with line breaks 2021-05-12 18:25:56 +03:00
Swap.h
SymbolDB.cpp Common: Migrate logging to fmt 2020-10-23 14:58:03 -04:00
SymbolDB.h Common/SymbolDB: Use std::string_view where applicable 2019-06-16 01:10:02 -04:00
Thread.cpp Add NetBSD support 2020-12-15 02:34:25 +01:00
Thread.h
Timer.cpp windows: fix some incorrect string lengths 2020-08-23 13:55:15 -07:00
Timer.h Merge pull request #8922 from Filoppi/timer-fixes 2020-07-13 00:16:45 +01:00
TraversalClient.cpp TraversalClient: Make use of std::string_view with ConnectToClient() 2021-01-20 12:24:06 -05:00
TraversalClient.h TraversalClient: Make use of std::string_view with ConnectToClient() 2021-01-20 12:24:06 -05:00
TraversalProto.h TraversalProto: Convert typedefs into using aliases 2021-01-20 12:24:05 -05:00
TraversalServer.cpp TraversalProto: Convert TraversalPacketType into an enum class 2021-01-20 12:24:05 -05:00
TypeUtils.h Change BitfieldExtract to use a pointer to the bitfield member 2021-05-07 15:11:17 -07:00
UPnP.cpp Common: Migrate logging to fmt 2020-10-23 14:58:03 -04:00
UPnP.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
VariantUtil.h Common/VariantUtil: Add 'overloaded' helper struct for use with std::variant. 2021-01-28 22:01:32 +01:00
Version.cpp Avoid including scmrev.h except in Version.cpp 2021-05-21 17:03:01 +02:00
Version.h Avoid including scmrev.h except in Version.cpp 2021-05-21 17:03:01 +02:00
WindowSystemInfo.h Rehabilitate Haiku support. 2021-01-02 16:54:24 -05:00
WorkQueueThread.h Extended WorkQueueThread class with Clear(), Cancel() and IsCancelled(). 2020-10-01 22:09:45 +02:00
x64ABI.cpp
x64ABI.h
x64CPUDetect.cpp CPUDetect: Indicate slow PDEP/PEXT only for Zen1/+/2 (Family 23) 2020-11-08 14:27:24 +01:00
x64Emitter.cpp General: Convert PanicAlerts over to fmt equivalent 2020-12-02 13:38:33 -05:00
x64Emitter.h DSP: Eliminate most global state 2020-12-27 06:38:02 -05:00
x64FPURoundMode.cpp Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
x64Reg.h