New ACC version.

committer: mfx <mfx> 1061224659 +0000
This commit is contained in:
Markus F.X.J. Oberhumer
2003-08-18 16:37:39 +00:00
parent d1753c6df9
commit 8eda698a9c
6 changed files with 114 additions and 69 deletions
+7 -6
View File
@@ -31,7 +31,8 @@
* ACC_ENDIAN_BIG_ENDIAN * ACC_ENDIAN_BIG_ENDIAN
* *
* Note that this list is not exhaustive - actually we only really care * Note that this list is not exhaustive - actually we only really care
* about IA32 which allows unaligned memory access (at reasonable speed). * about architectures which allows unaligned memory access at reasonable
* speed (for the moment this means IA16 and IA32).
*/ */
#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16) #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
@@ -50,11 +51,11 @@
# define ACC_ARCH_IA64 1 # define ACC_ARCH_IA64 1
# define ACC_INFO_ARCH "ia64" # define ACC_INFO_ARCH "ia64"
#elif (ACC_OS_DOS32 || ACC_OS_OS2) #elif (ACC_OS_DOS32 || ACC_OS_OS2)
# error "missing define for CPU architechture" # error "missing define for CPU architecture"
#elif (0 && ACC_OS_WIN32) #elif (ACC_OS_WIN32)
# error "missing define for CPU architechture" # error "missing define for CPU architecture"
#elif (0 && ACC_OS_WIN64) #elif (ACC_OS_WIN64)
# error "missing define for CPU architechture" # error "missing define for CPU architecture"
#elif (ACC_OS_TOS) || defined(__m68000__) #elif (ACC_OS_TOS) || defined(__m68000__)
# define ACC_ARCH_M68K 1 # define ACC_ARCH_M68K 1
# define ACC_INFO_ARCH "m68k" # define ACC_INFO_ARCH "m68k"
+4 -4
View File
@@ -187,12 +187,12 @@
#elif (ACC_CC_TURBOC) #elif (ACC_CC_TURBOC)
# undef HAVE_UNISTD_H # undef HAVE_UNISTD_H
# undef HAVE_SYS_TIME_H # undef HAVE_SYS_TIME_H
# undef HAVE_SYS_TYPES_H /* useless */
# if (ACC_OS_WIN32 || ACC_OS_WIN64) # if (ACC_OS_WIN32 || ACC_OS_WIN64)
# undef HAVE_DIRENT_H /* pulls in <windows.h>; use <dir.h> instead */ # undef HAVE_DIRENT_H /* pulls in <windows.h>; use <dir.h> instead */
# endif # endif
# if (__TURBOC__ < 0x0200) # if (__TURBOC__ < 0x0200)
# undef HAVE_SIGNAL_H /* not working */ # undef HAVE_SIGNAL_H /* not working */
# undef HAVE_SYS_TYPES_H
# endif # endif
# if (__TURBOC__ < 0x0400) # if (__TURBOC__ < 0x0400)
# undef HAVE_DIRECT_H # undef HAVE_DIRECT_H
@@ -319,7 +319,7 @@
# undef HAVE_UTIME /* struct utimbuf is missing */ # undef HAVE_UTIME /* struct utimbuf is missing */
# undef HAVE_VSNPRINTF # undef HAVE_VSNPRINTF
#elif (ACC_CC_BORLANDC) #elif (ACC_CC_BORLANDC)
# if (ACC_OS_DOS16 || ACC_OS_WIN16) # if defined(ACC_MM_TINY)
# undef HAVE_DIFFTIME /* difftime() is in the math library */ # undef HAVE_DIFFTIME /* difftime() is in the math library */
# endif # endif
# if (__BORLANDC__ < 0x0400) # if (__BORLANDC__ < 0x0400)
@@ -339,7 +339,7 @@
#elif defined(__DJGPP__) #elif defined(__DJGPP__)
# undef HAVE_SNPRINTF # undef HAVE_SNPRINTF
# undef HAVE_VSNPRINTF # undef HAVE_VSNPRINTF
#elif (ACC_CC_IBMC && ACC_OS_OS2) #elif (ACC_CC_IBMC)
# undef HAVE_SNPRINTF # undef HAVE_SNPRINTF
# undef HAVE_VSNPRINTF # undef HAVE_VSNPRINTF
#elif (ACC_CC_INTELC) #elif (ACC_CC_INTELC)
@@ -493,7 +493,7 @@
# define SIZEOF___INT64 8 # define SIZEOF___INT64 8
# define SIZEOF_UNSIGNED___INT64 8 # define SIZEOF_UNSIGNED___INT64 8
#elif (ACC_ARCH_IA32 && (ACC_CC_BORLANDC && __BORLANDC__ >= 0x0520)) #elif (ACC_ARCH_IA32 && (ACC_CC_BORLANDC && __BORLANDC__ >= 0x0520))
/* WARNING: unsigned __int64 is somewhat broken in 0x0520 */ /* INFO: unsigned __int64 is somewhat broken in 0x0520; fixed in 0x0530 */
# define SIZEOF___INT64 8 # define SIZEOF___INT64 8
# define SIZEOF_UNSIGNED___INT64 8 # define SIZEOF_UNSIGNED___INT64 8
#elif (ACC_ARCH_IA32 && (ACC_CC_WATCOMC && __WATCOMC__ >= 1100)) #elif (ACC_ARCH_IA32 && (ACC_CC_WATCOMC && __WATCOMC__ >= 1100))
+82 -38
View File
@@ -19,9 +19,22 @@
/************************************************************************* /*************************************************************************
// // exceptions
// ACC_CXX_NOTHROW
**************************************************************************/ **************************************************************************/
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x028000ul))
# define ACC_CXX_NOTHROW
#elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
# define ACC_CXX_NOTHROW
#elif (ACC_CC_TURBOC)
# define ACC_CXX_NOTHROW
#elif (ACC_CC_MSC && (_MSC_VER < 1100))
# define ACC_CXX_NOTHROW
#elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
# define ACC_CXX_NOTHROW
#endif
#if !defined(ACC_CXX_NOTHROW) #if !defined(ACC_CXX_NOTHROW)
# define ACC_CXX_NOTHROW throw() # define ACC_CXX_NOTHROW throw()
#endif #endif
@@ -29,58 +42,89 @@
/************************************************************************* /*************************************************************************
// disable dynamic allocation of an object // disable dynamic allocation of an object
// ACC_CXX_DISABLE_NEW_DELETE
// ACC_CXX_DISABLE_NEW_DELETE_STRICT
**************************************************************************/ **************************************************************************/
#if defined(new) || defined(delete) #undef __ACC_CXX_HAVE_ARRAY_NEW
#elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC) #undef __ACC_CXX_HAVE_PLACEMENT_NEW
#undef __ACC_CXX_HAVE_PLACEMENT_DELETE
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x029000ul)) #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x029000ul))
# define ACC_CXX_DISABLE_NEW_DELETE private:
#elif (ACC_CC_MSC && ACC_MM_HUGE)
# define ACC_CXX_DISABLE_NEW_DELETE private:
#elif (ACC_CC_MSC && (_MSC_VER < 1100))
#elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
#elif (ACC_CC_TURBOC)
#elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
#else #else
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW \ # define __ACC_CXX_HAVE_ARRAY_NEW 1
static void* operator new(size_t, void*); #endif
#if (__ACC_CXX_HAVE_ARRAY_NEW)
# define __ACC_CXX_HAVE_PLACEMENT_NEW 1
#endif
#if (__ACC_CXX_HAVE_PLACEMENT_NEW)
# if (ACC_CC_GNUC >= 0x030000ul) # if (ACC_CC_GNUC >= 0x030000ul)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \ # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# elif (ACC_CC_INTELC) # elif (ACC_CC_INTELC)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \ # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# elif (ACC_CC_MSC && (_MSC_VER >= 1200)) # elif (ACC_CC_MSC && (_MSC_VER >= 1200))
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \ # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
# endif
#endif
#if !defined(__ACC_CXX_PLACEMENT_NEW) && (__ACC_CXX_HAVE_PLACEMENT_NEW)
# define __ACC_CXX_PLACEMENT_NEW \
static void* operator new(size_t, void*);
#endif
#if !defined(__ACC_CXX_PLACEMENT_DELETE) && (__ACC_CXX_HAVE_PLACEMENT_DELETE)
# define __ACC_CXX_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { } static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
#endif #endif
# if !defined(__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW) #if !defined(__ACC_CXX_PLACEMENT_NEW)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW # define __ACC_CXX_PLACEMENT_NEW
# undef __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE
#endif #endif
# if !defined(__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE) #if !defined(__ACC_CXX_PLACEMENT_DELETE)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE # define __ACC_CXX_PLACEMENT_DELETE
# endif
# define ACC_CXX_DISABLE_NEW_DELETE \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t); \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
private:
# define ACC_CXX_DISABLE_NEW_DELETE_STRICT \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t); \
__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
private:
#endif #endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE) #if !defined(ACC_CXX_DISABLE_NEW_DELETE) && (defined(new) || defined(delete))
# define ACC_CXX_DISABLE_NEW_DELETE private: # define ACC_CXX_DISABLE_NEW_DELETE private:
#endif #endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE) && !(__ACC_CXX_HAVE_ARRAY_NEW)
/* for old compilers use `protected' instead of `private' */
# define ACC_CXX_DISABLE_NEW_DELETE \
protected: static void operator delete(void*) ACC_CXX_NOTHROW { } \
protected: static void* operator new(size_t); \
private:
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE)
# define ACC_CXX_DISABLE_NEW_DELETE \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t);
# define ACC_CXX_DISABLE_NEW_DELETE_STRICT \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
__ACC_CXX_PLACEMENT_DELETE \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t); \
__ACC_CXX_PLACEMENT_NEW
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE_STRICT) #if !defined(ACC_CXX_DISABLE_NEW_DELETE_STRICT)
# define ACC_CXX_DISABLE_NEW_DELETE_STRICT ACC_CXX_DISABLE_NEW_DELETE # define ACC_CXX_DISABLE_NEW_DELETE_STRICT ACC_CXX_DISABLE_NEW_DELETE
#endif #endif
+2 -2
View File
@@ -245,7 +245,7 @@ typedef struct {
} acc_rand48_t; } acc_rand48_t;
ACCLIB_EXTERN(void, acc_srand48) (acc_rand48_t* r, acc_uint32l_t seed); ACCLIB_EXTERN(void, acc_srand48) (acc_rand48_t* r, acc_uint32l_t seed);
ACCLIB_EXTERN(acc_uint32l_t, acc_rand48) (acc_rand48_t* r); ACCLIB_EXTERN(acc_uint32l_t, acc_rand48) (acc_rand48_t* r);
#endif /* defined(acc_uint64l_t) */ #endif
#if defined(acc_uint64l_t) #if defined(acc_uint64l_t)
typedef struct { typedef struct {
@@ -253,7 +253,7 @@ typedef struct {
} acc_rand64_t; } acc_rand64_t;
ACCLIB_EXTERN(void, acc_srand64) (acc_rand64_t* r, acc_uint64l_t seed); ACCLIB_EXTERN(void, acc_srand64) (acc_rand64_t* r, acc_uint64l_t seed);
ACCLIB_EXTERN(acc_uint32l_t, acc_rand64) (acc_rand64_t* r); ACCLIB_EXTERN(acc_uint32l_t, acc_rand64) (acc_rand64_t* r);
#endif /* defined(acc_uint64l_t) */ #endif
#endif /* already included */ #endif /* already included */
+16 -16
View File
@@ -22,28 +22,28 @@
// FIXME // FIXME
**************************************************************************/ **************************************************************************/
ACCLIB_EXTERN(unsigned, acc_get_be16) (const acc_hvoid_p); ACCLIB_PUBLIC(unsigned, acc_get_be16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be24) (const acc_hvoid_p); ACCLIB_PUBLIC(acc_uint32l_t, acc_get_be24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be32) (const acc_hvoid_p); ACCLIB_PUBLIC(acc_uint32l_t, acc_get_be32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be16) (acc_hvoid_p, unsigned v); ACCLIB_PUBLIC(void, acc_set_be16) (acc_hvoid_p, unsigned v);
ACCLIB_EXTERN(void, acc_set_be24) (acc_hvoid_p, acc_uint32l_t v); ACCLIB_PUBLIC(void, acc_set_be24) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_EXTERN(void, acc_set_be32) (acc_hvoid_p, acc_uint32l_t v); ACCLIB_PUBLIC(void, acc_set_be32) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_EXTERN(unsigned, acc_get_le16) (const acc_hvoid_p); ACCLIB_PUBLIC(unsigned, acc_get_le16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le24) (const acc_hvoid_p); ACCLIB_PUBLIC(acc_uint32l_t, acc_get_le24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le32) (const acc_hvoid_p); ACCLIB_PUBLIC(acc_uint32l_t, acc_get_le32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le16) (acc_hvoid_p, unsigned v); ACCLIB_PUBLIC(void, acc_set_le16) (acc_hvoid_p, unsigned v);
ACCLIB_EXTERN(void, acc_set_le24) (acc_hvoid_p, acc_uint32l_t v); ACCLIB_PUBLIC(void, acc_set_le24) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_EXTERN(void, acc_set_le32) (acc_hvoid_p, acc_uint32l_t v); ACCLIB_PUBLIC(void, acc_set_le32) (acc_hvoid_p, acc_uint32l_t v);
#if defined(acc_uint64l_t) #if defined(acc_uint64l_t)
ACCLIB_EXTERN(acc_uint64l_t, acc_get_be64) (const acc_hvoid_p); ACCLIB_PUBLIC(acc_uint64l_t, acc_get_be64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be64) (acc_hvoid_p, acc_uint64l_t v); ACCLIB_PUBLIC(void, acc_set_be64) (acc_hvoid_p, acc_uint64l_t v);
ACCLIB_EXTERN(acc_uint64l_t, acc_get_le64) (const acc_hvoid_p); ACCLIB_PUBLIC(acc_uint64l_t, acc_get_le64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le64) (acc_hvoid_p, acc_uint64l_t v); ACCLIB_PUBLIC(void, acc_set_le64) (acc_hvoid_p, acc_uint64l_t v);
#endif #endif