1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

New ACC version.

committer: mfx <mfx> 1060699213 +0000
This commit is contained in:
Markus F.X.J. Oberhumer 2003-08-12 14:40:13 +00:00
parent 8d5d6bd1a5
commit 3db0b0e8fe
6 changed files with 215 additions and 1 deletions

View File

@ -25,7 +25,7 @@
#ifndef __ACC_H_INCLUDED
#define __ACC_H_INCLUDED
#define ACC_VERSION 20030803L
#define ACC_VERSION 20030811L
#if !defined(ACC_CONFIG_INCLUDE)
# define ACC_CONFIG_INCLUDE(file) file

View File

@ -230,6 +230,10 @@
ACCCHK_ASSERT(sizeof(acc_int32l_t) >= sizeof(int))
#if defined(acc_int32e_t)
ACCCHK_ASSERT(sizeof(acc_int32l_t) >= sizeof(acc_int32e_t))
#endif
ACCCHK_ASSERT(sizeof(acc_int32l_t) >= 4)
ACCCHK_ASSERT(sizeof(acc_int32l_t) == SIZEOF_ACC_INT32L_T)
ACCCHK_ASSERT(sizeof(acc_uint32l_t) >= 4)
@ -254,6 +258,11 @@
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(int))
#if defined(acc_int32e_t)
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32e_t))
#endif
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= 4)
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
ACCCHK_ASSERT(sizeof(acc_int32f_t) == SIZEOF_ACC_INT32F_T)

96
src/acc/acc_cxx.h Normal file
View File

@ -0,0 +1,96 @@
/* ACC -- Automatic Compiler Configuration
Copyright (C) 1996-2003 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
This software is a copyrighted work licensed under the terms of
the GNU General Public License. Please consult the file "ACC_LICENSE"
for details.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
http://www.oberhumer.com/
*/
#ifndef __ACC_CXX_H_INCLUDED
#define __ACC_CXX_H_INCLUDED
#if defined(__cplusplus)
/*************************************************************************
//
**************************************************************************/
#if !defined(ACC_CXX_NOTHROW)
# define ACC_CXX_NOTHROW throw()
#endif
/*************************************************************************
// disable dynamic allocation of an object
**************************************************************************/
#if defined(new) || defined(delete)
#elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x029000ul))
#else
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW \
static void* operator new(size_t, void*);
# if (ACC_CC_GNUC >= 0x030000ul)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# elif (ACC_CC_INTELC)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# elif (ACC_CC_MSC && (_MSC_VER >= 1200))
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# endif
# if !defined(__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW
# undef __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE
# endif
# if !defined(__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE)
# define __ACC_CXX_DISABLE_NEW_DELETE_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
#if !defined(ACC_CXX_DISABLE_NEW_DELETE)
# define ACC_CXX_DISABLE_NEW_DELETE private:
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE_STRICT)
# define ACC_CXX_DISABLE_NEW_DELETE_STRICT ACC_CXX_DISABLE_NEW_DELETE
#endif
#endif /* __cplusplus */
#endif /* already included */
/*
vi:ts=4:et
*/

View File

