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__ ( \

Reply via email to