assume c++11

clang didn't like static members in anonymous structures, gave them names
WriteEvent template wouldn't resolve for temporary values without const decl in clang
added a few missing headers
added -fno-operator-names for xbyak compilation under gcc/clang
This commit is contained in:
Anthony Pesch 2014-05-13 22:20:42 -07:00
parent 482ffb053a
commit 60a7e79e1a
17 changed files with 51 additions and 38 deletions

View File

@ -109,7 +109,7 @@ int IVMAssembler::Assemble(
// Fixup label references.
LabelRef* label_ref = ctx.label_ref_head;
while (label_ref) {
label_ref->instr->src1_reg = (uint32_t)label_ref->label->tag & ~0x80000000;
label_ref->instr->src1_reg = (uint32_t)(intptr_t)label_ref->label->tag & ~0x80000000;
label_ref = label_ref->next;
}

View File

@ -32,17 +32,17 @@ public:
ALLOY_BACKEND_IVM_ASSEMBLER_DEINIT = ALLOY_BACKEND_IVM_ASSEMBLER | (2),
};
typedef struct {
typedef struct Init_s {
static const uint32_t event_type = ALLOY_BACKEND_IVM_INIT;
} Init;
typedef struct {
typedef struct Deinit_s {
static const uint32_t event_type = ALLOY_BACKEND_IVM_DEINIT;
} Deinit;
typedef struct {
typedef struct AssemblerInit_s {
static const uint32_t event_type = ALLOY_BACKEND_IVM_ASSEMBLER_INIT;
} AssemblerInit;
typedef struct {
typedef struct AssemblerDeinit_s {
static const uint32_t event_type = ALLOY_BACKEND_IVM_ASSEMBLER_DEINIT;
} AssemblerDeinit;
};

View File

@ -11,6 +11,7 @@
#define ALLOY_BACKEND_X64_X64_LOWERING_TRACERS_H_
#include <alloy/core.h>
#include <xmmintrin.h>
namespace alloy {

View File

@ -32,17 +32,17 @@ public:
ALLOY_BACKEND_X64_ASSEMBLER_DEINIT = ALLOY_BACKEND_X64_ASSEMBLER | (2),
};
typedef struct {
typedef struct Init_s {
static const uint32_t event_type = ALLOY_BACKEND_X64_INIT;
} Init;
typedef struct {
typedef struct Deinit_s {
static const uint32_t event_type = ALLOY_BACKEND_X64_DEINIT;
} Deinit;
typedef struct {
typedef struct AssemblerInit_s {
static const uint32_t event_type = ALLOY_BACKEND_X64_ASSEMBLER_INIT;
} AssemblerInit;
typedef struct {
typedef struct AssemblerDeinit_s {
static const uint32_t event_type = ALLOY_BACKEND_X64_ASSEMBLER_DEINIT;
} AssemblerDeinit;
};

View File

@ -27,10 +27,10 @@ public:
ALLOY_COMPILER_DEINIT = ALLOY_COMPILER | (2),
};
typedef struct {
typedef struct Init_s {
static const uint32_t event_type = ALLOY_COMPILER_INIT;
} Init;
typedef struct {
typedef struct Deinit_s {
static const uint32_t event_type = ALLOY_COMPILER_DEINIT;
} Deinit;
};

View File

@ -11,6 +11,7 @@
#define ALLOY_DELEGATE_H_
#include <functional>
#include <vector>
#include <alloy/core.h>
#include <alloy/mutex.h>

View File

@ -27,10 +27,10 @@ public:
ALLOY_FRONTEND_DEINIT = ALLOY_FRONTEND | (2),
};
typedef struct {
typedef struct Init_s {
static const uint32_t event_type = ALLOY_FRONTEND_INIT;
} Init;
typedef struct {
typedef struct Deinit_s {
static const uint32_t event_type = ALLOY_FRONTEND_DEINIT;
} Deinit;
};

View File

@ -47,7 +47,7 @@ public:
private:
// TODO(benvanik): replace with a better data structure.
Mutex* lock_;
typedef std::tr1::unordered_map<uint64_t, Entry*> EntryMap;
typedef std::unordered_map<uint64_t, Entry*> EntryMap;
EntryMap map_;
};

View File

@ -62,7 +62,7 @@ protected:
private:
// TODO(benvanik): replace with a better data structure.
Mutex* lock_;
typedef std::tr1::unordered_map<uint64_t, SymbolInfo*> SymbolMap;
typedef std::unordered_map<uint64_t, SymbolInfo*> SymbolMap;
SymbolMap map_;
typedef std::vector<SymbolInfo*> SymbolList;
SymbolList list_;

View File

@ -40,46 +40,46 @@ public:
ALLOY_RUNTIME_MEMORY_HEAP_FREE = ALLOY_RUNTIME_MEMORY | (4),
};
typedef struct {
typedef struct Init_s {
static const uint32_t event_type = ALLOY_RUNTIME_INIT;
} Init;
typedef struct {
typedef struct Deinit_s {
static const uint32_t event_type = ALLOY_RUNTIME_DEINIT;
} Deinit;
typedef struct {
typedef struct ThreadInit_s {
static const uint32_t event_type = ALLOY_RUNTIME_THREAD_INIT;
} ThreadInit;
typedef struct {
typedef struct ThreadDeinit_s {
static const uint32_t event_type = ALLOY_RUNTIME_THREAD_DEINIT;
} ThreadDeinit;
typedef struct {
typedef struct MemoryInit_s {
static const uint32_t event_type = ALLOY_RUNTIME_MEMORY_INIT;
// map of memory, etc?
} MemoryInit;
typedef struct {
typedef struct MemoryDeinit_s {
static const uint32_t event_type = ALLOY_RUNTIME_MEMORY_DEINIT;
} MemoryDeinit;
typedef struct {
typedef struct MemoryHeapInit_s {
static const uint32_t event_type = ALLOY_RUNTIME_MEMORY_HEAP_INIT;
uint32_t heap_id;
uint64_t low_address;
uint64_t high_address;
uint32_t is_physical;
} MemoryHeapInit;
typedef struct {
typedef struct MemoryHeapDeinit_s {
static const uint32_t event_type = ALLOY_RUNTIME_MEMORY_HEAP_DEINIT;
uint32_t heap_id;
} MemoryHeapDeinit;
typedef struct {
typedef struct MemoryHeapAlloc_s {
static const uint32_t event_type = ALLOY_RUNTIME_MEMORY_HEAP_ALLOC;
uint32_t heap_id;
uint32_t flags;
uint64_t address;
size_t size;
} MemoryHeapAlloc;
typedef struct {
typedef struct MemoryHeapFree_s {
static const uint32_t event_type = ALLOY_RUNTIME_MEMORY_HEAP_FREE;
uint32_t heap_id;
uint64_t address;

View File

@ -33,10 +33,10 @@ public:
USER = (1 << 31),
};
typedef struct {
typedef struct TraceInit_s {
static const uint32_t event_type = ALLOY_TRACE_INIT;
} TraceInit;
typedef struct {
typedef struct TraceEOF_s {
static const uint32_t event_type = ALLOY_TRACE_EOF;
} TraceEOF;
};

View File

@ -30,7 +30,7 @@ Tracer* GetThreadTracer();
void WriteEvent(uint32_t event_type, size_t size = 0, const void* data = 0);
template<typename T> void WriteEvent(T& ev) {
template<typename T> void WriteEvent(const T& ev) {
if (sizeof(T) > 1) {
alloy::tracing::WriteEvent(T::event_type, sizeof(T), &ev);
} else {

View File

@ -70,7 +70,7 @@ int FileSystem::CreateSymbolicLink(const char* path, const char* target) {
}
int FileSystem::DeleteSymbolicLink(const char* path) {
std::tr1::unordered_map<std::string, std::string>::iterator it =
std::unordered_map<std::string, std::string>::iterator it =
symlinks_.find(std::string(path));
if (it != symlinks_.end()) {
symlinks_.erase(it);
@ -93,7 +93,7 @@ Entry* FileSystem::ResolvePath(const char* path) {
// drive path -> device mappings with nothing nested.
char full_path[XE_MAX_PATH];
XEIGNORE(xestrcpya(full_path, XECOUNT(full_path), path));
for (std::tr1::unordered_map<std::string, std::string>::iterator it =
for (std::unordered_map<std::string, std::string>::iterator it =
symlinks_.begin(); it != symlinks_.end(); ++it) {
if (xestrcasestra(path, it->first.c_str()) == path) {
// Found symlink, fixup.

View File

@ -43,7 +43,7 @@ public:
private:
std::vector<Device*> devices_;
std::tr1::unordered_map<std::string, std::string> symlinks_;
std::unordered_map<std::string, std::string> symlinks_;
};

View File

@ -56,13 +56,8 @@
#include <assert.h>
#include <stdint.h>
#if XE_COMPILER_MSVC
#include <memory>
#include <unordered_map>
#else
#include <tr1/memory>
#include <tr1/unordered_map>
#endif // MSVC
#endif // XENIA_PLATFORM_INCLUDES_H_

View File

@ -16,7 +16,7 @@
namespace xe {
// TODO(benvanik): support other compilers/etc
using std::auto_ptr;
using std::tr1::shared_ptr;
using std::shared_ptr;
} // namespace xe

View File

@ -96,7 +96,7 @@
'SYMROOT': '<(DEPTH)/build/xenia/',
'ALWAYS_SEARCH_USER_PATHS': 'NO',
'ARCHS': ['x86_64'],
#'CLANG_CXX_LANGUAGE_STANDARD': 'c++0x',
'CLANG_CXX_LANGUAGE_STANDARD': 'c++11',
'COMBINE_HIDPI_IMAGES': 'YES',
'GCC_C_LANGUAGE_STANDARD': 'gnu99',
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',
@ -190,6 +190,22 @@
'gflags',
'llvm',
],
'conditions': [
['OS == "mac"', {
'xcode_settings': {
'OTHER_CFLAGS': [
'-fno-operator-names',
],
},
}],
['OS == "linux"', {
'cflags': [
'-fno-operator-names',
],
}],
],
'export_dependent_settings': [
'beaengine',
'gflags',