@ -90,6 +90,7 @@ ACCLIB_EXTERN(long, acc_hwrite) (int fd, const acc_hvoid_p buf, long size);
#elif (ACC_OS_TOS)
# define ACC_FN_PATH_MAX 259
#else
/* arbitrary limit for acclib implementation */
# define ACC_FN_PATH_MAX 1024
#endif
@ -181,6 +182,7 @@ ACCLIB_EXTERN(int, acc_closedir) (acc_dir_t* d);
// wrap misc
**************************************************************************/
#undef acc_alloca
#if defined(__CYGWIN__) || defined(__MINGW32__)
# define acc_alloca(x) __builtin_alloca((x))
#elif defined(__BORLANDC__) && defined(__linux__)
@ -202,6 +204,32 @@ ACCLIB_EXTERN(int, acc_set_binmode) (int fd, int binary);
#endif
ACCLIB_EXTERN(acc_uclock_t, acc_uclock) (void);
ACCLIB_EXTERN(unsigned, acc_get_be16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be16) (acc_hvoid_p, unsigned);
ACCLIB_EXTERN(void, acc_set_be24) (acc_hvoid_p, acc_uint32l_t);
ACCLIB_EXTERN(void, acc_set_be32) (acc_hvoid_p, acc_uint32l_t);
ACCLIB_EXTERN(unsigned, acc_get_le16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le16) (acc_hvoid_p, unsigned);
ACCLIB_EXTERN(void, acc_set_le24) (acc_hvoid_p, acc_uint32l_t);
ACCLIB_EXTERN(void, acc_set_le32) (acc_hvoid_p, acc_uint32l_t);
#if defined(acc_uint64l_t)
ACCLIB_EXTERN(acc_uint64l_t, acc_get_be64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be64) (acc_hvoid_p, acc_uint64l_t);
ACCLIB_EXTERN(acc_uint64l_t, acc_get_le64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le64) (acc_hvoid_p, acc_uint64l_t);
#endif
/* inline versions */
#if (ACC_ARCH_IA32)
# define ACC_GET_LE16(p) (* (const unsigned short *) (p))
# define ACC_GET_LE32(p) (* (const unsigned int *) (p))
# define ACC_SET_LE16(p,v) (* (unsigned short *) (p) = (unsigned short) (v))
# define ACC_SET_LE32(p,v) (* (unsigned int *) (p) = (unsigned int) (v))
#endif
ACCLIB_EXTERN(acc_int32l_t, acc_muldiv32) (acc_int32l_t, acc_int32l_t, acc_int32l_t);
ACCLIB_EXTERN(acc_uint32l_t, acc_umuldiv32) (acc_uint32l_t, acc_uint32l_t, acc_uint32l_t);

52
src/acc/acclib/bele.ch Normal file
View File

@ -0,0 +1,52 @@
/* ACC -- Automatic Compiler Configuration
Copyright (C) 1996-2003 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
This software is a copyrighted work licensed under the terms of
the GNU General Public License. Please consult the file "ACC_LICENSE"
for details.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
http://www.oberhumer.com/
*/
#if !defined(ACCLIB_PUBLIC)
# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
#endif
/*************************************************************************
// FIXME
**************************************************************************/
ACCLIB_EXTERN(unsigned, acc_get_be16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be16) (acc_hvoid_p, unsigned v);
ACCLIB_EXTERN(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_EXTERN(unsigned, acc_get_le16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le16) (acc_hvoid_p, unsigned v);
ACCLIB_EXTERN(void, acc_set_le24) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_EXTERN(void, acc_set_le32) (acc_hvoid_p, acc_uint32l_t v);
#if defined(acc_uint64l_t)
ACCLIB_EXTERN(acc_uint64l_t, acc_get_be64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be64) (acc_hvoid_p, acc_uint64l_t v);
ACCLIB_EXTERN(acc_uint64l_t, acc_get_le64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le64) (acc_hvoid_p, acc_uint64l_t v);
#endif
/*
vi:ts=4:et
*/

View File

@ -150,6 +150,35 @@ ACCLIB_PUBLIC(int, acc_mkdir) (const char* name, unsigned mode)
}
ACCLIB_PUBLIC(acc_int32l_t, acc_muldiv32) (acc_int32l_t a, acc_int32l_t b, acc_int32l_t x)
{
acc_int32l_t r = 0;
if (x == 0)
return r;
#if (SIZEOF_ACC_INT32L_T > 4)
if (a > ACC_INT32L_C(2147483647) || b > (ACC_INT32L_C(-2147483647) - 1))
return r;
#endif
/* FIXME */
ACC_UNUSED(a); ACC_UNUSED(b);
return r;
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_umuldiv32) (acc_uint32l_t a, acc_uint32l_t b, acc_uint32l_t x)
{
acc_uint32l_t r = 0;
if (x == 0)
return r;
#if (SIZEOF_ACC_INT32L_T > 4)
if (a > ACC_UINT32L_C(0xffffffff) || b > ACC_UINT32L_C(0xffffffff))
return r;
#endif
/* FIXME */
ACC_UNUSED(a); ACC_UNUSED(b);
return r;
}
/*
vi:ts=4:et
*/