URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
/* PR middle-end/34934 */
|
/* PR middle-end/34934 */
|
|
|
#include <stdarg.h>
|
#include <stdarg.h>
|
|
|
typedef struct
|
typedef struct
|
{
|
{
|
int e[1024];
|
int e[1024];
|
int f;
|
int f;
|
} S;
|
} S;
|
|
|
void foo (long *, va_list);
|
void foo (long *, va_list);
|
|
|
void
|
void
|
bar (long *x, S *y, int z, ...)
|
bar (long *x, S *y, int z, ...)
|
{
|
{
|
int i, j;
|
int i, j;
|
va_list ap;
|
va_list ap;
|
va_start (ap, z);
|
va_start (ap, z);
|
for (j = y->e[i = 1]; i <= y->f; j = y->e[++i])
|
for (j = y->e[i = 1]; i <= y->f; j = y->e[++i])
|
{
|
{
|
switch (z)
|
switch (z)
|
{
|
{
|
case 1:
|
case 1:
|
if (!(*x & 0x00000020))
|
if (!(*x & 0x00000020))
|
continue;
|
continue;
|
case 3:
|
case 3:
|
if (!(*x & 0x00000080))
|
if (!(*x & 0x00000080))
|
continue;
|
continue;
|
case 9:
|
case 9:
|
if (!(*x & 0x04000000))
|
if (!(*x & 0x04000000))
|
continue;
|
continue;
|
case 4:
|
case 4:
|
if (!(*x & 0x00000200))
|
if (!(*x & 0x00000200))
|
continue;
|
continue;
|
case 8:
|
case 8:
|
if (!(*x & 0x00100000))
|
if (!(*x & 0x00100000))
|
continue;
|
continue;
|
case 6:
|
case 6:
|
if (!(*x & 0x00000100))
|
if (!(*x & 0x00000100))
|
continue;
|
continue;
|
case 7:
|
case 7:
|
if (!(*x & 0x00040000))
|
if (!(*x & 0x00040000))
|
continue;
|
continue;
|
case 10:
|
case 10:
|
if (!(*x & 0x00000020)
|
if (!(*x & 0x00000020)
|
&& ((*x & 0x00008000) || (*x & 0x08000000)))
|
&& ((*x & 0x00008000) || (*x & 0x08000000)))
|
continue;
|
continue;
|
}
|
}
|
foo (x, ap);
|
foo (x, ap);
|
}
|
}
|
va_end (ap);
|
va_end (ap);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.