4 |
* - Portable macros, types and inlined assembly - |
* - Portable macros, types and inlined assembly - |
5 |
* |
* |
6 |
* Copyright(C) 2002 Michael Militzer <isibaar@xvid.org> |
* Copyright(C) 2002 Michael Militzer <isibaar@xvid.org> |
7 |
* 2002 Peter Ross <pross@xvid.org> |
* 2002-2003 Peter Ross <pross@xvid.org> |
8 |
* 2002 Edouard Gomez <ed.gomez@free.fr> |
* 2002-2003 Edouard Gomez <ed.gomez@free.fr> |
9 |
* |
* |
10 |
* This file is part of XviD, a free MPEG-4 video encoder/decoder |
* This program is free software ; you can redistribute it and/or modify |
11 |
* |
* it under the terms of the GNU General Public License as published by |
|
* XviD is free software; you can redistribute it and/or modify it |
|
|
* under the terms of the GNU General Public License as published by |
|
12 |
* the Free Software Foundation; either version 2 of the License, or |
* the Free Software Foundation; either version 2 of the License, or |
13 |
* (at your option) any later version. |
* (at your option) any later version. |
14 |
* |
* |
248 |
| gcc PPC and PPC Altivec specific macros/functions |
| gcc PPC and PPC Altivec specific macros/functions |
249 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
250 |
# elif defined(ARCH_IS_PPC) |
# elif defined(ARCH_IS_PPC) |
251 |
|
|
252 |
|
# if defined(HAVE_ALTIVEC_PARENTHESES_DECL) |
253 |
|
# define AVV(x...) (x) |
254 |
|
# elif defined(HAVE_ALTIVEC_BRACES_DECL) |
255 |
|
# define AVV(x...) {x} |
256 |
|
# else |
257 |
|
# error Trying to compile PPC target without a vector declaration type. |
258 |
|
# endif |
259 |
|
|
260 |
# define BSWAP(a) __asm__ __volatile__ \ |
# define BSWAP(a) __asm__ __volatile__ \ |
261 |
( "lwbrx %0,0,%1; eieio" : "=r" (a) : "r" (&(a)), "m" (a)); |
( "lwbrx %0,0,%1; eieio" : "=r" (a) : "r" (&(a)), "m" (a)); |
262 |
|
|