From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LC360-0005l1-Bw for qemu-devel@nongnu.org; Sun, 14 Dec 2008 21:22:08 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LC35y-0005jj-PR for qemu-devel@nongnu.org; Sun, 14 Dec 2008 21:22:07 -0500 Received: from [199.232.76.173] (port=42113 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LC35y-0005jV-Fa for qemu-devel@nongnu.org; Sun, 14 Dec 2008 21:22:06 -0500 Received: from mx20.gnu.org ([199.232.41.8]:31262) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LC35y-00017C-6b for qemu-devel@nongnu.org; Sun, 14 Dec 2008 21:22:06 -0500 Received: from mail.codesourcery.com ([65.74.133.4]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LC35x-0002OU-76 for qemu-devel@nongnu.org; Sun, 14 Dec 2008 21:22:05 -0500 From: Nathan Froyd Date: Sun, 14 Dec 2008 18:14:35 -0800 Message-Id: <1229307315-16807-3-git-send-email-froydnj@codesourcery.com> In-Reply-To: <1229307315-16807-1-git-send-email-froydnj@codesourcery.com> References: <1229307315-16807-1-git-send-email-froydnj@codesourcery.com> Subject: [Qemu-devel] [PATCH 02/42] target-ppc: add helper macros for later patches. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Signed-off-by: Nathan Froyd --- target-ppc/op_helper.c | 33 +++++++++++++++++++++++++++++++++ 1 files changed, 33 insertions(+), 0 deletions(-) diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c index 2d665e8..c597632 100644 --- a/target-ppc/op_helper.c +++ b/target-ppc/op_helper.c @@ -2007,6 +2007,39 @@ target_ulong helper_dlmzb (target_ulong high, target_ulong low, uint32_t update_ } /*****************************************************************************/ +/* Altivec extension helpers */ +#if defined(WORDS_BIGENDIAN) +#define HI_IDX 0 +#define LO_IDX 1 +#else +#define HI_IDX 1 +#define LO_IDX 0 +#endif + +#define N_ELEMS(element) (sizeof (r->element) / sizeof (r->element[0])) + +#define VECTOR_FOR(element) \ + int i; \ + VECTOR_FOR_I(i, element) + +#define VECTOR_FOR_I(index, element) \ + for (index = 0; index < N_ELEMS(element); index++) + +#if defined(WORDS_BIGENDIAN) +#define VECTOR_FOR_INORDER_I(index, element) VECTOR_FOR_I(index, element) +#else +#define VECTOR_FOR_INORDER_I(index, element) \ + for (index = N_ELEMS(element)-1; index >= 0; index--) +#endif + +#undef VECTOR_FOR +#undef VECTOR_FOR_I +#undef VECTOR_FOR_INORDER_I +#undef N_ELEMS +#undef HI_IDX +#undef LO_IDX + +/*****************************************************************************/ /* SPE extension helpers */ /* Use a table to make this quicker */ static uint8_t hbrev[16] = { -- 1.6.0.5