+2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * support/regression/tests/bitvars.c,
+ * support/regression/tests/bitwise.c,
+ * support/regression/tests/rotate.c: "fixed" problems on Alpha
+
2005-02-10 Raphael Neider <rneider AT web.de>
* src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
/** Test the bitwise operators.
-
+
type: char, short, long
attr: volatile,
storage: static,
ASSERT(({type})(left ^ 0xc1ec) == ({type})0xFC1B);
ASSERT(({type})(0x3df7 ^ right) == ({type})0xFC1B);
+#if defined (__GNUC__) && (__GNUC__ < 3)
+ // long is 64 bits on GCC 2.95.4 on alpha and I don't know how to detect alpha...
+ ASSERT(({type})(~left) == ({type})0xFFFFFFFFFFFFC208);
+#else
ASSERT(({type})(~left) == ({type})0xFFFFC208);
+#endif
}
#endif
#if SIZE == 32
-# define TYPE unsigned long
+// long is 64 bits on GCC 2.95.4 on alpha and I don't know how to detect alpha...
+# if defined (__GNUC__) && (__GNUC__ < 3)
+# define TYPE unsigned int
+# else
+# define TYPE unsigned long
+# endif
# if MSB
# define TEST_VECT 0xa8c5a5c6
# else
TYPE rol6(TYPE s){ return (s<<6) | (s>>(SIZE-6)); }
TYPE rol7(TYPE s){ return (s<<7) | (s>>(SIZE-7)); }
#endif
-
+
#if SIZE >=16 && !defined __ds390
TYPE rol8 (TYPE s){ return (s<<8 ) | (s>>(SIZE-8 )); }
TYPE rol9 (TYPE s){ return (s<<9 ) | (s>>(SIZE-9 )); }
{
volatile TYPE t = TEST_VECT;
TYPE u;
-
+
u = t;
-#if !defined __ds390
+#if !defined __ds390
ASSERT( rol1(u) == (TYPE)((TEST_VECT<<1) | (TEST_VECT>>(SIZE-1))) );
ASSERT( rol2(u) == (TYPE)((TEST_VECT<<2) | (TEST_VECT>>(SIZE-2))) );
ASSERT( rol3(u) == (TYPE)((TEST_VECT<<3) | (TEST_VECT>>(SIZE-3))) );
ASSERT( rol5(u) == (TYPE)((TEST_VECT<<5) | (TEST_VECT>>(SIZE-5))) );
ASSERT( rol6(u) == (TYPE)((TEST_VECT<<6) | (TEST_VECT>>(SIZE-6))) );
ASSERT( rol7(u) == (TYPE)((TEST_VECT<<7) | (TEST_VECT>>(SIZE-7))) );
-#endif
-
-#if SIZE >=16 && !defined __ds390
+#endif
+
+#if SIZE >=16 && !defined __ds390
ASSERT( rol8 (u) == (TYPE)((TEST_VECT<<8 ) | (TEST_VECT>>(SIZE-8 ))) );
ASSERT( rol9 (u) == (TYPE)((TEST_VECT<<9 ) | (TEST_VECT>>(SIZE-9 ))) );
ASSERT( rol10(u) == (TYPE)((TEST_VECT<<10) | (TEST_VECT>>(SIZE-10))) );
#if SIZE >=32
ASSERT( rol16(u) == (TYPE)((TEST_VECT<<16) | (TEST_VECT>>(SIZE-16))) );
- ASSERT( rol17(u) == (TYPE)((TEST_VECT<<17) | (TEST_VECT>>(SIZE-17))) );
-
+ ASSERT( rol17(u) == (TYPE)((TEST_VECT<<17) | (TEST_VECT>>(SIZE-17))) );
+
ASSERT( rol23(u) == (TYPE)((TEST_VECT<<23) | (TEST_VECT>>(SIZE-23))) );
ASSERT( rol24(u) == (TYPE)((TEST_VECT<<24) | (TEST_VECT>>(SIZE-24))) );
ASSERT( rol25(u) == (TYPE)((TEST_VECT<<25) | (TEST_VECT>>(SIZE-25))) );
-
+
ASSERT( rol30(u) == (TYPE)((TEST_VECT<<30) | (TEST_VECT>>(SIZE-30))) );
ASSERT( rol31(u) == (TYPE)((TEST_VECT<<31) | (TEST_VECT>>(SIZE-31))) );
#endif