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 |
/* Test for PR target/20191. */
|
/* Test for PR target/20191. */
|
|
|
struct S1;
|
struct S1;
|
|
|
struct S1 {
|
struct S1 {
|
struct S1 *next;
|
struct S1 *next;
|
float x;
|
float x;
|
};
|
};
|
|
|
struct S2 {
|
struct S2 {
|
float y;
|
float y;
|
};
|
};
|
|
|
extern int func_ex1 (float);
|
extern int func_ex1 (float);
|
|
|
extern int f;
|
extern int f;
|
extern float n;
|
extern float n;
|
extern struct S1 *bp1;
|
extern struct S1 *bp1;
|
extern struct S2 *bp2;
|
extern struct S2 *bp2;
|
|
|
inline float
|
inline float
|
func1 (int f, struct S2 *p2)
|
func1 (int f, struct S2 *p2)
|
{
|
{
|
float a;
|
float a;
|
|
|
if (f)
|
if (f)
|
a = n >= p2->y ? n : p2->y;
|
a = n >= p2->y ? n : p2->y;
|
else
|
else
|
a = n;
|
a = n;
|
return a;
|
return a;
|
}
|
}
|
|
|
inline float
|
inline float
|
func2 (struct S1 *p1, struct S2 *p2)
|
func2 (struct S1 *p1, struct S2 *p2)
|
{
|
{
|
float a, b;
|
float a, b;
|
|
|
if(n <= 1.0)
|
if(n <= 1.0)
|
b = func1 (f, p2);
|
b = func1 (f, p2);
|
else
|
else
|
{
|
{
|
a = n <= p1->x ? 0.0 : p1->x;
|
a = n <= p1->x ? 0.0 : p1->x;
|
b = a >= p2->y ? a : p2->y;
|
b = a >= p2->y ? a : p2->y;
|
}
|
}
|
return(b);
|
return(b);
|
}
|
}
|
|
|
void
|
void
|
func3 (struct S1 *p)
|
func3 (struct S1 *p)
|
{
|
{
|
float a = 0.0;
|
float a = 0.0;
|
|
|
if (f)
|
if (f)
|
a = func2 (bp1, bp2);
|
a = func2 (bp1, bp2);
|
if (func_ex1 (a))
|
if (func_ex1 (a))
|
bp1 = p;
|
bp1 = p;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.