URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 318 |
Rev 384 |
/* { dg-do run } */
|
/* { dg-do run } */
|
/* { dg-options "-O2" } */
|
/* { dg-options "-O2" } */
|
|
|
void *x (void *pdst, const void *psrc, unsigned int pn)
|
void *x (void *pdst, const void *psrc, unsigned int pn)
|
{
|
{
|
register void *return_dst = pdst;
|
register void *return_dst = pdst;
|
register unsigned char *dst = pdst;
|
register unsigned char *dst = pdst;
|
register unsigned const char *src = psrc;
|
register unsigned const char *src = psrc;
|
register int n __asm__ ("ebx") = pn;
|
register int n __asm__ ("ebx") = pn;
|
|
|
if (src < dst && dst < src + n)
|
if (src < dst && dst < src + n)
|
{
|
{
|
src += n;
|
src += n;
|
dst += n;
|
dst += n;
|
while (n--)
|
while (n--)
|
*--dst = *--src;
|
*--dst = *--src;
|
return return_dst;
|
return return_dst;
|
}
|
}
|
|
|
while (n >= 16) n--;
|
while (n >= 16) n--;
|
|
|
return return_dst;
|
return return_dst;
|
}
|
}
|
extern void abort ();
|
extern void abort ();
|
extern void exit (int);
|
extern void exit (int);
|
char xx[30] = "abc";
|
char xx[30] = "abc";
|
int main (void)
|
int main (void)
|
{
|
{
|
char yy[30] = "aab";
|
char yy[30] = "aab";
|
|
|
if (x (xx + 1, xx, 2) != xx + 1 || memcmp (xx, yy, sizeof (yy)) != 0)
|
if (x (xx + 1, xx, 2) != xx + 1 || memcmp (xx, yy, sizeof (yy)) != 0)
|
abort ();
|
abort ();
|
exit (0);
|
exit (0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.