Author: aurel32
Date: 2011-12-21 02:55:43 +0000 (Wed, 21 Dec 2011)
New Revision: 5102

Added:
   glibc-package/trunk/debian/patches/m68k/cvs-byteswap.diff
Removed:
   glibc-package/trunk/debian/patches/m68k/local-byteswap.diff
Modified:
   glibc-package/trunk/debian/patches/series
Log:
  * patches/m68k/cvs-byteswap.diff: fix m68k optimized version of 
    <bits/byteswap.h>.  Closes: #652356.



Added: glibc-package/trunk/debian/patches/m68k/cvs-byteswap.diff
===================================================================
--- glibc-package/trunk/debian/patches/m68k/cvs-byteswap.diff                   
        (rev 0)
+++ glibc-package/trunk/debian/patches/m68k/cvs-byteswap.diff   2011-12-21 
02:55:43 UTC (rev 5102)
@@ -0,0 +1,86 @@
+2011-03-06  Andreas Schwab  <[email protected]>
+
+       * ports/sysdeps/m68k/bits/byteswap.h (__bswap_16, __bswap_32)
+       (__bswap_64): Implement as inline functions.
+
+diff --git a/ports/sysdeps/m68k/bits/byteswap.h 
b/ports/sysdeps/m68k/bits/byteswap.h
+index a2546c9..4f31d95 100644
+--- a/ports/sysdeps/m68k/bits/byteswap.h
++++ b/ports/sysdeps/m68k/bits/byteswap.h
+@@ -30,36 +30,29 @@
+ #define __bswap_constant_16(x) \
+      ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
+ 
+-#ifdef __GNUC__
+-# define __bswap_16(x) \
+-    (__extension__                                                          \
+-     ({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
+-#else
+ static __inline unsigned short int
+ __bswap_16 (unsigned short int __bsx)
+ {
+   return __bswap_constant_16 (__bsx);
+ }
+-#endif
+ 
+ /* Swap bytes in 32 bit value.  */
+ #define __bswap_constant_32(x) \
+      ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >>  8) |           \
+       (((x) & 0x0000ff00u) <<  8) | (((x) & 0x000000ffu) << 24))
+ 
+-#if defined __GNUC__ && __GNUC__ >= 2 && !defined(__mcoldfire__)
+-# define __bswap_32(x) \
+-  __extension__                                                       \
+-  ({ unsigned int __bswap_32_v;                                       \
+-     if (__builtin_constant_p (x))                            \
+-       __bswap_32_v = __bswap_constant_32 (x);                        \
+-     else                                                     \
+-       __asm__ __volatile__ ("ror%.w %#8, %0;"                        \
+-                           "swap %0;"                         \
+-                           "ror%.w %#8, %0"                   \
+-                           : "=d" (__bswap_32_v)              \
+-                           : "0" ((unsigned int) (x)));       \
+-     __bswap_32_v; })
++#if !defined(__mcoldfire__)
++static __inline unsigned int
++__bswap_32 (unsigned int __bsx)
++{
++  if (__builtin_constant_p (__bsx))
++    return __bswap_constant_32 (__bsx);
++  __asm__ __volatile__ ("ror%.w %#8, %0;"
++                      "swap %0;"
++                      "ror%.w %#8, %0"
++                      : "+d" (__bsx));
++  return __bsx;
++}
+ #else
+ static __inline unsigned int
+ __bswap_32 (unsigned int __bsx)
+@@ -81,19 +74,14 @@ __bswap_32 (unsigned int __bsx)
+       | (((x) & 0x00000000000000ffull) << 56))
+ 
+ /* Swap bytes in 64 bit value.  */
+-# define __bswap_64(x) \
+-  __extension__                                                               
\
+-  ({ union { unsigned long long int __ll;                             \
+-           unsigned long int __l[2]; } __bswap_64_v, __bswap_64_r;    \
+-     if (__builtin_constant_p (x))                                    \
+-       __bswap_64_r.__ll = __bswap_constant_64 (x);                   \
+-     else                                                             \
+-       {                                                              \
+-       __bswap_64_v.__ll = (x);                                       \
+-       __bswap_64_r.__l[0] = __bswap_32 (__bswap_64_v.__l[1]);        \
+-       __bswap_64_r.__l[1] = __bswap_32 (__bswap_64_v.__l[0]);        \
+-       }                                                              \
+-     __bswap_64_r.__ll; })
++static __inline unsigned long long
++__bswap_64 (unsigned long long __bsx)
++{
++  if (__builtin_constant_p (__bsx))
++    return __bswap_constant_64 (__bsx);
++  return (__bswap_32 (__bsx >> 32)
++        | ((unsigned long long) __bswap_32 (__bsx) << 32));
++}
+ #endif
+ 
+ #endif /* _BITS_BYTESWAP_H */

