parent
46009027c2
commit
8ea6157c15
|
@ -9,7 +9,10 @@ LIBTARGET = lib$(NAME)
|
||||||
LLTDIR = ../llt
|
LLTDIR = ../llt
|
||||||
LLT = $(LLTDIR)/libllt.a
|
LLT = $(LLTDIR)/libllt.a
|
||||||
|
|
||||||
FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO
|
# OS flags: LINUX, WIN32, MACOSX
|
||||||
|
# architecture flags: __CPU__=xxx, BITS64, ARCH_X86, ARCH_X86_64
|
||||||
|
CONFIG = -DLINUX -DARCH_X86 -D__CPU__=586
|
||||||
|
FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO $(CONFIG)
|
||||||
LIBFILES = $(LLT)
|
LIBFILES = $(LLT)
|
||||||
LIBS = $(LIBFILES) -lm
|
LIBS = $(LIBFILES) -lm
|
||||||
|
|
||||||
|
|
|
@ -888,7 +888,7 @@ static uint32_t process_keys(value_t kwtable,
|
||||||
return nargs;
|
return nargs;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if _BYTE_ORDER == __BIG_ENDIAN
|
#if BYTE_ORDER == BIG_ENDIAN
|
||||||
#define GET_INT32(a) \
|
#define GET_INT32(a) \
|
||||||
((int32_t) \
|
((int32_t) \
|
||||||
((((int32_t)a[0])<<0) | \
|
((((int32_t)a[0])<<0) | \
|
||||||
|
@ -2029,7 +2029,7 @@ static value_t fl_function(value_t *args, uint32_t nargs)
|
||||||
data[i] -= 48;
|
data[i] -= 48;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if _BYTE_ORDER == __BIG_ENDIAN
|
#if BYTE_ORDER == BIG_ENDIAN
|
||||||
swap = 1;
|
swap = 1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ u_int32_t *bitvector_resize(u_int32_t *b, u_int64_t n, int initzero)
|
||||||
{
|
{
|
||||||
u_int32_t *p;
|
u_int32_t *p;
|
||||||
size_t sz = ((n+31)>>5) * 4;
|
size_t sz = ((n+31)>>5) * 4;
|
||||||
p = realloc(b, sz);
|
p = LLT_REALLOC(b, sz);
|
||||||
if (p == NULL) return NULL;
|
if (p == NULL) return NULL;
|
||||||
if (initzero) memset(p, 0, sz);
|
if (initzero) memset(p, 0, sz);
|
||||||
return p;
|
return p;
|
||||||
|
|
29
llt/dtypes.h
29
llt/dtypes.h
|
@ -16,6 +16,35 @@
|
||||||
We assume the LP64 convention for 64-bit platforms.
|
We assume the LP64 convention for 64-bit platforms.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef LINUX
|
||||||
|
#include <features.h>
|
||||||
|
#include <endian.h>
|
||||||
|
#define LITTLE_ENDIAN __LITTLE_ENDIAN
|
||||||
|
#define BIG_ENDIAN __BIG_ENDIAN
|
||||||
|
#define PDP_ENDIAN __PDP_ENDIAN
|
||||||
|
#define BYTE_ORDER __BYTE_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MACOSX
|
||||||
|
#include <machine/endian.h>
|
||||||
|
#define __LITTLE_ENDIAN LITTLE_ENDIAN
|
||||||
|
#define __BIG_ENDIAN BIG_ENDIAN
|
||||||
|
#define __PDP_ENDIAN PDP_ENDIAN
|
||||||
|
#define __BYTE_ORDER BYTE_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#define __LITTLE_ENDIAN 1234
|
||||||
|
#define __BIG_ENDIAN 4321
|
||||||
|
#define __PDP_ENDIAN 3412
|
||||||
|
#define __BYTE_ORDER __LITTLE_ENDIAN
|
||||||
|
#define __FLOAT_WORD_ORDER __LITTLE_ENDIAN
|
||||||
|
#define LITTLE_ENDIAN __LITTLE_ENDIAN
|
||||||
|
#define BIG_ENDIAN __BIG_ENDIAN
|
||||||
|
#define PDP_ENDIAN __PDP_ENDIAN
|
||||||
|
#define BYTE_ORDER __BYTE_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef BOEHM_GC
|
#ifdef BOEHM_GC
|
||||||
// boehm GC allocator
|
// boehm GC allocator
|
||||||
#include <gc.h>
|
#include <gc.h>
|
||||||
|
|
|
@ -20,28 +20,6 @@
|
||||||
|
|
||||||
#define _IEEE754_H 1
|
#define _IEEE754_H 1
|
||||||
|
|
||||||
#ifdef LINUX
|
|
||||||
|
|
||||||
#include <features.h>
|
|
||||||
#include <endian.h>
|
|
||||||
__BEGIN_DECLS
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define __LITTLE_ENDIAN 1234
|
|
||||||
#define __BIG_ENDIAN 4321
|
|
||||||
#define __PDP_ENDIAN 3412
|
|
||||||
|
|
||||||
#if defined(WIN32) || defined(ARCH_X86) || defined(ARCH_X86_64)
|
|
||||||
#define __BYTE_ORDER __LITTLE_ENDIAN
|
|
||||||
#define __FLOAT_WORD_ORDER __LITTLE_ENDIAN
|
|
||||||
#else
|
|
||||||
#define __BYTE_ORDER __BIG_ENDIAN
|
|
||||||
#define __FLOAT_WORD_ORDER __BIG_ENDIAN
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif //ifdef LINUX
|
|
||||||
|
|
||||||
union ieee754_float
|
union ieee754_float
|
||||||
{
|
{
|
||||||
float f;
|
float f;
|
||||||
|
@ -211,8 +189,4 @@ union ieee854_long_double
|
||||||
|
|
||||||
#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
|
#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
|
||||||
|
|
||||||
#ifdef LINUX
|
|
||||||
__END_DECLS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* ieee754.h */
|
#endif /* ieee754.h */
|
||||||
|
|
|
@ -24,7 +24,7 @@ void *malloc_aligned(size_t size, size_t align_size)
|
||||||
{
|
{
|
||||||
char *ptr;
|
char *ptr;
|
||||||
|
|
||||||
ptr = (char*)malloc(size + align_size-1 + sizeof(long));
|
ptr = (char*)LLT_ALLOC(size + align_size-1 + sizeof(long));
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ void *malloc_aligned(size_t size, size_t align_size)
|
||||||
|
|
||||||
void free_aligned(void *ptr)
|
void free_aligned(void *ptr)
|
||||||
{
|
{
|
||||||
free(ALIGNED_TO_ACTUAL(ptr));
|
LLT_FREE(ALIGNED_TO_ACTUAL(ptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
void *realloc_aligned(void *ptr, size_t size, size_t align_size)
|
void *realloc_aligned(void *ptr, size_t size, size_t align_size)
|
||||||
|
@ -42,7 +42,7 @@ void *realloc_aligned(void *ptr, size_t size, size_t align_size)
|
||||||
|
|
||||||
if (ptr != NULL)
|
if (ptr != NULL)
|
||||||
ptr = ALIGNED_TO_ACTUAL(ptr);
|
ptr = ALIGNED_TO_ACTUAL(ptr);
|
||||||
pnew = realloc(ptr, size + align_size-1 + sizeof(long));
|
pnew = LLT_REALLOC(ptr, size + align_size-1 + sizeof(long));
|
||||||
if (pnew == NULL)
|
if (pnew == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue