URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 298 |
Rev 384 |
/* { dg-do run } */
|
/* { dg-do run } */
|
/* { dg-require-effective-target stdint_types } */
|
/* { dg-require-effective-target stdint_types } */
|
/* { dg-options "-Wall" } */
|
/* { dg-options "-Wall" } */
|
|
|
#include <stdint.h>
|
#include <stdint.h>
|
|
|
#define MAKE_FUN(suffix, type) \
|
#define MAKE_FUN(suffix, type) \
|
type my_bswap##suffix(type x) { \
|
type my_bswap##suffix(type x) { \
|
type result = 0; \
|
type result = 0; \
|
int shift; \
|
int shift; \
|
for (shift = 0; shift < 8 * sizeof (type); shift += 8) \
|
for (shift = 0; shift < 8 * sizeof (type); shift += 8) \
|
{ \
|
{ \
|
result <<= 8; \
|
result <<= 8; \
|
result |= (x >> shift) & 0xff; \
|
result |= (x >> shift) & 0xff; \
|
} \
|
} \
|
return result; \
|
return result; \
|
} \
|
} \
|
|
|
MAKE_FUN(32, uint32_t);
|
MAKE_FUN(32, uint32_t);
|
MAKE_FUN(64, uint64_t);
|
MAKE_FUN(64, uint64_t);
|
|
|
extern void abort (void);
|
extern void abort (void);
|
|
|
#define NUMS32 \
|
#define NUMS32 \
|
{ \
|
{ \
|
0x00000000UL, \
|
0x00000000UL, \
|
0x11223344UL, \
|
0x11223344UL, \
|
0xffffffffUL, \
|
0xffffffffUL, \
|
}
|
}
|
|
|
#define NUMS64 \
|
#define NUMS64 \
|
{ \
|
{ \
|
0x0000000000000000ULL, \
|
0x0000000000000000ULL, \
|
0x1122334455667788ULL, \
|
0x1122334455667788ULL, \
|
0xffffffffffffffffULL, \
|
0xffffffffffffffffULL, \
|
}
|
}
|
|
|
uint32_t uint32_ts[] =
|
uint32_t uint32_ts[] =
|
NUMS32;
|
NUMS32;
|
|
|
uint64_t uint64_ts[] =
|
uint64_t uint64_ts[] =
|
NUMS64;
|
NUMS64;
|
|
|
#define N(table) (sizeof (table) / sizeof (table[0]))
|
#define N(table) (sizeof (table) / sizeof (table[0]))
|
|
|
int
|
int
|
main (void)
|
main (void)
|
{
|
{
|
int i;
|
int i;
|
|
|
for (i = 0; i < N(uint32_ts); i++)
|
for (i = 0; i < N(uint32_ts); i++)
|
if (__builtin_bswap32 (uint32_ts[i]) != my_bswap32 (uint32_ts[i]))
|
if (__builtin_bswap32 (uint32_ts[i]) != my_bswap32 (uint32_ts[i]))
|
abort ();
|
abort ();
|
|
|
for (i = 0; i < N(uint64_ts); i++)
|
for (i = 0; i < N(uint64_ts); i++)
|
if (__builtin_bswap64 (uint64_ts[i]) != my_bswap64 (uint64_ts[i]))
|
if (__builtin_bswap64 (uint64_ts[i]) != my_bswap64 (uint64_ts[i]))
|
abort ();
|
abort ();
|
|
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.