More mac fixups.
This commit is contained in:
parent
0c5110ac3e
commit
d56ae60460
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
namespace BE {
|
namespace BE {
|
||||||
#include <beaengine/BeaEngine.h>
|
#include <beaengine/BeaEngine.h>
|
||||||
}
|
} // namespace BE
|
||||||
|
|
||||||
namespace alloy {
|
namespace alloy {
|
||||||
namespace backend {
|
namespace backend {
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
|
|
||||||
#include <alloy/backend/x64/x64_code_cache.h>
|
#include <alloy/backend/x64/x64_code_cache.h>
|
||||||
|
|
||||||
#include <sys/mman.h>
|
#include <poly/assert.h>
|
||||||
|
|
||||||
#include <alloy/backend/x64/tracing.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
namespace alloy {
|
namespace alloy {
|
||||||
namespace backend {
|
namespace backend {
|
||||||
|
|
|
@ -370,7 +370,7 @@ void X64Emitter::CallIndirect(const hir::Instr* instr, const Reg64& reg) {
|
||||||
uint64_t UndefinedCallExtern(void* raw_context, uint64_t symbol_info_ptr) {
|
uint64_t UndefinedCallExtern(void* raw_context, uint64_t symbol_info_ptr) {
|
||||||
auto symbol_info = reinterpret_cast<FunctionInfo*>(symbol_info_ptr);
|
auto symbol_info = reinterpret_cast<FunctionInfo*>(symbol_info_ptr);
|
||||||
XELOGW("undefined extern call to %.8llX %s", symbol_info->address(),
|
XELOGW("undefined extern call to %.8llX %s", symbol_info->address(),
|
||||||
symbol_info->name());
|
symbol_info->name().c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
void X64Emitter::CallExtern(const hir::Instr* instr,
|
void X64Emitter::CallExtern(const hir::Instr* instr,
|
||||||
|
|
|
@ -55,9 +55,9 @@ int PPCHIRBuilder::Emit(FunctionInfo* symbol_info, bool with_debug_info) {
|
||||||
|
|
||||||
with_debug_info_ = with_debug_info;
|
with_debug_info_ = with_debug_info;
|
||||||
if (with_debug_info_) {
|
if (with_debug_info_) {
|
||||||
Comment("%s fn %.8X-%.8X %s", symbol_info->module()->name(),
|
Comment("%s fn %.8X-%.8X %s", symbol_info->module()->name().c_str(),
|
||||||
symbol_info->address(), symbol_info->end_address(),
|
symbol_info->address(), symbol_info->end_address(),
|
||||||
symbol_info->name());
|
symbol_info->name().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocate offset list.
|
// Allocate offset list.
|
||||||
|
|
|
@ -161,9 +161,10 @@ void PPCTranslator::DumpSource(runtime::FunctionInfo* symbol_info,
|
||||||
Memory* memory = frontend_->memory();
|
Memory* memory = frontend_->memory();
|
||||||
const uint8_t* p = memory->membase();
|
const uint8_t* p = memory->membase();
|
||||||
|
|
||||||
string_buffer->Append("%s fn %.8X-%.8X %s\n", symbol_info->module()->name(),
|
string_buffer->Append("%s fn %.8X-%.8X %s\n",
|
||||||
|
symbol_info->module()->name().c_str(),
|
||||||
symbol_info->address(), symbol_info->end_address(),
|
symbol_info->address(), symbol_info->end_address(),
|
||||||
symbol_info->name());
|
symbol_info->name().c_str());
|
||||||
|
|
||||||
auto blocks = scanner_->FindBlocks(symbol_info);
|
auto blocks = scanner_->FindBlocks(symbol_info);
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,8 @@ EntryTable::EntryTable() = default;
|
||||||
|
|
||||||
EntryTable::~EntryTable() {
|
EntryTable::~EntryTable() {
|
||||||
std::lock_guard<std::mutex> guard(lock_);
|
std::lock_guard<std::mutex> guard(lock_);
|
||||||
auto& it = map_.begin();
|
for (auto it : map_) {
|
||||||
for (; it != map_.end(); ++it) {
|
Entry* entry = it.second;
|
||||||
Entry* entry = it->second;
|
|
||||||
delete entry;
|
delete entry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include <alloy/core.h>
|
#include <alloy/core.h>
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,7 @@ namespace alloy {
|
||||||
namespace runtime {
|
namespace runtime {
|
||||||
|
|
||||||
Function::Function(FunctionInfo* symbol_info)
|
Function::Function(FunctionInfo* symbol_info)
|
||||||
: address_(symbol_info->address()),
|
: address_(symbol_info->address()), symbol_info_(symbol_info) {}
|
||||||
symbol_info_(symbol_info) {}
|
|
||||||
|
|
||||||
Function::~Function() = default;
|
Function::~Function() = default;
|
||||||
|
|
||||||
|
@ -81,7 +80,7 @@ int Function::Call(ThreadState* thread_state, uint64_t return_address) {
|
||||||
symbol_info_->extern_arg1());
|
symbol_info_->extern_arg1());
|
||||||
} else {
|
} else {
|
||||||
XELOGW("undefined extern call to %.8llX %s", symbol_info_->address(),
|
XELOGW("undefined extern call to %.8llX %s", symbol_info_->address(),
|
||||||
symbol_info_->name());
|
symbol_info_->name().c_str());
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
#ifndef ALLOY_RUNTIME_THREAD_STATE_H_
|
#ifndef ALLOY_RUNTIME_THREAD_STATE_H_
|
||||||
#define ALLOY_RUNTIME_THREAD_STATE_H_
|
#define ALLOY_RUNTIME_THREAD_STATE_H_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#include <alloy/core.h>
|
#include <alloy/core.h>
|
||||||
|
|
||||||
#include <alloy/memory.h>
|
#include <alloy/memory.h>
|
||||||
|
@ -32,7 +34,8 @@ class ThreadState {
|
||||||
void* backend_data() const { return backend_data_; }
|
void* backend_data() const { return backend_data_; }
|
||||||
void* raw_context() const { return raw_context_; }
|
void* raw_context() const { return raw_context_; }
|
||||||
|
|
||||||
virtual int Suspend(uint32_t timeout_ms = UINT_MAX) { return 1; }
|
int Suspend() { return Suspend(~0); }
|
||||||
|
virtual int Suspend(uint32_t timeout_ms) { return 1; }
|
||||||
virtual int Resume(bool force = false) { return 1; }
|
virtual int Resume(bool force = false) { return 1; }
|
||||||
|
|
||||||
static void Bind(ThreadState* thread_state);
|
static void Bind(ThreadState* thread_state);
|
||||||
|
|
|
@ -23,7 +23,7 @@ void StringBuffer::Reset() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void StringBuffer::Append(const std::string& value) {
|
void StringBuffer::Append(const std::string& value) {
|
||||||
Append(value.c_str());
|
AppendBytes(reinterpret_cast<const uint8_t*>(value.data()), value.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void StringBuffer::Append(const char* format, ...) {
|
void StringBuffer::Append(const char* format, ...) {
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#ifndef ALLOY_STRING_BUFFER_H_
|
#ifndef ALLOY_STRING_BUFFER_H_
|
||||||
#define ALLOY_STRING_BUFFER_H_
|
#define ALLOY_STRING_BUFFER_H_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <alloy/core.h>
|
#include <alloy/core.h>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
#ifndef POLY_CXX_COMPAT_H_
|
#ifndef POLY_CXX_COMPAT_H_
|
||||||
#define POLY_CXX_COMPAT_H_
|
#define POLY_CXX_COMPAT_H_
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include <poly/config.h>
|
#include <poly/config.h>
|
||||||
|
|
||||||
// C++11 thread local storage.
|
// C++11 thread local storage.
|
||||||
|
@ -30,6 +32,16 @@
|
||||||
#define alignas(N) __declspec(align(N))
|
#define alignas(N) __declspec(align(N))
|
||||||
#endif // XE_COMPILER_MSVC
|
#endif // XE_COMPILER_MSVC
|
||||||
|
|
||||||
|
// C++1y make_unique.
|
||||||
|
// http://herbsutter.com/2013/05/29/gotw-89-solution-smart-pointers/
|
||||||
|
// This is present in clang with -std=c++1y, but not otherwise.
|
||||||
|
namespace std {
|
||||||
|
template <typename T, typename... Args>
|
||||||
|
unique_ptr<T> make_unique(Args&&... args) {
|
||||||
|
return unique_ptr<T>(new T(forward<Args>(args)...));
|
||||||
|
}
|
||||||
|
} // namespace std
|
||||||
|
|
||||||
namespace poly {} // namespace poly
|
namespace poly {} // namespace poly
|
||||||
|
|
||||||
#endif // POLY_CXX_COMPAT_H_
|
#endif // POLY_CXX_COMPAT_H_
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* Xenia : Xbox 360 Emulator Research Project *
|
||||||
|
******************************************************************************
|
||||||
|
* Copyright 2014 Ben Vanik. All rights reserved. *
|
||||||
|
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef POLY_DEBUGGING_H_
|
||||||
|
#define POLY_DEBUGGING_H_
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
#include <poly/config.h>
|
||||||
|
|
||||||
|
namespace poly {
|
||||||
|
namespace debugging {
|
||||||
|
|
||||||
|
// Returns true if a debugger is attached to this process.
|
||||||
|
// The state may change at any time (attach after launch, etc), so do not
|
||||||
|
// cache this value. Determining if the debugger is attached is expensive,
|
||||||
|
// though, so avoid calling it frequently.
|
||||||
|
bool IsDebuggerAttached();
|
||||||
|
|
||||||
|
} // namespace debugging
|
||||||
|
} // namespace poly
|
||||||
|
|
||||||
|
#endif // POLY_DEBUGGING_H_
|
|
@ -0,0 +1,29 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* Xenia : Xbox 360 Emulator Research Project *
|
||||||
|
******************************************************************************
|
||||||
|
* Copyright 2014 Ben Vanik. All rights reserved. *
|
||||||
|
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <poly/debugging.h>
|
||||||
|
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
namespace poly {
|
||||||
|
namespace debugging {
|
||||||
|
|
||||||
|
bool IsDebuggerAttached() {
|
||||||
|
// https://developer.apple.com/library/mac/qa/qa1361/_index.html
|
||||||
|
kinfo_proc info;
|
||||||
|
info.kp_proc.p_flag = 0;
|
||||||
|
int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()};
|
||||||
|
size_t size = sizeof(info);
|
||||||
|
sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, nullptr, 0);
|
||||||
|
return (info.kp_proc.p_flag & P_TRACED) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace debugging
|
||||||
|
} // namespace poly
|
|
@ -0,0 +1,20 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* Xenia : Xbox 360 Emulator Research Project *
|
||||||
|
******************************************************************************
|
||||||
|
* Copyright 2014 Ben Vanik. All rights reserved. *
|
||||||
|
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <poly/debugging.h>
|
||||||
|
|
||||||
|
namespace poly {
|
||||||
|
namespace debugging {
|
||||||
|
|
||||||
|
bool IsDebuggerAttached() {
|
||||||
|
return IsDebuggerPresent() ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace debugging
|
||||||
|
} // namespace poly
|
|
@ -27,109 +27,106 @@ XE_CPU: 32BIT | 64BIT | BIGENDIAN | LITTLEENDIAN
|
||||||
#include <TargetConditionals.h>
|
#include <TargetConditionals.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(TARGET_OS_EMBEDDED) && TARGET_OS_EMBEDDED ) || \
|
#if (defined(TARGET_OS_EMBEDDED) && TARGET_OS_EMBEDDED) || \
|
||||||
(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE ) || \
|
(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || \
|
||||||
(defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR)
|
(defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR)
|
||||||
|
|
||||||
#define XE_PLATFORM_IOS 1
|
#define XE_PLATFORM_IOS 1
|
||||||
#define XE_LIKE_OSX 1
|
#define XE_LIKE_OSX 1
|
||||||
#define XE_PROFILE_EMBEDDED 1
|
#define XE_PROFILE_EMBEDDED 1
|
||||||
|
|
||||||
#if defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR
|
#if defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR
|
||||||
// EMBEDDED *and* SIMULATOR
|
// EMBEDDED *and* SIMULATOR
|
||||||
#define XE_PROFILE_SIMULATOR 1
|
#define XE_PROFILE_SIMULATOR 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif defined(TARGET_OS_MAC) && TARGET_OS_MAC
|
#elif defined(TARGET_OS_MAC) && TARGET_OS_MAC
|
||||||
|
|
||||||
#define XE_PLATFORM_OSX 1
|
#define XE_PLATFORM_OSX 1
|
||||||
#define XE_LIKE_OSX 1
|
#define XE_LIKE_OSX 1
|
||||||
#define XE_PROFILE_DESKTOP 1
|
#define XE_PROFILE_DESKTOP 1
|
||||||
|
|
||||||
#elif defined(_XBOX)
|
#elif defined(_XBOX)
|
||||||
|
|
||||||
#define XE_PLATFORM_XBOX360 1
|
#define XE_PLATFORM_XBOX360 1
|
||||||
#define XE_LIKE_WIN32 1
|
#define XE_LIKE_WIN32 1
|
||||||
#define XE_PROFILE_EMBEDDED 1
|
#define XE_PROFILE_EMBEDDED 1
|
||||||
|
|
||||||
#elif defined(_WIN32_WCE)
|
#elif defined(_WIN32_WCE)
|
||||||
|
|
||||||
#define XE_PLATFORM_WINCE 1
|
#define XE_PLATFORM_WINCE 1
|
||||||
#define XE_LIKE_WIN32 1
|
#define XE_LIKE_WIN32 1
|
||||||
#define XE_PROFILE_EMBEDDED 1
|
#define XE_PROFILE_EMBEDDED 1
|
||||||
|
|
||||||
#elif defined(__CYGWIN__)
|
#elif defined(__CYGWIN__)
|
||||||
|
|
||||||
#define XE_PLATFORM_CYGWIN 1
|
#define XE_PLATFORM_CYGWIN 1
|
||||||
#define XE_LIKE_POSIX 1
|
#define XE_LIKE_POSIX 1
|
||||||
#define XE_PROFILE_DESKTOP 1
|
#define XE_PROFILE_DESKTOP 1
|
||||||
|
|
||||||
#elif defined(WIN32) || defined(_WIN32)
|
#elif defined(WIN32) || defined(_WIN32)
|
||||||
|
|
||||||
#define XE_PLATFORM_WIN32 1
|
#define XE_PLATFORM_WIN32 1
|
||||||
#define XE_LIKE_WIN32 1
|
#define XE_LIKE_WIN32 1
|
||||||
#define XE_PROFILE_DESKTOP 1
|
#define XE_PROFILE_DESKTOP 1
|
||||||
|
|
||||||
#elif defined(ANDROID)
|
#elif defined(ANDROID)
|
||||||
|
|
||||||
#define XE_PLATFORM_ANDROID 1
|
#define XE_PLATFORM_ANDROID 1
|
||||||
#define XE_LIKE_POSIX 1
|
#define XE_LIKE_POSIX 1
|
||||||
#define XE_PROFILE_EMBEDDED 1
|
#define XE_PROFILE_EMBEDDED 1
|
||||||
|
|
||||||
#elif defined(__native_client__)
|
#elif defined(__native_client__)
|
||||||
|
|
||||||
#define XE_PLATFORM_NACL 1
|
#define XE_PLATFORM_NACL 1
|
||||||
#define XE_LIKE_POSIX 1
|
#define XE_LIKE_POSIX 1
|
||||||
#define XE_PROFILE_DESKTOP 1
|
#define XE_PROFILE_DESKTOP 1
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define XE_PLATFORM_UNIX 1
|
#define XE_PLATFORM_UNIX 1
|
||||||
#define XE_LIKE_POSIX 1
|
#define XE_LIKE_POSIX 1
|
||||||
#define XE_PROFILE_DESKTOP 1
|
#define XE_PROFILE_DESKTOP 1
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__clang__)
|
#if defined(__clang__)
|
||||||
#define XE_COMPILER_CLANG 1
|
#define XE_COMPILER_CLANG 1
|
||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__)
|
||||||
#define XE_COMPILER_GNUC 1
|
#define XE_COMPILER_GNUC 1
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
#define XE_COMPILER_MSVC 1
|
#define XE_COMPILER_MSVC 1
|
||||||
#elif defined(__MINGW32)
|
#elif defined(__MINGW32)
|
||||||
#define XE_COMPILER_MINGW32 1
|
#define XE_COMPILER_MINGW32 1
|
||||||
#elif defined(__INTEL_COMPILER)
|
#elif defined(__INTEL_COMPILER)
|
||||||
#define XE_COMPILER_INTEL 1
|
#define XE_COMPILER_INTEL 1
|
||||||
#else
|
#else
|
||||||
#define XE_COMPILER_UNKNOWN 1
|
#define XE_COMPILER_UNKNOWN 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__ia64__) || defined(_M_IA64) || \
|
#if defined(__ia64__) || defined(_M_IA64) || defined(__ppc64__) || \
|
||||||
defined(__ppc64__) || defined(__PPC64__) || \
|
defined(__PPC64__) || defined(__arch64__) || defined(__x86_64__) || \
|
||||||
defined(__arch64__) || \
|
defined(_M_X64) || defined(_M_AMD64) || defined(__LP64__) || \
|
||||||
defined(__x86_64__) || defined(_M_X64) || defined(_M_AMD64) || \
|
defined(__LLP64) || defined(_WIN64) || (__WORDSIZE == 64)
|
||||||
defined(__LP64__) || defined(__LLP64) || \
|
#define XE_CPU_64BIT 1
|
||||||
defined(_WIN64) || \
|
|
||||||
(__WORDSIZE == 64)
|
|
||||||
#define XE_CPU_64BIT 1
|
|
||||||
#else
|
#else
|
||||||
#define XE_CPU_32BIT 1
|
#define XE_CPU_32BIT 1
|
||||||
#endif // [64bit flags]
|
#endif // [64bit flags]
|
||||||
|
|
||||||
#if defined(__ppc__) || defined(__PPC__) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(_M_PPC) || defined(__PPC) || \
|
#if defined(__ppc__) || defined(__PPC__) || defined(__powerpc__) || \
|
||||||
defined(__ppc64__) || defined(__PPC64__) || \
|
defined(__powerpc) || defined(__POWERPC__) || defined(_M_PPC) || \
|
||||||
defined(__ARMEB__) || defined(__THUMBEB__) || \
|
defined(__PPC) || defined(__ppc64__) || defined(__PPC64__) || \
|
||||||
defined(__AARCH64EB__) || \
|
defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \
|
||||||
defined(__BIG_ENDIAN) || defined(__BIG_ENDIAN__)
|
defined(__BIG_ENDIAN) || defined(__BIG_ENDIAN__)
|
||||||
#define XE_CPU_BIGENDIAN 1
|
#define XE_CPU_BIGENDIAN 1
|
||||||
#else
|
#else
|
||||||
#define XE_CPU_LITTLEENDIAN 1
|
#define XE_CPU_LITTLEENDIAN 1
|
||||||
#endif // [big endian flags]
|
#endif // [big endian flags]
|
||||||
|
|
||||||
#if XE_CPU_32BIT
|
#if XE_CPU_32BIT
|
||||||
#define XE_ALIGNMENT 8
|
#define XE_ALIGNMENT 8
|
||||||
#else
|
#else
|
||||||
#define XE_ALIGNMENT 16
|
#define XE_ALIGNMENT 16
|
||||||
#endif // 32BIT
|
#endif // 32BIT
|
||||||
|
|
||||||
#if XE_PLATFORM_WINCE || XE_PLATFORM_WIN32
|
#if XE_PLATFORM_WINCE || XE_PLATFORM_WIN32
|
||||||
|
@ -168,7 +165,7 @@ const char path_separator = '\\';
|
||||||
const size_t max_path = _MAX_PATH;
|
const size_t max_path = _MAX_PATH;
|
||||||
#else
|
#else
|
||||||
const char path_separator = '/';
|
const char path_separator = '/';
|
||||||
const size_t max_path = PATH_MAX;
|
const size_t max_path = 1024; // PATH_MAX
|
||||||
#endif // WIN32
|
#endif // WIN32
|
||||||
|
|
||||||
} // namespace poly
|
} // namespace poly
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
'assert.h',
|
'assert.h',
|
||||||
'atomic.h',
|
'atomic.h',
|
||||||
'byte_order.h',
|
'byte_order.h',
|
||||||
|
'debugging.h',
|
||||||
'config.h',
|
'config.h',
|
||||||
'cxx_compat.h',
|
'cxx_compat.h',
|
||||||
'math.cc',
|
'math.cc',
|
||||||
|
@ -28,11 +29,13 @@
|
||||||
}],
|
}],
|
||||||
['OS == "mac"', {
|
['OS == "mac"', {
|
||||||
'sources': [
|
'sources': [
|
||||||
|
'debugging_mac.cc',
|
||||||
'threading_mac.cc',
|
'threading_mac.cc',
|
||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
['OS == "win"', {
|
['OS == "win"', {
|
||||||
'sources': [
|
'sources': [
|
||||||
|
'debugging_win.cc',
|
||||||
'threading_win.cc',
|
'threading_win.cc',
|
||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <alloy/backend/ivm/ivm_backend.h>
|
#include <alloy/backend/ivm/ivm_backend.h>
|
||||||
#include <alloy/backend/x64/x64_backend.h>
|
#include <alloy/backend/x64/x64_backend.h>
|
||||||
#include <alloy/runtime/raw_module.h>
|
#include <alloy/runtime/raw_module.h>
|
||||||
|
#include <poly/poly.h>
|
||||||
#include <xenia/export_resolver.h>
|
#include <xenia/export_resolver.h>
|
||||||
#include <xenia/cpu/xenon_memory.h>
|
#include <xenia/cpu/xenon_memory.h>
|
||||||
#include <xenia/cpu/xenon_runtime.h>
|
#include <xenia/cpu/xenon_runtime.h>
|
||||||
|
|
Loading…
Reference in New Issue