Deleted: glibc-package/trunk/debian/patches/m68k/local-byteswap.diff
===================================================================
--- glibc-package/trunk/debian/patches/m68k/local-byteswap.diff 2011-12-19 
17:38:40 UTC (rev 5101)
+++ glibc-package/trunk/debian/patches/m68k/local-byteswap.diff 2011-12-21 
02:55:43 UTC (rev 5102)
@@ -1,102 +0,0 @@
---- a/ports/sysdeps/m68k/bits/byteswap.h
-+++ /dev/null
-@@ -1,99 +0,0 @@
--/* Macros to swap the order of bytes in integer values.  m68k version.
--   Copyright (C) 1997, 2002, 2008 Free Software Foundation, Inc.
--   This file is part of the GNU C Library.
--
--   The GNU C Library is free software; you can redistribute it and/or
--   modify it under the terms of the GNU Lesser General Public
--   License as published by the Free Software Foundation; either
--   version 2.1 of the License, or (at your option) any later version.
--
--   The GNU C Library is distributed in the hope that it will be useful,
--   but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
--   Lesser General Public License for more details.
--
--   You should have received a copy of the GNU Lesser General Public
--   License along with the GNU C Library; if not, write to the Free
--   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--   02111-1307 USA.  */
--
--#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
--# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
--#endif
--
--#ifndef _BITS_BYTESWAP_H
--#define _BITS_BYTESWAP_H 1
--
--/* Swap bytes in 16 bit value.  We don't provide an assembler version
--   because GCC is smart enough to generate optimal assembler output, and
--   this allows for better cse.  */
--#define __bswap_constant_16(x) \
--     ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
--
--#ifdef __GNUC__
--# define __bswap_16(x) \
--    (__extension__                                                          \
--     ({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
--#else
--static __inline unsigned short int
--__bswap_16 (unsigned short int __bsx)
--{
--  return __bswap_constant_16 (__bsx);
--}
--#endif
--
--/* Swap bytes in 32 bit value.  */
--#define __bswap_constant_32(x) \
--     ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >>  8) |           \
--      (((x) & 0x0000ff00u) <<  8) | (((x) & 0x000000ffu) << 24))
--
--#if defined __GNUC__ && __GNUC__ >= 2 && !defined(__mcoldfire__)
--# define __bswap_32(x) \
--  __extension__                                                       \
--  ({ unsigned int __bswap_32_v;                                       \
--     if (__builtin_constant_p (x))                            \
--       __bswap_32_v = __bswap_constant_32 (x);                        \
--     else                                                     \
--       __asm__ __volatile__ ("ror%.w %#8, %0;"                        \
--                           "swap %0;"                         \
--                           "ror%.w %#8, %0"                   \
--                           : "=d" (__bswap_32_v)              \
--                           : "0" ((unsigned int) (x)));       \
--     __bswap_32_v; })
--#else
--static __inline unsigned int
--__bswap_32 (unsigned int __bsx)
--{
--  return __bswap_constant_32 (__bsx);
--}
--#endif
--
--#if defined __GNUC__ && __GNUC__ >= 2
--/* Swap bytes in 64 bit value.  */
--# define __bswap_constant_64(x) \
--     ((((x) & 0xff00000000000000ull) >> 56)                                 \
--      | (((x) & 0x00ff000000000000ull) >> 40)                               \
--      | (((x) & 0x0000ff0000000000ull) >> 24)                               \
--      | (((x) & 0x000000ff00000000ull) >> 8)                                \
--      | (((x) & 0x00000000ff000000ull) << 8)                                \
--      | (((x) & 0x0000000000ff0000ull) << 24)                               \
--      | (((x) & 0x000000000000ff00ull) << 40)                               \
--      | (((x) & 0x00000000000000ffull) << 56))
--
--/* Swap bytes in 64 bit value.  */
--# define __bswap_64(x) \
--  __extension__                                                               
\
--  ({ union { unsigned long long int __ll;                             \
--           unsigned long int __l[2]; } __bswap_64_v, __bswap_64_r;    \
--     if (__builtin_constant_p (x))                                    \
--       __bswap_64_r.__ll = __bswap_constant_64 (x);                   \
--     else                                                             \
--       {                                                              \
--       __bswap_64_v.__ll = (x);                                       \
--       __bswap_64_r.__l[0] = __bswap_32 (__bswap_64_v.__l[1]);        \
--       __bswap_64_r.__l[1] = __bswap_32 (__bswap_64_v.__l[0]);        \
--       }                                                              \
--     __bswap_64_r.__ll; })
--#endif
--
--#endif /* _BITS_BYTESWAP_H */

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series   2011-12-19 17:38:40 UTC (rev 
5101)
+++ glibc-package/trunk/debian/patches/series   2011-12-21 02:55:43 UTC (rev 
5102)
@@ -194,7 +194,7 @@
 m68k/local-reloc.diff
 m68k/local-pthread_lock.diff
 m68k/submitted-gcc34-seccomment.diff
-m68k/local-byteswap.diff
+m68k/cvs-byteswap.diff
 
 mips/local-lowlevellock.diff
 mips/local-r10k.diff


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to