Here is a patch to allow evas to compile with mmx on the amd64. -- John Slaten <[EMAIL PROTECTED]>
? README ? evas-native.oe ? evas.bb ? evas.oe ? evas.spec ? evasXnative.bb ? debian/changelog ? src/lib/canvas/evas_font_dir.lo ? src/lib/canvas/evas_object_textblock.lo ? src/lib/engines/common/evas_cpu.s ? src/lib/engines/common/evas_regionbuf.lo ? src/lib/engines/software_xcb/.deps ? src/lib/engines/software_xcb/Makefile ? src/lib/engines/software_xcb/Makefile.in Index: src/lib/engines/common/evas_blend_color_pixel.c =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_color_pixel.c,v retrieving revision 1.9 diff -u -r1.9 evas_blend_color_pixel.c --- src/lib/engines/common/evas_blend_color_pixel.c 11 Feb 2005 05:33:44 -0000 1.9 +++ src/lib/engines/common/evas_blend_color_pixel.c 6 Apr 2005 04:58:16 -0000 @@ -1,6 +1,6 @@ #include "evas_common.h" -#ifdef BUILD_MMX +#if defined BUILD_MMX || defined BUILD_SSE #include "evas_mmx.h" #endif Index: src/lib/engines/common/evas_blend_pixel_pixel.c =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_pixel.c,v retrieving revision 1.16 diff -u -r1.16 evas_blend_pixel_pixel.c --- src/lib/engines/common/evas_blend_pixel_pixel.c 31 Mar 2005 09:10:10 -0000 1.16 +++ src/lib/engines/common/evas_blend_pixel_pixel.c 6 Apr 2005 04:58:16 -0000 @@ -1,6 +1,6 @@ #include "evas_common.h" -#ifdef BUILD_MMX +#if defined BUILD_MMX || defined BUILD_SSE #include "evas_mmx.h" #endif Index: src/lib/engines/common/evas_cpu.c =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_cpu.c,v retrieving revision 1.23 diff -u -r1.23 evas_cpu.c --- src/lib/engines/common/evas_cpu.c 3 Apr 2005 15:48:47 -0000 1.23 +++ src/lib/engines/common/evas_cpu.c 6 Apr 2005 04:58:16 -0000 @@ -1,6 +1,6 @@ #include "evas_common.h" -#ifdef BUILD_MMX +#if defined BUILD_MMX || defined BUILD_SSE #include "evas_mmx.h" #endif Index: src/lib/include/evas_mmx.h =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/include/evas_mmx.h,v retrieving revision 1.3 diff -u -r1.3 evas_mmx.h --- src/lib/include/evas_mmx.h 27 Jan 2005 10:05:41 -0000 1.3 +++ src/lib/include/evas_mmx.h 6 Apr 2005 04:58:17 -0000 @@ -528,6 +528,46 @@ #define CPUID_SSE (1 << 25) /* flags: xmm */ #define CPUID_SSE2 (1 << 26) /* flags: ? */ +#ifdef __amd64 +#define have_cpuid(cpuid_ret) \ + __asm__ __volatile__ ( \ + ".align 32 \n" \ + " pushq %%rbx \n" \ + " pushfq \n" \ + " popq %%rax \n" \ + " movq %%rax, %%rbx \n" \ + " xorq $0x200000, %%rax \n" \ + " pushq %%rax \n" \ + " popfq \n" \ + " pushfq \n" \ + " popq %%rax \n" \ + " cmpq %%rax, %%rbx \n" \ + " je 1f \n" \ + " movl $1, %0 \n" \ + " jmp 2f \n" \ + "1: \n" \ + " movl $0, %0 \n" \ + "2: \n" \ + " popq %%rbx \n" \ + : "=m" (cpuid_ret) \ + ); + +#define get_cpuid(cpuid_ret) \ + __asm__ __volatile__ ( \ + ".align 32 \n" \ + " pushq %%rax \n" \ + " movl $1, %%eax \n" \ + " cpuid \n" \ + " test $0x00800000, %%edx\n" \ + "1: \n" \ + " movl %%edx, %0 \n" \ + " jmp 2f \n" \ + "2: \n" \ + " movl $0, %0 \n" \ + " popq %%rax \n" \ + : "=m" (cpuid_ret) \ + ); +#else #define have_cpuid(cpuid_ret) \ __asm__ __volatile__ ( \ ".align 32 \n" \ @@ -566,6 +606,8 @@ " popl %%eax \n" \ : "=m" (cpuid_ret) \ ); +#endif + /* P3 instructions - need to figure how to detect? */ #define prefetch(var) \ __asm__ __volatile__ ( \
