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:
parent
8d5d6bd1a5
commit
3db0b0e8fe
|
@ -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
|
||||
|
|
|
@ -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
96
src/acc/acc_cxx.h
Normal 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
|
||||
*/
|
|
@ -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
52
src/acc/acclib/bele.ch
Normal 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
|
||||
*/
|
|
@ -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
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user