mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-12-30 15:17:27 +00:00
9a30ce5f18
* replace GetThreadID with std::this_thread.getId() * name all anonymous structs and unions that contain non-trivially constructable objects * made default constructor for big endian type noexcept to make it work with std::atomic * move instantiated specialized template function members ouside of the class definition to comply with the standard * added default instantiation for template parameter "=nullptr" * used the C++11 standardized thread_local instead of the __declspec(thread) * added transitional definitions to bridge the microsoft specific calls (compare and exchange and aligned alloc) * removed cyclic dependency between Emulator->CPUThreadManager->CPUThread->SMutex->Emulator->... * fixed some instances of indentation by space instead of tabs * surrounded some unused code with an #if 0 block to make sure it doesn't compile
20 lines
794 B
C++
20 lines
794 B
C++
#pragma once
|
|
|
|
#if defined(__GNUG__)
|
|
#include <cmath>
|
|
#define _fpclass(x) std::fpclassify(x)
|
|
#define __forceinline __attribute__((always_inline))
|
|
#define _byteswap_ushort(x) __builtin_bswap16(x)
|
|
#define _byteswap_ulong(x) __builtin_bswap32(x)
|
|
#define _byteswap_uint64(x) __builtin_bswap64(x)
|
|
#define Sleep(x) usleep(x * 1000)
|
|
#define mkdir(x) mkdir(x, 0777)
|
|
#define INFINITE 0xFFFFFFFF
|
|
#define _CRT_ALIGN(x) __attribute__((aligned(x)))
|
|
#define InterlockedCompareExchange(ptr,new_val,old_val) __sync_val_compare_and_swap(ptr,old_val,new_val)
|
|
#define InterlockedCompareExchange64(ptr,new_val,old_val) __sync_val_compare_and_swap(ptr,old_val,new_val)
|
|
#define _aligned_malloc(size,alignment) aligned_alloc(alignment,size)
|
|
#define _aligned_free(pointer) free(pointer)
|
|
#define DWORD int64_t
|
|
#endif
|