OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.dg/] [complete-port.c] - Diff between revs 298 and 338

Only display areas with differences | Details | Blame | View Log

Rev 298 Rev 338
/* This small program uses all the arithmetic operators that may
/* This small program uses all the arithmetic operators that may
   generate calls to library routines which must be implemented in
   generate calls to library routines which must be implemented in
   port-specific assembly language.  */
   port-specific assembly language.  */
/* { dg-do link } */
/* { dg-do link } */
 
 
#include <stddef.h>
#include <stddef.h>
 
 
int foo ();
int foo ();
double dfoo ();
double dfoo ();
void discard (int);
void discard (int);
void ddiscard (double);
void ddiscard (double);
 
 
int
int
main (void)
main (void)
{
{
  int a = foo (), b = foo ();
  int a = foo (), b = foo ();
  unsigned int au = foo (), bu = foo ();
  unsigned int au = foo (), bu = foo ();
  float af = dfoo (), bf = dfoo ();
  float af = dfoo (), bf = dfoo ();
  double ad = dfoo (), bd = dfoo ();
  double ad = dfoo (), bd = dfoo ();
 
 
  discard (a * b);
  discard (a * b);
  discard (a / b);
  discard (a / b);
  discard (a % b);
  discard (a % b);
 
 
  discard (au / bu);
  discard (au / bu);
  discard (au % bu);
  discard (au % bu);
 
 
  discard (a >> b);
  discard (a >> b);
  discard (a << b);
  discard (a << b);
 
 
  discard (au >> bu);
  discard (au >> bu);
  discard (au << bu);
  discard (au << bu);
 
 
  ddiscard (ad + bd);
  ddiscard (ad + bd);
  ddiscard (ad - bd);
  ddiscard (ad - bd);
  ddiscard (ad * bd);
  ddiscard (ad * bd);
  ddiscard (ad / bd);
  ddiscard (ad / bd);
  ddiscard (-ad);
  ddiscard (-ad);
 
 
  ddiscard (af + bf);
  ddiscard (af + bf);
  ddiscard (af - bf);
  ddiscard (af - bf);
  ddiscard (af * bf);
  ddiscard (af * bf);
  ddiscard (af / bf);
  ddiscard (af / bf);
  ddiscard (-af);
  ddiscard (-af);
 
 
  discard ((int) ad);
  discard ((int) ad);
  discard ((int) af);
  discard ((int) af);
 
 
  ddiscard ((double) a);
  ddiscard ((double) a);
  ddiscard ((float) a);
  ddiscard ((float) a);
  ddiscard ((float) ad);
  ddiscard ((float) ad);
 
 
  discard (ad == bd);
  discard (ad == bd);
  discard (ad < bd);
  discard (ad < bd);
  discard (ad > bd);
  discard (ad > bd);
  discard (ad != bd);
  discard (ad != bd);
  discard (ad <= bd);
  discard (ad <= bd);
  discard (ad >= bd);
  discard (ad >= bd);
 
 
  discard (af == bf);
  discard (af == bf);
  discard (af < bf);
  discard (af < bf);
  discard (af > bf);
  discard (af > bf);
  discard (af != bf);
  discard (af != bf);
  discard (af <= bf);
  discard (af <= bf);
  discard (af >= bf);
  discard (af >= bf);
 
 
  return 0;
  return 0;
}
}
 
 
void
void
discard (x)
discard (x)
     int x __attribute__((__unused__));
     int x __attribute__((__unused__));
{}
{}
 
 
void
void
ddiscard (x)
ddiscard (x)
     double x __attribute__((__unused__));
     double x __attribute__((__unused__));
{}
{}
 
 
int
int
foo ()
foo ()
{
{
  static int table[] = {20, 69, 4, 12};
  static int table[] = {20, 69, 4, 12};
  static int idx;
  static int idx;
 
 
  return table[idx++];
  return table[idx++];
}
}
 
 
double
double
dfoo ()
dfoo ()
{
{
  static double table[] = {20.4, 69.96, 4.4, 202.202};
  static double table[] = {20.4, 69.96, 4.4, 202.202};
  static int idx;
  static int idx;
 
 
  return table[idx++];
  return table[idx++];
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.