From d6a46fe8c264b5853ccf8f966f7bd00c1c32c877 Mon Sep 17 00:00:00 2001 From: aurel32 Date: Sat, 3 Jan 2009 13:31:19 +0000 Subject: [PATCH] Add helper macros for later patches. Remove N_ELEMS, VECTOR_FOR, and VECTOR_FOR_I macros. Retain the VECTOR_FOR_INORDER_I macros as the clearest way of expressing the intent of iterating over elements in their stored target-endian order. Signed-off-by: Nathan Froyd Signed-off-by: Aurelien Jarno git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6153 c046a42c-6fe2-441c-8c8c-71466251a162 --- target-ppc/op_helper.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c index 876b5170fb..5d603baedc 100644 --- a/target-ppc/op_helper.c +++ b/target-ppc/op_helper.c @@ -1953,6 +1953,28 @@ target_ulong helper_dlmzb (target_ulong high, target_ulong low, uint32_t update_ return i; } +/*****************************************************************************/ +/* 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 + +#if defined(WORDS_BIGENDIAN) +#define VECTOR_FOR_INORDER_I(index, element) \ + for (index = 0; index < ARRAY_SIZE(r->element); index++) +#else +#define VECTOR_FOR_INORDER_I(index, element) \ + for (index = ARRAY_SIZE(r->element)-1; index >= 0; index--) +#endif + +#undef VECTOR_FOR_INORDER_I +#undef HI_IDX +#undef LO_IDX + /*****************************************************************************/ /* SPE extension helpers */ /* Use a table to make this quicker */