mirror of
https://github.com/patchzyy/wiicompiled
synced 2026-09-10 09:11:52 -04:00
add linux support to runtime build
This commit is contained in:
@@ -11,11 +11,22 @@ inline constexpr bool MkwStateFreeAbiEnabled(uint32_t) noexcept
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define MKW_PPC_FORCE_INLINE __forceinline
|
||||
#define MKW_PPC_NO_INLINE __declspec(noinline)
|
||||
#define MKW_PPC_INTERNAL_CALL __regcall
|
||||
#else
|
||||
// __forceinline/__declspec are MS-extension keywords Clang only recognizes when targeting
|
||||
// Windows (MSVC or mingw); native Linux Clang needs the GNU-attribute spellings instead.
|
||||
// __regcall has no portable non-Windows equivalent worth chasing here - the extra register
|
||||
// args it saves matter for the hot PPC interpreter loop on Windows, but plain calls are fine
|
||||
// elsewhere.
|
||||
#define MKW_PPC_FORCE_INLINE __attribute__((always_inline)) inline
|
||||
#define MKW_PPC_NO_INLINE __attribute__((noinline))
|
||||
#define MKW_PPC_INTERNAL_CALL
|
||||
#endif
|
||||
#define MKW_PPC_ALWAYS_INLINE_BODY __attribute__((always_inline))
|
||||
#define MKW_PPC_COLD __attribute__((cold))
|
||||
#define MKW_PPC_INTERNAL_CALL __regcall
|
||||
|
||||
|
||||
using MkwStateFreeResult2 = uint64_t __attribute__((ext_vector_type(2)));
|
||||
|
||||
@@ -18,8 +18,15 @@ extern "C" {
|
||||
}
|
||||
|
||||
namespace MemoryInline {
|
||||
#if defined(_WIN32)
|
||||
#define MKW_MEMORY_FORCE_INLINE __forceinline
|
||||
#define MKW_MEMORY_NO_INLINE __declspec(noinline)
|
||||
#else
|
||||
// See runtime/include/isa/ppc_isa_config.h for why non-Windows Clang needs the GNU-attribute
|
||||
// spellings instead of the MS-extension keywords.
|
||||
#define MKW_MEMORY_FORCE_INLINE __attribute__((always_inline)) inline
|
||||
#define MKW_MEMORY_NO_INLINE __attribute__((noinline))
|
||||
#endif
|
||||
#define MKW_MEMORY_COLD __attribute__((cold))
|
||||
inline constexpr uint32_t kPageShift = 20;
|
||||
inline constexpr uint32_t kPageSize = 1u << kPageShift;
|
||||
|
||||
Reference in New Issue
Block a user