mirror of
https://github.com/libretro/beetle-lynx-libretro.git
synced 2024-12-04 14:43:36 +00:00
83 lines
1.8 KiB
C
83 lines
1.8 KiB
C
#ifndef __MDFN_TYPES
|
|
#define __MDFN_TYPES
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef int8_t int8;
|
|
typedef int16_t int16;
|
|
typedef int32_t int32;
|
|
typedef int64_t int64;
|
|
|
|
typedef uint8_t uint8;
|
|
typedef uint16_t uint16;
|
|
typedef uint32_t uint32;
|
|
typedef uint64_t uint64;
|
|
|
|
#ifdef __GNUC__
|
|
#define MDFN_UNLIKELY(n) __builtin_expect((n) != 0, 0)
|
|
#define MDFN_LIKELY(n) __builtin_expect((n) != 0, 1)
|
|
|
|
#define INLINE inline __attribute__((always_inline))
|
|
|
|
#if defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
|
|
#define MDFN_FASTCALL __attribute__((fastcall))
|
|
#else
|
|
#define MDFN_FASTCALL
|
|
#endif
|
|
|
|
#define MDFN_ALIGN(n) __attribute__ ((aligned (n)))
|
|
#define MDFN_FORMATSTR(a,b,c) __attribute__ ((format (a, b, c)));
|
|
#define MDFN_WARN_UNUSED_RESULT __attribute__ ((warn_unused_result))
|
|
#define MDFN_NOWARN_UNUSED __attribute__((unused))
|
|
|
|
#elif defined(_MSC_VER)
|
|
|
|
/* roundf and va_copy is available since MSVC 2013 */
|
|
#if _MSC_VER < 1800
|
|
#define roundf(in) (in >= 0.0f ? floorf(in + 0.5f) : ceilf(in - 0.5f))
|
|
#endif
|
|
|
|
#define INLINE inline
|
|
#define MDFN_LIKELY(n) ((n) != 0)
|
|
#define MDFN_UNLIKELY(n) ((n) != 0)
|
|
|
|
#define MDFN_FASTCALL
|
|
|
|
#define MDFN_ALIGN(n) __declspec(align(n))
|
|
|
|
#define MDFN_FORMATSTR(a,b,c)
|
|
|
|
#define MDFN_WARN_UNUSED_RESULT
|
|
#define MDFN_NOWARN_UNUSED
|
|
|
|
#else
|
|
#include <retro_inline.h>
|
|
#error "Not compiling with GCC nor MSVC"
|
|
|
|
#define MDFN_FASTCALL
|
|
|
|
#define MDFN_ALIGN(n) // hence the #error.
|
|
|
|
#define MDFN_FORMATSTR(a,b,c)
|
|
|
|
#define MDFN_WARN_UNUSED_RESULT
|
|
|
|
#endif
|
|
|
|
typedef uint32 UTF32; /* at least 32 bits */
|
|
typedef uint16 UTF16; /* at least 16 bits */
|
|
typedef uint8 UTF8; /* typically 8 bits */
|
|
typedef unsigned char Boolean; /* 0 or 1 */
|
|
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#define MDFN_COLD
|
|
|
|
#endif
|