diff options
-rw-r--r-- | examples/orc/Makefile.am | 4 | ||||
-rw-r--r-- | examples/orc/jit.c | 1 | ||||
-rw-r--r-- | examples/orc/simple.c | 1 | ||||
-rw-r--r-- | liboil/c/copy.c | 2 | ||||
-rw-r--r-- | liboil/c/swab.c | 2 | ||||
-rw-r--r-- | liboil/conv/conv_bitstuff.c | 2 | ||||
-rw-r--r-- | liboil/conv/conv_misc.c | 2 | ||||
-rw-r--r-- | liboil/dct/dct.h | 4 | ||||
-rw-r--r-- | liboil/dct/idct8x8_c.c | 6 | ||||
-rw-r--r-- | liboil/jpeg/convert8x8_c.c | 10 | ||||
-rw-r--r-- | liboil/jpeg/quantize8x8_c.c | 2 | ||||
-rw-r--r-- | liboil/liboilcpu-x86.c | 8 | ||||
-rw-r--r-- | liboil/liboiltest.c | 3 | ||||
-rw-r--r-- | liboil/liboilutils.c | 2 | ||||
-rw-r--r-- | orc/Makefile.am | 13 | ||||
-rw-r--r-- | orc/orc.c | 2 | ||||
-rw-r--r-- | orc/orcprogram-powerpc.c | 1 | ||||
-rw-r--r-- | orc/orcprogram-unknown-os.c | 58 | ||||
-rw-r--r-- | orc/orcprogram-x86.c | 1 | ||||
-rw-r--r-- | orc/orcprogram.h | 1 | ||||
-rw-r--r-- | orc/orcrules-mmx.c | 1 | ||||
-rw-r--r-- | orc/orcrules-sse.c | 1 | ||||
-rw-r--r-- | orc/orcrules-x86.c | 1 | ||||
-rw-r--r-- | orc/x86.c | 1 |
24 files changed, 105 insertions, 24 deletions
diff --git a/examples/orc/Makefile.am b/examples/orc/Makefile.am index 9023579..c91a3d8 100644 --- a/examples/orc/Makefile.am +++ b/examples/orc/Makefile.am @@ -1,8 +1,8 @@ noinst_PROGRAMS = jit simple -AM_LDFLAGS = $(ORC_LIBS) $(GLIB_LIBS) -AM_CFLAGS = $(ORC_CFLAGS) $(GLIB_CFLAGS) +AM_LDFLAGS = $(ORC_LIBS) +AM_CFLAGS = $(ORC_CFLAGS) jit_SOURCES = jit.c diff --git a/examples/orc/jit.c b/examples/orc/jit.c index cab412c..9f40a73 100644 --- a/examples/orc/jit.c +++ b/examples/orc/jit.c @@ -1,7 +1,6 @@ #include "config.h" -#include <glib.h> #include <stdio.h> #include <string.h> #include <stdlib.h> diff --git a/examples/orc/simple.c b/examples/orc/simple.c index 4cc1e84..ef75e86 100644 --- a/examples/orc/simple.c +++ b/examples/orc/simple.c @@ -1,7 +1,6 @@ #include "config.h" -#include <glib.h> #include <stdio.h> #include <string.h> #include <stdlib.h> diff --git a/liboil/c/copy.c b/liboil/c/copy.c index c10f7f1..4ed6e7d 100644 --- a/liboil/c/copy.c +++ b/liboil/c/copy.c @@ -33,7 +33,9 @@ #include <liboil/liboilfunction.h> #include <liboil/liboilclasses.h> +#ifdef HAVE_UNISTD_H #include <unistd.h> +#endif static void diff --git a/liboil/c/swab.c b/liboil/c/swab.c index dac86b0..c32fbc9 100644 --- a/liboil/c/swab.c +++ b/liboil/c/swab.c @@ -33,7 +33,9 @@ #include <liboil/liboilfunction.h> #include <liboil/liboilclasses.h> +#ifdef HAVE_UNISTD_H #include <unistd.h> +#endif #include <string.h> diff --git a/liboil/conv/conv_bitstuff.c b/liboil/conv/conv_bitstuff.c index a962f92..944a1fc 100644 --- a/liboil/conv/conv_bitstuff.c +++ b/liboil/conv/conv_bitstuff.c @@ -29,7 +29,7 @@ #include "config.h" #endif #include <liboil/liboilfunction.h> -#include <conv.h> +#include "conv.h" #ifdef HAVE_IEEE754_H diff --git a/liboil/conv/conv_misc.c b/liboil/conv/conv_misc.c index 6c46560..bf77404 100644 --- a/liboil/conv/conv_misc.c +++ b/liboil/conv/conv_misc.c @@ -29,7 +29,7 @@ #include "config.h" #endif #include <liboil/liboilfunction.h> -#include <conv.h> +#include "conv.h" #include <math.h> diff --git a/liboil/dct/dct.h b/liboil/dct/dct.h index da4cd25..3d7be3c 100644 --- a/liboil/dct/dct.h +++ b/liboil/dct/dct.h @@ -30,6 +30,10 @@ #include <liboil/liboilfunction.h> +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + OIL_DECLARE_CLASS(dct12_f32); OIL_DECLARE_CLASS(dct36_f32); OIL_DECLARE_CLASS(fdct8_f64); diff --git a/liboil/dct/idct8x8_c.c b/liboil/dct/idct8x8_c.c index 078d78d..673a7c4 100644 --- a/liboil/dct/idct8x8_c.c +++ b/liboil/dct/idct8x8_c.c @@ -43,13 +43,13 @@ */ #define BLOCK8x8_F64(ptr, stride, row, column) \ - (*((double *)((void *)ptr + stride*row) + column)) + (*((double *)((unsigned char *)ptr + stride*row) + column)) #define BLOCK8x8_PTR_F64(ptr, stride, row, column) \ - ((double *)((void *)ptr + stride*row) + column) + ((double *)((unsigned char *)ptr + stride*row) + column) #define BLOCK8x8_S16(ptr, stride, row, column) \ - (*((int16_t *)((void *)ptr + stride*row) + column)) + (*((int16_t *)((unsigned char *)ptr + stride*row) + column)) static void idct8x8_test (OilTest *test) diff --git a/liboil/jpeg/convert8x8_c.c b/liboil/jpeg/convert8x8_c.c index 496aa95..23bcae6 100644 --- a/liboil/jpeg/convert8x8_c.c +++ b/liboil/jpeg/convert8x8_c.c @@ -74,16 +74,16 @@ OIL_DEFINE_CLASS (clipconv8x8_u8_s16, "uint8_t * d_8x8, int dstr, int16_t * s_8x8, int sstr"); #define BLOCK8x8_F64(ptr, stride, row, column) \ - (*((double *)((void *)ptr + stride*row) + column)) + (*((double *)((unsigned char *)ptr + stride*row) + column)) #define BLOCK8x8_PTR_F64(ptr, stride, row, column) \ - ((double *)((void *)ptr + stride*row) + column) + ((double *)((unsigned char *)ptr + stride*row) + column) #define BLOCK8x8_S16(ptr, stride, row, column) \ - (*((int16_t *)((void *)ptr + stride*row) + column)) + (*((int16_t *)((unsigned char *)ptr + stride*row) + column)) #define BLOCK8x8_U8(ptr, stride, row, column) \ - (*((uint8_t *)((void *)ptr + stride*row) + column)) + (*((uint8_t *)((unsigned char *)ptr + stride*row) + column)) static void @@ -93,7 +93,7 @@ conv8x8_s16_f64_c (int16_t * dest, int dstr, double *src, int sstr) for (i = 0; i < 8; i++) { for (j = 0; j < 8; j++) { - BLOCK8x8_S16 (dest, dstr, i, j) = rint (BLOCK8x8_F64 (src, sstr, i, j)); + BLOCK8x8_S16 (dest, dstr, i, j) = floor (0.5 + BLOCK8x8_F64 (src, sstr, i, j)); } } } diff --git a/liboil/jpeg/quantize8x8_c.c b/liboil/jpeg/quantize8x8_c.c index 7f8e03c..949f066 100644 --- a/liboil/jpeg/quantize8x8_c.c +++ b/liboil/jpeg/quantize8x8_c.c @@ -48,7 +48,7 @@ OIL_DEFINE_CLASS (dequantize8x8_s16, "int16_t *s2_8x8, int sstr2"); #define BLOCK8x8_S16(ptr, stride, row, column) \ - (*((int16_t *)((void *)ptr + stride*row) + column)) + (*((int16_t *)((unsigned char *)ptr + stride*row) + column)) static void dequantize8x8_s16_ref (int16_t *dest, int dstr, int16_t *src, int sstr, diff --git a/liboil/liboilcpu-x86.c b/liboil/liboilcpu-x86.c index ebddc93..56f7790 100644 --- a/liboil/liboilcpu-x86.c +++ b/liboil/liboilcpu-x86.c @@ -34,14 +34,18 @@ #include <liboil/liboilfault.h> #include <liboil/liboilutils.h> +#ifdef HAVE_UNISTD_H #include <unistd.h> +#endif #include <fcntl.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include <setjmp.h> #include <signal.h> +#ifdef HAVE_SYS_TIME_H #include <sys/time.h> +#endif #include <time.h> #if defined(__FreeBSD__) || defined(__APPLE__) @@ -129,6 +133,7 @@ oil_cpu_i386_getflags_cpuinfo (char *cpuinfo) } #endif +#ifdef HAVE_GCC_ASM static unsigned long oil_profile_stamp_rdtsc(void) { @@ -136,6 +141,7 @@ oil_profile_stamp_rdtsc(void) __asm__ __volatile__("rdtsc\n" : "=a" (ts) : : "edx"); return ts; } +#endif #ifdef USE_I386_CPUID #ifdef __i386__ @@ -201,9 +207,11 @@ oil_cpu_detect_cpuid (void) get_cpuid (0x00000001, &eax, &ebx, &ecx, &edx); +#ifdef HAVE_GCC_ASM if (edx & (1<<4)) { _oil_profile_stamp = oil_profile_stamp_rdtsc; } +#endif /* Intel flags */ if (edx & (1<<15)) { diff --git a/liboil/liboiltest.c b/liboil/liboiltest.c index b4c6e5d..43bcde2 100644 --- a/liboil/liboiltest.c +++ b/liboil/liboiltest.c @@ -671,7 +671,8 @@ check_holes (void *data, OilType type, int pre_n, int stride, int post_n, } for(i=0;i<post_n;i++){ - if (!check_guard (data + stride * i + chunk_size, hole_size, guard)) { + if (!check_guard (OIL_OFFSET(data, stride * i + chunk_size), + hole_size, guard)) { return 0; } } diff --git a/liboil/liboilutils.c b/liboil/liboilutils.c index 0d7cc15..faa70ce 100644 --- a/liboil/liboilutils.c +++ b/liboil/liboilutils.c @@ -32,7 +32,9 @@ #include <liboil/liboildebug.h> #include <liboil/liboilutils.h> +#ifdef HAVE_UNISTD_H #include <unistd.h> +#endif #include <fcntl.h> #include <stdlib.h> #include <string.h> diff --git a/orc/Makefile.am b/orc/Makefile.am index bb0d56e..b46eaac 100644 --- a/orc/Makefile.am +++ b/orc/Makefile.am @@ -5,6 +5,11 @@ lib_LTLIBRARIES = liborc-@LIBOIL_MAJORMINOR@.la liborc_@LIBOIL_MAJORMINOR@_la_LIBS = $(LIBOIL_LIBS) $(GLIB_LIBS) liborc_@LIBOIL_MAJORMINOR@_la_CFLAGS = $(LIBOIL_CFLAGS) $(GLIB_CFLAGS) +liborc_@LIBOIL_MAJORMINOR@_la_LDFLAGS = \ + -no-undefined \ + -version-info $(LIBOIL_LIBVERSION) \ + -export-symbols-regex '^orc_' + liborc_@LIBOIL_MAJORMINOR@_la_SOURCES = \ orc.c \ @@ -17,12 +22,18 @@ liborc_@LIBOIL_MAJORMINOR@_la_SOURCES = \ orcprogram-powerpc.c \ orcprogram.h \ orcopcodes.c \ - orcprogram-linux.c \ orcrules-mmx.c \ orcrules-x86.c \ orcrules-sse.c \ x86.c +if HAVE_OS_LINUX +liborc_@LIBOIL_MAJORMINOR@_la_SOURCES += orcprogram-linux.c +else +liborc_@LIBOIL_MAJORMINOR@_la_SOURCES += orcprogram-unknown-os.c +endif + + pkginclude_HEADERS = \ orc.h \ orcprogram.h \ @@ -12,7 +12,7 @@ void orc_init (void) { - oil_init (); + //oil_init (); orc_opcode_init(); orc_x86_init(); orc_powerpc_init(); diff --git a/orc/orcprogram-powerpc.c b/orc/orcprogram-powerpc.c index 543b95b..131f594 100644 --- a/orc/orcprogram-powerpc.c +++ b/orc/orcprogram-powerpc.c @@ -7,7 +7,6 @@ #include <unistd.h> #include <sys/types.h> -#include <sys/mman.h> #include <orc/orcprogram.h> diff --git a/orc/orcprogram-unknown-os.c b/orc/orcprogram-unknown-os.c new file mode 100644 index 0000000..130fc34 --- /dev/null +++ b/orc/orcprogram-unknown-os.c @@ -0,0 +1,58 @@ + +#include "config.h" + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#include <unistd.h> +#include <sys/types.h> +#if 0 +#include <sys/mman.h> +#endif + +#include <orc/orcprogram.h> + +#define SIZE 65536 + + +void +orc_program_allocate_codemem (OrcProgram *program) +{ +#if 0 + char filename[32] = "/tmp/orcexecXXXXXX"; + int fd; + + fd = mkstemp (filename); + if (fd == -1) { + /* FIXME oh crap */ + printf("failed to create temp file\n"); + program->error = TRUE; + return; + } + unlink (filename); + + ftruncate (fd, SIZE); + + program->code = mmap (NULL, SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); + if (program->code == MAP_FAILED) { + /* FIXME oh crap */ + printf("failed to create write map\n"); + program->error = TRUE; + return; + } + program->code_exec = mmap (NULL, SIZE, PROT_READ|PROT_EXEC, MAP_SHARED, fd, 0); + if (program->code_exec == MAP_FAILED) { + /* FIXME oh crap */ + printf("failed to create exec map\n"); + program->error = TRUE; + return; + } + + close (fd); + + program->code_size = SIZE; + program->codeptr = program->code; +#endif +} + diff --git a/orc/orcprogram-x86.c b/orc/orcprogram-x86.c index ca70bb2..7308b7b 100644 --- a/orc/orcprogram-x86.c +++ b/orc/orcprogram-x86.c @@ -7,7 +7,6 @@ #include <unistd.h> #include <sys/types.h> -#include <sys/mman.h> #include <orc/orcprogram.h> #include <orc/x86.h> diff --git a/orc/orcprogram.h b/orc/orcprogram.h index 3281f0e..2dbacf4 100644 --- a/orc/orcprogram.h +++ b/orc/orcprogram.h @@ -3,6 +3,7 @@ #define _ORC_PROGRAM_H_ //#include <glib.h> +#include <liboil/liboil-stdint.h> typedef struct _OrcType OrcType; typedef struct _OrcExecutor OrcExecutor; diff --git a/orc/orcrules-mmx.c b/orc/orcrules-mmx.c index 23248de..7ecadeb 100644 --- a/orc/orcrules-mmx.c +++ b/orc/orcrules-mmx.c @@ -7,7 +7,6 @@ #include <unistd.h> #include <sys/types.h> -#include <sys/mman.h> #include <orc/orcprogram.h> #include <orc/x86.h> diff --git a/orc/orcrules-sse.c b/orc/orcrules-sse.c index 9f559e0..155ac5f 100644 --- a/orc/orcrules-sse.c +++ b/orc/orcrules-sse.c @@ -7,7 +7,6 @@ #include <unistd.h> #include <sys/types.h> -#include <sys/mman.h> #include <orc/orcprogram.h> #include <orc/x86.h> diff --git a/orc/orcrules-x86.c b/orc/orcrules-x86.c index 4becb48..e2fbd73 100644 --- a/orc/orcrules-x86.c +++ b/orc/orcrules-x86.c @@ -7,7 +7,6 @@ #include <unistd.h> #include <sys/types.h> -#include <sys/mman.h> #include <orc/orcprogram.h> #include <orc/x86.h> @@ -7,7 +7,6 @@ #include <unistd.h> #include <sys/types.h> -#include <sys/mman.h> #include <orc/orcprogram.h> #include <orc/x86.h> |