diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/CMakeLists.txt | 40 | ||||
| -rw-r--r-- | src/common/chunk_file.h | 4 | ||||
| -rw-r--r-- | src/common/common.h | 50 | ||||
| -rw-r--r-- | src/common/common_types.h | 10 | 
4 files changed, 93 insertions, 11 deletions
| diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 5eaf67365..48f30de4c 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -19,4 +19,42 @@ set(SRCS    break_points.cpp              timer.cpp              utf8.cpp) -add_library(common STATIC ${SRCS}) +set(HEADS   atomic.h +            atomic_gcc.h +            atomic_win32.h +            break_points.h +            chunk_file.h +            common_funcs.h +            common_paths.h +            common_types.h +            common.h +            console_listener.h +            cpu_detect.h +            debug_interface.h +            emu_window.h +            extended_trace.h +            fifo_queue.h +            file_search.h +            file_util.h +            hash.h +            linear_disk_cache.h +            log_manager.h +            log.h +            math_util.h +            mem_arena.h +            memory_util.h +            msg_handler.h +            platform.h +			scm_rev.h +            std_condition_variable.h +            std_mutex.h +            std_thread.h +            string_util.h +            swap.h +            symbols.h +            thread.h +            thunk.h +            timer.h +            utf8.h) + +add_library(common STATIC ${SRCS} ${HEADS}) diff --git a/src/common/chunk_file.h b/src/common/chunk_file.h index a41205857..c6a7cee35 100644 --- a/src/common/chunk_file.h +++ b/src/common/chunk_file.h @@ -654,7 +654,7 @@ inline PointerWrapSection::~PointerWrapSection() {  } -class CChunkFileReader +/*class CChunkFileReader  {  public:      enum Error { @@ -869,6 +869,6 @@ private:          int UncompressedSize;          char GitVersion[32];      }; -}; +}; */  #endif  // _POINTERWRAP_H_ diff --git a/src/common/common.h b/src/common/common.h index 418757855..30a6761b7 100644 --- a/src/common/common.h +++ b/src/common/common.h @@ -21,11 +21,11 @@  #define STACKALIGN -#if __cplusplus >= 201103 || defined(_MSC_VER) || defined(__GXX_EXPERIMENTAL_CXX0X__) +#if __cplusplus >= 201103L || defined(_MSC_VER) || defined(__GXX_EXPERIMENTAL_CXX0X__)  #define HAVE_CXX11_SYNTAX 1  #endif -#if HAVE_CXX11_SYNTAX +//#if HAVE_CXX11_SYNTAX  // An inheritable class to disallow the copy constructor and operator= functions  class NonCopyable  { @@ -37,7 +37,7 @@ private:      NonCopyable(NonCopyable&);      NonCopyable& operator=(NonCopyable& other);  }; -#endif +//#endif  #include "common/log.h"  #include "common/common_types.h" @@ -159,4 +159,48 @@ enum EMUSTATE_CHANGE      EMUSTATE_CHANGE_STOP  }; + +#ifdef _MSC_VER +#ifndef _XBOX +inline unsigned long long bswap64(unsigned long long x) { return _byteswap_uint64(x); } +inline unsigned int bswap32(unsigned int x) { return _byteswap_ulong(x); } +inline unsigned short bswap16(unsigned short x) { return _byteswap_ushort(x); } +#else +inline unsigned long long bswap64(unsigned long long x) { return __loaddoublewordbytereverse(0, &x); } +inline unsigned int bswap32(unsigned int x) { return __loadwordbytereverse(0, &x); } +inline unsigned short bswap16(unsigned short x) { return __loadshortbytereverse(0, &x); } +#endif +#else +// TODO: speedup +inline unsigned short bswap16(unsigned short x) { return (x << 8) | (x >> 8); } +inline unsigned int bswap32(unsigned int x) { return (x >> 24) | ((x & 0xFF0000) >> 8) | ((x & 0xFF00) << 8) | (x << 24);} +inline unsigned long long bswap64(unsigned long long x) {return ((unsigned long long)bswap32(x) << 32) | bswap32(x >> 32); } +#endif + +inline float bswapf(float f) { +    union { +        float f; +        unsigned int u32; +    } dat1, dat2; + +    dat1.f = f; +    dat2.u32 = bswap32(dat1.u32); + +    return dat2.f; +} + +inline double bswapd(double f) { +    union  { +        double f; +        unsigned long long u64; +    } dat1, dat2; + +    dat1.f = f; +    dat2.u64 = bswap64(dat1.u64); + +    return dat2.f; +} + +#include "swap.h" +  #endif // _COMMON_H_ diff --git a/src/common/common_types.h b/src/common/common_types.h index 4289b88d3..25dc912a9 100644 --- a/src/common/common_types.h +++ b/src/common/common_types.h @@ -62,7 +62,7 @@ typedef signed long long    s64;    ///< 64-bit signed int  typedef float   f32;    ///< 32-bit floating point  typedef double  f64;    ///< 64-bit floating point -#include "common/swap.h" +#include "common/common.h"  /// Union for fast 16-bit type casting  union t16 { @@ -101,15 +101,15 @@ union t128 {  };  /// Rectangle data structure -class Rect { +class BasicRect {  public: -    Rect(int x0=0, int y0=0, int x1=0, int y1=0) { +    BasicRect(int x0=0, int y0=0, int x1=0, int y1=0) {          x0_ = x0;          y0_ = y0;          x1_ = x1;          y1_ = y1;      } -    ~Rect() { } +    ~BasicRect() { }      int x0_;    ///< Rect top left X-coordinate      int y0_;    ///< Rect top left Y-coordinate @@ -119,7 +119,7 @@ public:      inline u32 width() const { return abs(x1_ - x0_); }      inline u32 height() const { return abs(y1_ - y0_); } -    inline bool operator == (const Rect& val) const { +    inline bool operator == (const BasicRect& val) const {          return (x0_ == val.x0_ && y0_ == val.y0_ && x1_ == val.x1_ && y1_ == val.y1_);      }  }; | 
