URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
/* PR target/14209. Bug in cris.md, shrinking access size of
|
/* PR target/14209. Bug in cris.md, shrinking access size of
|
postincrement.
|
postincrement.
|
Origin: <hp@axis.com>. */
|
Origin: <hp@axis.com>. */
|
|
|
long int xb (long int *y) __attribute__ ((__noinline__));
|
long int xb (long int *y) __attribute__ ((__noinline__));
|
long int xw (long int *y) __attribute__ ((__noinline__));
|
long int xw (long int *y) __attribute__ ((__noinline__));
|
short int yb (short int *y) __attribute__ ((__noinline__));
|
short int yb (short int *y) __attribute__ ((__noinline__));
|
|
|
long int xb (long int *y)
|
long int xb (long int *y)
|
{
|
{
|
long int xx = *y & 255;
|
long int xx = *y & 255;
|
return xx + y[1];
|
return xx + y[1];
|
}
|
}
|
|
|
long int xw (long int *y)
|
long int xw (long int *y)
|
{
|
{
|
long int xx = *y & 65535;
|
long int xx = *y & 65535;
|
return xx + y[1];
|
return xx + y[1];
|
}
|
}
|
|
|
short int yb (short int *y)
|
short int yb (short int *y)
|
{
|
{
|
short int xx = *y & 255;
|
short int xx = *y & 255;
|
return xx + y[1];
|
return xx + y[1];
|
}
|
}
|
|
|
int main (void)
|
int main (void)
|
{
|
{
|
long int y[] = {-1, 16000};
|
long int y[] = {-1, 16000};
|
short int yw[] = {-1, 16000};
|
short int yw[] = {-1, 16000};
|
|
|
if (xb (y) != 16255
|
if (xb (y) != 16255
|
|| xw (y) != 81535
|
|| xw (y) != 81535
|
|| yb (yw) != 16255)
|
|| yb (yw) != 16255)
|
abort ();
|
abort ();
|
exit (0);
|
exit (0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.