summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadast2050-yocto-poky-29d6678fd546377459ef75cf54abeef5b969b5cf.zip
ast2050-yocto-poky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch')
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch256
1 files changed, 256 insertions, 0 deletions
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch
new file mode 100644
index 0000000..235b551
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch
@@ -0,0 +1,256 @@
+From 74ab27f64a747ee45810f99cdc6e29b82cf8035e Mon Sep 17 00:00:00 2001
+From: Tiago Vignatti <tiago.vignatti@nokia.com>
+Date: Mon, 28 Dec 2009 16:00:28 +0000
+Subject: Revert "Make sys.c use unaligned access functions provided in compiler."
+
+This reverts commit da923d0bc15e99a8ed1986bd6f5df37f7af7284b.
+
+Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+---
+diff --git a/hw/xfree86/x86emu/Makefile.am b/hw/xfree86/x86emu/Makefile.am
+index e7368f5..df96977 100644
+--- a/hw/xfree86/x86emu/Makefile.am
++++ b/hw/xfree86/x86emu/Makefile.am
+@@ -11,7 +11,7 @@ libx86emu_la_SOURCES = debug.c \
+ sys.c \
+ x86emu.h
+
+-INCLUDES = $(XORG_INCS)
++INCLUDES =
+
+ AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
+
+diff --git a/hw/xfree86/x86emu/sys.c b/hw/xfree86/x86emu/sys.c
+index 2ebf6f1..e15fb09 100644
+--- a/hw/xfree86/x86emu/sys.c
++++ b/hw/xfree86/x86emu/sys.c
+@@ -48,13 +48,168 @@
+ #ifndef NO_SYS_HEADERS
+ #include <string.h>
+ #endif
+-#include "compiler.h" /* for unaligned access functions */
+ /*------------------------- Global Variables ------------------------------*/
+
+ X86EMU_sysEnv _X86EMU_env; /* Global emulator machine state */
+ X86EMU_intrFuncs _X86EMU_intrTab[256];
+
+ /*----------------------------- Implementation ----------------------------*/
++#if defined(__alpha__) || defined(__alpha)
++/* to cope with broken egcs-1.1.2 :-(((( */
++
++#define ALPHA_UALOADS
++/*
++ * inline functions to do unaligned accesses
++ * from linux/include/asm-alpha/unaligned.h
++ */
++
++/*
++ * EGCS 1.1 knows about arbitrary unaligned loads. Define some
++ * packed structures to talk about such things with.
++ */
++
++#if defined(__GNUC__)
++struct __una_u64 { unsigned long x __attribute__((packed)); };
++struct __una_u32 { unsigned int x __attribute__((packed)); };
++struct __una_u16 { unsigned short x __attribute__((packed)); };
++#endif
++
++static __inline__ unsigned long ldq_u(unsigned long * r11)
++{
++#if defined(__GNUC__)
++ const struct __una_u64 *ptr = (const struct __una_u64 *) r11;
++ return ptr->x;
++#else
++ unsigned long r1,r2;
++ __asm__("ldq_u %0,%3\n\t"
++ "ldq_u %1,%4\n\t"
++ "extql %0,%2,%0\n\t"
++ "extqh %1,%2,%1"
++ :"=&r" (r1), "=&r" (r2)
++ :"r" (r11),
++ "m" (*r11),
++ "m" (*(const unsigned long *)(7+(char *) r11)));
++ return r1 | r2;
++#endif
++}
++
++static __inline__ unsigned long ldl_u(unsigned int * r11)
++{
++#if defined(__GNUC__)
++ const struct __una_u32 *ptr = (const struct __una_u32 *) r11;
++ return ptr->x;
++#else
++ unsigned long r1,r2;
++ __asm__("ldq_u %0,%3\n\t"
++ "ldq_u %1,%4\n\t"
++ "extll %0,%2,%0\n\t"
++ "extlh %1,%2,%1"
++ :"=&r" (r1), "=&r" (r2)
++ :"r" (r11),
++ "m" (*r11),
++ "m" (*(const unsigned long *)(3+(char *) r11)));
++ return r1 | r2;
++#endif
++}
++
++static __inline__ unsigned long ldw_u(unsigned short * r11)
++{
++#if defined(__GNUC__)
++ const struct __una_u16 *ptr = (const struct __una_u16 *) r11;
++ return ptr->x;
++#else
++ unsigned long r1,r2;
++ __asm__("ldq_u %0,%3\n\t"
++ "ldq_u %1,%4\n\t"
++ "extwl %0,%2,%0\n\t"
++ "extwh %1,%2,%1"
++ :"=&r" (r1), "=&r" (r2)
++ :"r" (r11),
++ "m" (*r11),
++ "m" (*(const unsigned long *)(1+(char *) r11)));
++ return r1 | r2;
++#endif
++}
++
++/*
++ * Elemental unaligned stores
++ */
++
++static __inline__ void stq_u(unsigned long r5, unsigned long * r11)
++{
++#if defined(__GNUC__)
++ struct __una_u64 *ptr = (struct __una_u64 *) r11;
++ ptr->x = r5;
++#else
++ unsigned long r1,r2,r3,r4;
++
++ __asm__("ldq_u %3,%1\n\t"
++ "ldq_u %2,%0\n\t"
++ "insqh %6,%7,%5\n\t"
++ "insql %6,%7,%4\n\t"
++ "mskqh %3,%7,%3\n\t"
++ "mskql %2,%7,%2\n\t"
++ "bis %3,%5,%3\n\t"
++ "bis %2,%4,%2\n\t"
++ "stq_u %3,%1\n\t"
++ "stq_u %2,%0"
++ :"=m" (*r11),
++ "=m" (*(unsigned long *)(7+(char *) r11)),
++ "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
++ :"r" (r5), "r" (r11));
++#endif
++}
++
++static __inline__ void stl_u(unsigned long r5, unsigned int * r11)
++{
++#if defined(__GNUC__)
++ struct __una_u32 *ptr = (struct __una_u32 *) r11;
++ ptr->x = r5;
++#else
++ unsigned long r1,r2,r3,r4;
++
++ __asm__("ldq_u %3,%1\n\t"
++ "ldq_u %2,%0\n\t"
++ "inslh %6,%7,%5\n\t"
++ "insll %6,%7,%4\n\t"
++ "msklh %3,%7,%3\n\t"
++ "mskll %2,%7,%2\n\t"
++ "bis %3,%5,%3\n\t"
++ "bis %2,%4,%2\n\t"
++ "stq_u %3,%1\n\t"
++ "stq_u %2,%0"
++ :"=m" (*r11),
++ "=m" (*(unsigned long *)(3+(char *) r11)),
++ "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
++ :"r" (r5), "r" (r11));
++#endif
++}
++
++static __inline__ void stw_u(unsigned long r5, unsigned short * r11)
++{
++#if defined(__GNUC__)
++ struct __una_u16 *ptr = (struct __una_u16 *) r11;
++ ptr->x = r5;
++#else
++ unsigned long r1,r2,r3,r4;
++
++ __asm__("ldq_u %3,%1\n\t"
++ "ldq_u %2,%0\n\t"
++ "inswh %6,%7,%5\n\t"
++ "inswl %6,%7,%4\n\t"
++ "mskwh %3,%7,%3\n\t"
++ "mskwl %2,%7,%2\n\t"
++ "bis %3,%5,%3\n\t"
++ "bis %2,%4,%2\n\t"
++ "stq_u %3,%1\n\t"
++ "stq_u %2,%0"
++ :"=m" (*r11),
++ "=m" (*(unsigned long *)(1+(char *) r11)),
++ "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
++ :"r" (r5), "r" (r11));
++#endif
++}
++#endif
+
+ /****************************************************************************
+ PARAMETERS:
+@@ -107,7 +262,13 @@ u16 X86API rdw(
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ val = ldw_u((u16*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ val = uldw((u16*)(M.mem_base + addr));
++#else
++ val = *(u16*)(M.mem_base + addr);
++#endif
+ DB( if (DEBUG_MEM_TRACE())
+ printk("%#08x 2 -> %#x\n", addr, val);)
+ return val;
+@@ -140,7 +301,13 @@ u32 X86API rdl(
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ val = ldl_u((u32*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ val = uldl((u32*)(M.mem_base + addr));
++#else
++ val = *(u32*)(M.mem_base + addr);
++#endif
+ DB( if (DEBUG_MEM_TRACE())
+ printk("%#08x 4 -> %#x\n", addr, val);)
+ return val;
+@@ -192,7 +359,13 @@ DB( if (DEBUG_MEM_TRACE())
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ stw_u(val,(u16*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ ustw(val,(u16*)(M.mem_base + addr));
++#else
++ *(u16*)(M.mem_base + addr) = val;
++#endif
+ }
+
+ /****************************************************************************
+@@ -222,7 +395,13 @@ DB( if (DEBUG_MEM_TRACE())
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ stl_u(val,(u32*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ ustl(val,(u32*)(M.mem_base + addr));
++#else
++ *(u32*)(M.mem_base + addr) = val;
++#endif
+ }
+
+ /****************************************************************************
+--
+cgit v0.8.3-6-g21f6
+
OpenPOWER on IntegriCloud