summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Tilley <lv@gentoo.org>2004-05-05 01:05:08 +0000
committerTravis Tilley <lv@gentoo.org>2004-05-05 01:05:08 +0000
commit0f2a1a7a17419f9983f4dda134fff94223936335 (patch)
treea66a3c65b16850f0181151d2c80579495947e59b /dev-libs/DirectFB/files
parentStable on sparc. (Manifest recommit) (diff)
downloadgentoo-2-0f2a1a7a17419f9983f4dda134fff94223936335.tar.gz
gentoo-2-0f2a1a7a17419f9983f4dda134fff94223936335.tar.bz2
gentoo-2-0f2a1a7a17419f9983f4dda134fff94223936335.zip
added misc 64bit fixes and enabled simd optimisations for amd64
Diffstat (limited to 'dev-libs/DirectFB/files')
-rw-r--r--dev-libs/DirectFB/files/DirectFB-0.9.20-64bit.diff117
-rw-r--r--dev-libs/DirectFB/files/DirectFB-0.9.20-simd-amd64.diff183
2 files changed, 300 insertions, 0 deletions
diff --git a/dev-libs/DirectFB/files/DirectFB-0.9.20-64bit.diff b/dev-libs/DirectFB/files/DirectFB-0.9.20-64bit.diff
new file mode 100644
index 000000000000..b614eed12d68
--- /dev/null
+++ b/dev-libs/DirectFB/files/DirectFB-0.9.20-64bit.diff
@@ -0,0 +1,117 @@
+diff -urN DirectFB-0.9.20.orig/interfaces/IDirectFBFont/idirectfbfont_default.c DirectFB-0.9.20/interfaces/IDirectFBFont/idirectfbfont_default.c
+--- DirectFB-0.9.20.orig/interfaces/IDirectFBFont/idirectfbfont_default.c 2003-07-08 18:25:48.000000000 +0200
++++ DirectFB-0.9.20/interfaces/IDirectFBFont/idirectfbfont_default.c 2004-01-08 23:32:07.000000000 +0100
+@@ -147,7 +147,7 @@
+ else
+ key = index;
+
+- dfb_tree_insert (font->glyph_infos, (void*) key, data);
++ dfb_tree_insert (font->glyph_infos, (void*)(unsigned long)key, data);
+
+ start = i + 1;
+ index++;
+@@ -165,7 +165,7 @@
+ else
+ key = index;
+
+- dfb_tree_insert (font->glyph_infos, (void*) key, data);
++ dfb_tree_insert (font->glyph_infos, (void*) (unsigned long)key, data);
+ }
+
+ dfb_surface_soft_lock( surface, DSLF_WRITE, &dst, &pitch, 0 );
+diff -urN DirectFB-0.9.20.orig/interfaces/IDirectFBFont/idirectfbfont_ft2.c DirectFB-0.9.20/interfaces/IDirectFBFont/idirectfbfont_ft2.c
+--- DirectFB-0.9.20.orig/interfaces/IDirectFBFont/idirectfbfont_ft2.c 2003-08-25 19:10:53.000000000 +0200
++++ DirectFB-0.9.20/interfaces/IDirectFBFont/idirectfbfont_ft2.c 2004-01-08 23:30:27.000000000 +0100
+@@ -120,7 +120,7 @@
+ else
+ index = FT_Get_Char_Index( face, glyph );
+
+- load_flags = (FT_Int) face->generic.data;
++ load_flags = (FT_Int)(unsigned long) face->generic.data;
+ load_flags |= FT_LOAD_RENDER;
+
+ if ((err = FT_Load_Glyph( face, index, load_flags ))) {
+@@ -225,7 +225,7 @@
+ else
+ index = FT_Get_Char_Index( face, glyph );
+
+- load_flags = (FT_Int) face->generic.data;
++ load_flags = (FT_Int)(unsigned long) face->generic.data;
+
+ if ((err = FT_Load_Glyph( face, index, load_flags ))) {
+ HEAVYDEBUGMSG( "DirectB/FontFT2: "
+@@ -530,7 +530,7 @@
+ }
+ }
+
+- face->generic.data = (void *) load_flags;
++ face->generic.data = (void *)(unsigned long) load_flags;
+ face->generic.finalizer = NULL;
+
+ font = dfb_font_create();
+diff -urN DirectFB-0.9.20.orig/src/core/colorhash.c DirectFB-0.9.20/src/core/colorhash.c
+--- DirectFB-0.9.20.orig/src/core/colorhash.c 2003-10-01 14:02:21.000000000 +0200
++++ DirectFB-0.9.20/src/core/colorhash.c 2004-01-08 23:30:27.000000000 +0100
+@@ -182,7 +182,7 @@
+ {
+ Colorhash *hash;
+ unsigned int pixel = PIXEL_ARGB(a, r, g, b);
+- unsigned int index = (pixel ^ (unsigned int) palette) % HASH_SIZE;
++ unsigned int index = (pixel ^ (unsigned long) palette) % HASH_SIZE;
+
+ DFB_ASSERT( hash_field != NULL );
+ DFB_ASSERT( hash_field->hash != NULL );
+diff -urN DirectFB-0.9.20.orig/src/core/fbdev/fbdev.c DirectFB-0.9.20/src/core/fbdev/fbdev.c
+--- DirectFB-0.9.20.orig/src/core/fbdev/fbdev.c 2003-10-09 04:05:57.000000000 +0200
++++ DirectFB-0.9.20/src/core/fbdev/fbdev.c 2004-01-08 23:30:27.000000000 +0100
+@@ -367,7 +367,7 @@
+ dfb_fbdev->framebuffer_base = mmap( NULL, dfb_fbdev->shared->fix.smem_len,
+ PROT_READ | PROT_WRITE, MAP_SHARED,
+ dfb_fbdev->fd, 0 );
+- if ((int)(dfb_fbdev->framebuffer_base) == -1) {
++ if ((long)(dfb_fbdev->framebuffer_base) == -1) {
+ PERRORMSG( "DirectFB/core/fbdev: "
+ "Could not mmap the framebuffer!\n");
+ SHFREE( dfb_fbdev->shared );
+diff -urN DirectFB-0.9.20.orig/src/core/fonts.c DirectFB-0.9.20/src/core/fonts.c
+--- DirectFB-0.9.20.orig/src/core/fonts.c 2003-10-13 05:58:04.000000000 +0200
++++ DirectFB-0.9.20/src/core/fonts.c 2004-01-08 23:30:27.000000000 +0100
+@@ -101,7 +101,7 @@
+ DFBResult ret;
+ CoreGlyphData *data;
+
+- if ((data = dfb_tree_lookup (font->glyph_infos, (void *)glyph)) != NULL) {
++ if ((data = dfb_tree_lookup (font->glyph_infos, (void *)(long)glyph)) != NULL) {
+ *glyph_data = data;
+ return DFB_OK;
+ }
+@@ -173,7 +173,7 @@
+ data->start = data->width = data->height = 0;
+ }
+
+- dfb_tree_insert (font->glyph_infos, (void *) glyph, data);
++ dfb_tree_insert (font->glyph_infos, (void *)(long) glyph, data);
+ }
+
+ *glyph_data = data;
+diff -urN DirectFB-0.9.20.orig/src/misc/tree.c DirectFB-0.9.20/src/misc/tree.c
+--- DirectFB-0.9.20.orig/src/misc/tree.c 2003-08-15 13:33:10.000000000 +0200
++++ DirectFB-0.9.20/src/misc/tree.c 2004-01-08 23:30:27.000000000 +0100
+@@ -76,7 +76,7 @@
+ void *value)
+ {
+ int inserted = 0;
+- int fast_key = (unsigned int) key - 32;
++ long fast_key = (unsigned long) key - 32;
+
+ if (fast_key >= 0 && fast_key < 96)
+ tree->fast_keys[fast_key] = value;
+@@ -91,7 +91,7 @@
+ void *key)
+ {
+ Node *node;
+- int fast_key = (unsigned int) key - 32;
++ long fast_key = (unsigned long) key - 32;
+
+ if (fast_key >= 0 && fast_key < 96)
+ return tree->fast_keys[fast_key];
diff --git a/dev-libs/DirectFB/files/DirectFB-0.9.20-simd-amd64.diff b/dev-libs/DirectFB/files/DirectFB-0.9.20-simd-amd64.diff
new file mode 100644
index 000000000000..8755daab0c8e
--- /dev/null
+++ b/dev-libs/DirectFB/files/DirectFB-0.9.20-simd-amd64.diff
@@ -0,0 +1,183 @@
+diff -urN DirectFB-0.9.20.orig/src/gfx/generic/generic_mmx.h DirectFB-0.9.20/src/gfx/generic/generic_mmx.h
+--- DirectFB-0.9.20.orig/src/gfx/generic/generic_mmx.h 2003-06-30 23:26:04.000000000 +0200
++++ DirectFB-0.9.20/src/gfx/generic/generic_mmx.h 2004-01-08 23:46:40.000000000 +0100
+@@ -172,15 +172,19 @@
+ "movq %%mm1, (%1)\n\t"
+ "dec %2\n\t"
+ "jz 3f\n\t"
+- "addl $8, %1\n\t"
+- "addl %4, %0\n\t"
+- "testl $0xFFFF0000, %0\n\t"
++ "add $8, %1\n\t"
++ "add %4, %0\n\t"
++ "test $0xFFFF0000, %0\n\t"
+ "jz 2b\n\t"
+- "movl %0, %%ebx\n\t"
+- "andl $0xFFFF0000, %%ebx\n\t"
+- "shrl $14, %%ebx\n\t"
++ "mov %0, %%ebx\n\t"
++ "and $0xFFFF0000, %%ebx\n\t"
++ "shr $14, %%ebx\n\t"
++#ifdef __x86_64__
++ "add %%rbx, %3\n\t"
++#else
+ "add %%ebx, %3\n\t"
+- "andl $0xFFFF, %0\n\t"
++#endif
++ "and $0xFFFF, %0\n\t"
+ "jmp 1b\n"
+ "3:\n\t"
+ "emms"
+@@ -201,8 +205,8 @@
+ "movd (%2), %%mm1\n\t"
+ "punpcklbw %%mm0, %%mm1\n\t"
+ "movq %%mm1, (%0)\n\t"
+- "addl $4, %2\n\t"
+- "addl $8, %0\n\t"
++ "add $4, %2\n\t"
++ "add $8, %0\n\t"
+ "dec %1\n\t"
+ "jnz 1b\n\t"
+ "emms"
+@@ -238,7 +242,7 @@
+ "dec %1\n\t"
+ "jz 2f\n\t"
+ "psrlq $16, %%mm0\n\t"
+- "addl $8, %0\n\t"
++ "add $8, %0\n\t"
+ /* 2. Konvertierung nach 24 bit interleaved */
+ "movq %%mm0, %%mm3\n\t"
+ "punpcklwd %%mm3, %%mm3\n\t"
+@@ -252,7 +256,7 @@
+ "dec %1\n\t"
+ "jz 2f\n\t"
+ "psrlq $16, %%mm0\n\t"
+- "addl $8, %0\n\t"
++ "add $8, %0\n\t"
+ /* 3. Konvertierung nach 24 bit interleaved */
+ "movq %%mm0, %%mm3\n\t"
+ "punpcklwd %%mm3, %%mm3\n\t"
+@@ -266,7 +270,7 @@
+ "dec %1\n\t"
+ "jz 2f\n\t"
+ "psrlq $16, %%mm0\n\t"
+- "addl $8, %0\n\t"
++ "add $8, %0\n\t"
+ /* 4. Konvertierung nach 24 bit interleaved */
+ "movq %%mm0, %%mm3\n\t"
+ "punpcklwd %%mm3, %%mm3\n\t"
+@@ -279,8 +283,8 @@
+ "movq %%mm3, (%0)\n\t"
+ "dec %1\n\t"
+ "jz 2f\n\t"
+- "addl $8, %0\n\t"
+- "addl $8, %2\n\t"
++ "add $8, %0\n\t"
++ "add $8, %2\n\t"
+ "jmp 1b\n"
+ "2:\n\t"
+ "emms"
+@@ -304,8 +308,8 @@
+ "punpcklbw %%mm6, %%mm0\n\t"
+ "por %%mm7, %%mm0\n\t"
+ "movq %%mm0, (%0)\n\t"
+- "addl $4, %2\n\t"
+- "addl $8, %0\n\t"
++ "add $4, %2\n\t"
++ "add $8, %0\n\t"
+ "dec %1\n\t"
+ "jnz 1b\n\t"
+ "emms"
+@@ -322,7 +326,7 @@
+
+ __asm__ __volatile__ (
+ "movq %3, %%mm7\n\t"
+- "cmpl $0, %2\n\t"
++ "cmp $0, %2\n\t"
+ "jne 3f\n\t"
+ "movq %4, %%mm6\n\t"
+ "movd %5, %%mm0\n\t"
+@@ -341,7 +345,7 @@
+ "psrlw $8, %%mm0\n\t"
+ "movq %%mm0, (%0)\n"
+ "1:\n\t"
+- "addl $8, %0\n\t"
++ "add $8, %0\n\t"
+ "dec %1\n\t"
+ "jnz 4b\n\t"
+ "jmp 2f\n\t"
+@@ -360,8 +364,8 @@
+ "psrlw $8, %%mm0\n\t"
+ "movq %%mm0, (%0)\n"
+ "1:\n\t"
+- "addl $8, %2\n\t"
+- "addl $8, %0\n\t"
++ "add $8, %2\n\t"
++ "add $8, %0\n\t"
+ "dec %1\n\t"
+ "jnz 3b\n\t"
+ "2:\n\t"
+@@ -379,7 +383,7 @@
+
+ __asm__ __volatile__ (
+ "movq %3, %%mm7\n\t"
+- "cmpl $0, %2\n\t"
++ "cmp $0, %2\n\t"
+ "jne 3f\n\t"
+ "movq %4, %%mm6\n\t"
+ "movd %5, %%mm0\n\t"
+@@ -397,7 +401,7 @@
+ "psrlw $8, %%mm1\n\t"
+ "movq %%mm1, (%0)\n"
+ "1:\n\t"
+- "addl $8, %0\n\t"
++ "add $8, %0\n\t"
+ "dec %1\n\t"
+ "jnz 4b\n\t"
+ "jmp 2f\n\t"
+@@ -415,8 +419,8 @@
+ "psrlw $8, %%mm1\n\t"
+ "movq %%mm1, (%0)\n"
+ "1:\n\t"
+- "addl $8, %2\n\t"
+- "addl $8, %0\n\t"
++ "add $8, %2\n\t"
++ "add $8, %0\n\t"
+ "dec %1\n\t"
+ "jnz 3b\n\t"
+ "2:\n\t"
+diff -urN DirectFB-0.9.20.orig/src/misc/cpu_accel.c DirectFB-0.9.20/src/misc/cpu_accel.c
+--- DirectFB-0.9.20.orig/src/misc/cpu_accel.c 2003-08-15 13:32:45.000000000 +0200
++++ DirectFB-0.9.20/src/misc/cpu_accel.c 2004-01-08 23:48:05.000000000 +0100
+@@ -57,6 +57,13 @@
+
+ #include "cpu_accel.h"
+
++#ifdef __x86_64__
++static __u32 arch_accel (void)
++{
++ return MM_ACCEL_X86_MMX | MM_ACCEL_X86_SSE | MM_ACCEL_X86_MMXEXT | MM_ACCEL_X86_SSE2 | MM_ACCEL_X86_3DNOW;
++}
++#endif
++
+ #ifdef ARCH_X86
+ static __u32 arch_accel (void)
+ {
+@@ -175,7 +182,7 @@
+
+ __u32 dfb_mm_accel (void)
+ {
+-#if defined (ARCH_X86) || (defined (ARCH_PPC) && defined (ENABLE_ALTIVEC))
++#if defined(__x86_64__) || defined (ARCH_X86) || (defined (ARCH_PPC) && defined (ENABLE_ALTIVEC))
+ static __u32 accel = ~0U;
+
+ if (accel != ~0U)
+@@ -183,7 +190,7 @@
+
+ accel = arch_accel ();
+
+-#ifdef USE_SSE
++#if defined(USE_SSE) && !defined(__x86_64__)
+
+ /* test OS support for SSE */
+ if (accel & MM_ACCEL_X86_SSE) {