diff options
author | Travis Tilley <lv@gentoo.org> | 2004-05-05 01:05:08 +0000 |
---|---|---|
committer | Travis Tilley <lv@gentoo.org> | 2004-05-05 01:05:08 +0000 |
commit | 0f2a1a7a17419f9983f4dda134fff94223936335 (patch) | |
tree | a66a3c65b16850f0181151d2c80579495947e59b /dev-libs/DirectFB/files | |
parent | Stable on sparc. (Manifest recommit) (diff) | |
download | gentoo-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.diff | 117 | ||||
-rw-r--r-- | dev-libs/DirectFB/files/DirectFB-0.9.20-simd-amd64.diff | 183 |
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) { |