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/] [g++.old-deja/] [g++.mike/] [p700.C] - Rev 305

Go to most recent revision | Compare with Previous | Blame | View Log

// { dg-do assemble  }
// { dg-options "-Wno-deprecated" }
// { dg-error "limited range of data type" "16-bit target" { target xstormy16-*-* } 0 }
// prms-id: 700

//# 1 "../../../../libg++/etc/benchmarks/dhrystone.cc"

























//# 1 "../../../../libg++/etc/benchmarks/Int.h" 1











































































class Int
{
protected:
  int          rep;



public:
               Int ();
               Int (const int  b);
               Int (const Int& b);
              ~Int();

               operator int() const;

  inline virtual  int   val() const;

  inline virtual  void  operator  = (const int);
  inline virtual  void  operator  = (const Int&);

  inline virtual  void  negate();
  inline virtual  void  complement();
  inline virtual  void  operator ++ ();
  inline virtual  void  operator -- ();

  inline virtual  void  operator += (const Int &  );
  inline virtual  void  operator -= (const Int &  );
  inline virtual  void  operator *= (const Int &  );
  inline virtual  void  operator /= (const Int &  );
  inline virtual  void  operator %= (const Int &  );
  inline virtual  void  operator |= (const Int &  );
  inline virtual  void  operator &= (const Int &  );
  inline virtual  void  operator ^= (const Int &  );
  inline virtual  void  operator <<=(const Int &  );
  inline virtual  void  operator >>=(const Int &  );


  inline virtual  void  operator += (const int);
  inline virtual  void  operator -= (const int);
  inline virtual  void  operator *= (const int);
  inline virtual  void  operator /= (const int);
  inline virtual  void  operator %= (const int);
  inline virtual  void  operator |= (const int);
  inline virtual  void  operator &= (const int);
  inline virtual  void  operator ^= (const int);
  inline virtual  void  operator <<=(const int);
  inline virtual  void  operator >>=(const int);


};

inline  int  Int::val() const { return rep; }
inline       Int::operator int() const { return val(); }

inline       Int::Int () :rep(0) {}
inline       Int::Int (const int  b) :rep(b) {}
inline       Int::Int (const Int& b) :rep(b.Int::val()) {}
inline       Int::~Int() {}

inline  void  Int::operator  = (const int  b)
{ rep = b;  ; }
inline  void  Int::operator  = (const Int&  b)
{ rep = b.Int::val();  ; }

inline  void  Int::complement()
{ rep = ~rep;  ; }
inline  void  Int::negate()
{ rep = -rep;  ; }
inline  void  Int::operator ++ ()
{ ++rep;  ; }
inline  void  Int::operator -- ()
{ --rep;  ; }

inline  void  Int::operator += (const Int &   b)
{ rep += b.Int::val();  ; }
inline  void  Int::operator -= (const Int &   b)
{ rep -= b.Int::val();  ; }
inline  void  Int::operator *= (const Int &   b)
{ rep *= b.Int::val();  ; }
inline  void  Int::operator /= (const Int &   b)
{ rep /= b.Int::val();  ; }
inline  void  Int::operator %= (const Int &   b)
{ rep %= b.Int::val();  ; }
inline  void  Int::operator |= (const Int &   b)
{ rep |= b.Int::val();  ; }
inline  void  Int::operator &= (const Int &   b)
{ rep &= b.Int::val();  ; }
inline  void  Int::operator ^= (const Int &   b)
{ rep ^= b.Int::val();  ; }
inline  void  Int::operator <<=(const Int &   b)
{ rep <<= b.Int::val();  ; }
inline  void  Int::operator >>=(const Int &   b)
{ rep >>= b.Int::val();  ; }



inline  void  Int::operator += (const int b)
{ rep += b;  ; }
inline  void  Int::operator -= (const int b)
{ rep -= b;  ; }
inline  void  Int::operator *= (const int b)
{ rep *= b;  ; }
inline  void  Int::operator /= (const int b)
{ rep /= b;  ; }
inline  void  Int::operator %= (const int b)
{ rep %= b;  ; }
inline  void  Int::operator |= (const int b)
{ rep |= b;  ; }
inline  void  Int::operator &= (const int b)
{ rep &= b;  ; }
inline  void  Int::operator ^= (const int b)
{ rep ^= b;  ; }
inline  void  Int::operator <<=(const int b)
{ rep <<= b;  ; }
inline  void  Int::operator >>=(const int b)
{ rep >>= b;  ; }


inline  int& operator  = (int& a,  const Int &   b)     // { dg-error "" } 
{ a = b.Int::val(); return a;}
inline  int& operator += (int& a,  const Int &   b)
{ a += b.Int::val(); return a; }
inline  int& operator -= (int& a,  const Int &   b)
{ a -= b.Int::val(); return a;}
inline  int& operator *= (int& a,  const Int &   b)
{ a *= b.Int::val(); return a;}
inline  int& operator /= (int& a,  const Int &   b)
{ a /= b.Int::val(); return a;}
inline  int& operator %= (int& a,  const Int &   b)
{ a %= b.Int::val(); return a;}
inline  int& operator |= (int& a,  const Int &   b)
{ a |= b.Int::val(); return a;}
inline  int& operator &= (int& a,  const Int &   b)
{ a &= b.Int::val(); return a;}
inline  int& operator ^= (int& a,  const Int &   b)
{ a ^= b.Int::val(); return a;}
inline  int& operator <<=(int& a,  const Int &   b)
{ a <<= b.Int::val(); return a;}
inline  int& operator >>=(int& a,  const Int &   b)
{ a >>= b.Int::val(); return a;}



//# 289 "../../../../libg++/etc/benchmarks/Int.h"


inline  Int  operator -  (const Int &   a) return r(a) // { dg-error "" } 
{ r.negate();  } // { dg-error "" } 
inline  Int  operator ~  (const Int &   a) return r(a) // { dg-error "" } 
{ r.complement();  } // { dg-error "" } 

inline  Int  operator +  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r += b.Int::val();  } // { dg-error "" } 
inline  Int  operator -  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r -= b.Int::val();  } // { dg-error "" } 
inline  Int  operator *  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r *= b.Int::val();  } // { dg-error "" } 
inline  Int  operator /  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r /= b.Int::val();  } // { dg-error "" } 
inline  Int  operator %  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r %= b.Int::val();  } // { dg-error "" } 
inline  Int  operator << (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r <<= b.Int::val();  } // { dg-error "" } 
inline  Int  operator >> (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r >>= b.Int::val();  } // { dg-error "" } 
inline  Int  operator &  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r &= b.Int::val();  } // { dg-error "" } 
inline  Int  operator |  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r |= b.Int::val();  } // { dg-error "" } 
inline  Int  operator ^  (const Int &   a, const Int &   b) return r(a) // { dg-error "" } 
{ r ^= b.Int::val();  } // { dg-error "" } 

inline  Int  operator +  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r += b;  } // { dg-error "" } 
inline  Int  operator -  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r -= b;  } // { dg-error "" } 
inline  Int  operator *  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r *= b;  } // { dg-error "" } 
inline  Int  operator /  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r /= b;  } // { dg-error "" } 
inline  Int  operator %  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r %= b;  } // { dg-error "" } 
inline  Int  operator << (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r <<= b;  } // { dg-error "" } 
inline  Int  operator >> (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r >>= b;  } // { dg-error "" } 
inline  Int  operator &  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r &= b;  } // { dg-error "" } 
inline  Int  operator |  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r |= b;  } // { dg-error "" } 
inline  Int  operator ^  (const Int &   a, const int b) return r(a) // { dg-error "" } 
{ r ^= b;  } // { dg-error "" } 

inline  Int  operator +  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r += b.Int::val();  } // { dg-error "" } 
inline  Int  operator -  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r -= b.Int::val();  } // { dg-error "" } 
inline  Int  operator *  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r *= b.Int::val();  } // { dg-error "" } 
inline  Int  operator /  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r /= b.Int::val();  } // { dg-error "" } 
inline  Int  operator %  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r %= b.Int::val();  } // { dg-error "" } 
inline  Int  operator << (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r <<= b.Int::val();  } // { dg-error "" } 
inline  Int  operator >> (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r >>= b.Int::val();  } // { dg-error "" } 
inline  Int  operator &  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r &= b.Int::val();  } // { dg-error "" } 
inline  Int  operator |  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r |= b.Int::val();  } // { dg-error "" } 
inline  Int  operator ^  (const int a, const Int &   b) return r(a) // { dg-error "" } 
{ r ^= b.Int::val();  } // { dg-error "" } 



inline  int  operator !  (const Int &   a) { return !a.Int::val(); }

inline  int  operator == (const Int &   a, const Int &   b)
{ return a.Int::val() == b.Int::val(); }
inline  int  operator != (const Int &   a, const Int &   b)
{ return a.Int::val() != b.Int::val(); }
inline  int  operator <  (const Int &   a, const Int &   b)
{ return a.Int::val() <  b.Int::val(); }
inline  int  operator <= (const Int &   a, const Int &   b)
{ return a.Int::val() <= b.Int::val(); }
inline  int  operator >  (const Int &   a, const Int &   b)
{ return a.Int::val() >  b.Int::val(); }
inline  int  operator >= (const Int &   a, const Int &   b)
{ return a.Int::val() >= b.Int::val(); }

inline  int  operator == (const Int &   a, const int b)
{ return a.Int::val() == b; }
inline  int  operator != (const Int &   a, const int b)
{ return a.Int::val() != b; }
inline  int  operator <  (const Int &   a, const int b)
{ return a.Int::val() <  b; }
inline  int  operator <= (const Int &   a, const int b)
{ return a.Int::val() <= b; }
inline  int  operator >  (const Int &   a, const int b)
{ return a.Int::val() >  b; }
inline  int  operator >= (const Int &   a, const int b)
{ return a.Int::val() >= b; }

inline  int  operator == (const int a, const Int &   b)
{ return a == b.Int::val(); }
inline  int  operator != (const int a, const Int &   b)
{ return a != b.Int::val(); }
inline  int  operator <  (const int a, const Int &   b)
{ return a <  b.Int::val(); }
inline  int  operator <= (const int a, const Int &   b)
{ return a <= b.Int::val(); }
inline  int  operator >  (const int a, const Int &   b)
{ return a >  b.Int::val(); }
inline  int  operator >= (const int a, const Int &   b)
{ return a >= b.Int::val(); }



//# 26 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2

//# 1 "../../../../libg++/etc/benchmarks/Char.h" 1













































































class Char
{
protected:
  char          rep;



public:
               Char ();
               Char (const char  b);
               Char (const Char& b);
              ~Char();

               operator char() const;

  inline virtual  char   val() const;

  inline virtual  void  operator  = (const char);
  inline virtual  void  operator  = (const Char&);

  inline virtual  void  negate();
  inline virtual  void  complement();
  inline virtual  void  operator ++ ();
  inline virtual  void  operator -- ();

  inline virtual  void  operator += (const Char &  );
  inline virtual  void  operator -= (const Char &  );
  inline virtual  void  operator *= (const Char &  );
  inline virtual  void  operator /= (const Char &  );
  inline virtual  void  operator %= (const Char &  );
  inline virtual  void  operator |= (const Char &  );
  inline virtual  void  operator &= (const Char &  );
  inline virtual  void  operator ^= (const Char &  );
  inline virtual  void  operator <<=(const Char &  );
  inline virtual  void  operator >>=(const Char &  );


  inline virtual  void  operator += (const char);
  inline virtual  void  operator -= (const char);
  inline virtual  void  operator *= (const char);
  inline virtual  void  operator /= (const char);
  inline virtual  void  operator %= (const char);
  inline virtual  void  operator |= (const char);
  inline virtual  void  operator &= (const char);
  inline virtual  void  operator ^= (const char);
  inline virtual  void  operator <<=(const char);
  inline virtual  void  operator >>=(const char);


};

inline  char  Char::val() const { return rep; }
inline       Char::operator char() const { return val(); }

inline       Char::Char () :rep(0) {}
inline       Char::Char (const char  b) :rep(b) {}
inline       Char::Char (const Char& b) :rep(b.Char::val()) {}
inline       Char::~Char() {}

inline  void  Char::operator  = (const char  b)
{ rep = b;  ; }
inline  void  Char::operator  = (const Char&  b)
{ rep = b.Char::val();  ; }

inline  void  Char::complement()
{ rep = ~rep;  ; }
inline  void  Char::negate()
{ rep = -rep;  ; }
inline  void  Char::operator ++ ()
{ ++rep;  ; }
inline  void  Char::operator -- ()
{ --rep;  ; }

inline  void  Char::operator += (const Char &   b)
{ rep += b.Char::val();  ; }
inline  void  Char::operator -= (const Char &   b)
{ rep -= b.Char::val();  ; }
inline  void  Char::operator *= (const Char &   b)
{ rep *= b.Char::val();  ; }
inline  void  Char::operator /= (const Char &   b)
{ rep /= b.Char::val();  ; }
inline  void  Char::operator %= (const Char &   b)
{ rep %= b.Char::val();  ; }
inline  void  Char::operator |= (const Char &   b)
{ rep |= b.Char::val();  ; }
inline  void  Char::operator &= (const Char &   b)
{ rep &= b.Char::val();  ; }
inline  void  Char::operator ^= (const Char &   b)
{ rep ^= b.Char::val();  ; }
inline  void  Char::operator <<=(const Char &   b)
{ rep <<= b.Char::val();  ; }
inline  void  Char::operator >>=(const Char &   b)
{ rep >>= b.Char::val();  ; }



inline  void  Char::operator += (const char b)
{ rep += b;  ; }
inline  void  Char::operator -= (const char b)
{ rep -= b;  ; }
inline  void  Char::operator *= (const char b)
{ rep *= b;  ; }
inline  void  Char::operator /= (const char b)
{ rep /= b;  ; }
inline  void  Char::operator %= (const char b)
{ rep %= b;  ; }
inline  void  Char::operator |= (const char b)
{ rep |= b;  ; }
inline  void  Char::operator &= (const char b)
{ rep &= b;  ; }
inline  void  Char::operator ^= (const char b)
{ rep ^= b;  ; }
inline  void  Char::operator <<=(const char b)
{ rep <<= b;  ; }
inline  void  Char::operator >>=(const char b)
{ rep >>= b;  ; }


inline  char& operator  = (char& a,  const Char &   b)  // { dg-error "" } 
{ a = b.Char::val(); return a;}
inline  char& operator += (char& a,  const Char &   b)
{ a += b.Char::val(); return a; }
inline  char& operator -= (char& a,  const Char &   b)
{ a -= b.Char::val(); return a;}
inline  char& operator *= (char& a,  const Char &   b)
{ a *= b.Char::val(); return a;}
inline  char& operator /= (char& a,  const Char &   b)
{ a /= b.Char::val(); return a;}
inline  char& operator %= (char& a,  const Char &   b)
{ a %= b.Char::val(); return a;}
inline  char& operator |= (char& a,  const Char &   b)
{ a |= b.Char::val(); return a;}
inline  char& operator &= (char& a,  const Char &   b)
{ a &= b.Char::val(); return a;}
inline  char& operator ^= (char& a,  const Char &   b)
{ a ^= b.Char::val(); return a;}
inline  char& operator <<=(char& a,  const Char &   b)
{ a <<= b.Char::val(); return a;}
inline  char& operator >>=(char& a,  const Char &   b)
{ a >>= b.Char::val(); return a;}



//# 291 "../../../../libg++/etc/benchmarks/Char.h"


inline  Char  operator -  (const Char &   a) return r(a) // { dg-error "" } 
{ r.negate();  } // { dg-error "" } 
inline  Char  operator ~  (const Char &   a) return r(a) // { dg-error "" } 
{ r.complement();  } // { dg-error "" } 

inline  Char  operator +  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r += b.Char::val();  } // { dg-error "" } 
inline  Char  operator -  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r -= b.Char::val();  } // { dg-error "" } 
inline  Char  operator *  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r *= b.Char::val();  } // { dg-error "" } 
inline  Char  operator /  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r /= b.Char::val();  } // { dg-error "" } 
inline  Char  operator %  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r %= b.Char::val();  } // { dg-error "" } 
inline  Char  operator << (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r <<= b.Char::val();  } // { dg-error "" } 
inline  Char  operator >> (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r >>= b.Char::val();  } // { dg-error "" } 
inline  Char  operator &  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r &= b.Char::val();  } // { dg-error "" } 
inline  Char  operator |  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r |= b.Char::val();  } // { dg-error "" } 
inline  Char  operator ^  (const Char &   a, const Char &   b) return r(a) // { dg-error "" } 
{ r ^= b.Char::val();  } // { dg-error "" } 

inline  Char  operator +  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r += b;  } // { dg-error "" } 
inline  Char  operator -  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r -= b;  } // { dg-error "" } 
inline  Char  operator *  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r *= b;  } // { dg-error "" } 
inline  Char  operator /  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r /= b;  } // { dg-error "" } 
inline  Char  operator %  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r %= b;  } // { dg-error "" } 
inline  Char  operator << (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r <<= b;  } // { dg-error "" } 
inline  Char  operator >> (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r >>= b;  } // { dg-error "" } 
inline  Char  operator &  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r &= b;  } // { dg-error "" } 
inline  Char  operator |  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r |= b;  } // { dg-error "" } 
inline  Char  operator ^  (const Char &   a, const char b) return r(a) // { dg-error "" } 
{ r ^= b;  } // { dg-error "" } 

inline  Char  operator +  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r += b.Char::val();  } // { dg-error "" } 
inline  Char  operator -  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r -= b.Char::val();  } // { dg-error "" } 
inline  Char  operator *  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r *= b.Char::val();  } // { dg-error "" } 
inline  Char  operator /  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r /= b.Char::val();  } // { dg-error "" } 
inline  Char  operator %  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r %= b.Char::val();  } // { dg-error "" } 
inline  Char  operator << (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r <<= b.Char::val();  } // { dg-error "" } 
inline  Char  operator >> (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r >>= b.Char::val();  } // { dg-error "" } 
inline  Char  operator &  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r &= b.Char::val();  } // { dg-error "" } 
inline  Char  operator |  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r |= b.Char::val();  } // { dg-error "" } 
inline  Char  operator ^  (const char a, const Char &   b) return r(a) // { dg-error "" } 
{ r ^= b.Char::val();  } // { dg-error "" } 



inline  char  operator !  (const Char &   a) { return !a.Char::val(); }

inline  char  operator == (const Char &   a, const Char &   b)
{ return a.Char::val() == b.Char::val(); }
inline  char  operator != (const Char &   a, const Char &   b)
{ return a.Char::val() != b.Char::val(); }
inline  char  operator <  (const Char &   a, const Char &   b)
{ return a.Char::val() <  b.Char::val(); }
inline  char  operator <= (const Char &   a, const Char &   b)
{ return a.Char::val() <= b.Char::val(); }
inline  char  operator >  (const Char &   a, const Char &   b)
{ return a.Char::val() >  b.Char::val(); }
inline  char  operator >= (const Char &   a, const Char &   b)
{ return a.Char::val() >= b.Char::val(); }

inline  char  operator == (const Char &   a, const char b)
{ return a.Char::val() == b; }
inline  char  operator != (const Char &   a, const char b)
{ return a.Char::val() != b; }
inline  char  operator <  (const Char &   a, const char b)
{ return a.Char::val() <  b; }
inline  char  operator <= (const Char &   a, const char b)
{ return a.Char::val() <= b; }
inline  char  operator >  (const Char &   a, const char b)
{ return a.Char::val() >  b; }
inline  char  operator >= (const Char &   a, const char b)
{ return a.Char::val() >= b; }

inline  char  operator == (const char a, const Char &   b)
{ return a == b.Char::val(); }
inline  char  operator != (const char a, const Char &   b)
{ return a != b.Char::val(); }
inline  char  operator <  (const char a, const Char &   b)
{ return a <  b.Char::val(); }
inline  char  operator <= (const char a, const Char &   b)
{ return a <= b.Char::val(); }
inline  char  operator >  (const char a, const Char &   b)
{ return a >  b.Char::val(); }
inline  char  operator >= (const char a, const Char &   b)
{ return a >= b.Char::val(); }



//# 27 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2



























































































































































































































































































//# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1


//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1

extern "C" {
//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1






























typedef int ptrdiff_t;





















typedef int size_t;








































//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2

}
//# 73 "/giga/hgs/lib/g++-include/stddef.h"

//# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2




extern "C"
{


























//# 1 "/usr/include/sys/types.h" 1















//# 1 "/usr/include/sys/stdtypes.h" 1













typedef int             sigset_t;

typedef unsigned int    speed_t;
typedef unsigned long   tcflag_t;
typedef unsigned char   cc_t;
typedef int             pid_t;

typedef unsigned short  mode_t;
typedef short           nlink_t;

typedef long            clock_t;
typedef long            time_t;

typedef int             size_t;
typedef int             ptrdiff_t;


//# 16 "/usr/include/sys/types.h" 2



//# 1 "/usr/include/sys/sysmacros.h" 1



















//# 19 "/usr/include/sys/types.h" 2





typedef unsigned char   u_char;
typedef unsigned short  u_short;
typedef unsigned int    u_int;
typedef unsigned long   u_long;
typedef unsigned short  ushort;
typedef unsigned int    uint;















typedef struct  _physadr_t { int r[1]; } *physadr_t;
typedef struct label_t {
        int     val[2];
} label_t;







typedef struct  _quad_t { long val[2]; } quad_t;
typedef long    daddr_t;
typedef char *  caddr_t;
typedef unsigned long   ino_t;
typedef short   dev_t;
typedef long    off_t;
typedef unsigned short  uid_t;
typedef unsigned short  gid_t;
typedef long    key_t;
typedef char *  addr_t;














typedef long    fd_mask;









typedef struct fd_set {
        fd_mask fds_bits[(((256 )+(( (sizeof (fd_mask) * 8              )       )-1))/( (sizeof (fd_mask) * 8           )       )) ];
} fd_set;







//# 113 "/usr/include/sys/types.h"



//# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2

































}




//# 310 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2

//# 1 "/giga/hgs/lib/g++-include/sys/times.h" 1
//# 1 "/giga/hgs/lib/g++-include/time.h" 1





//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1

extern "C" {
//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1
//# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h"

//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2

}
//# 73 "/giga/hgs/lib/g++-include/stddef.h"

//# 6 "/giga/hgs/lib/g++-include/time.h" 2

//# 1 "/giga/hgs/lib/g++-include/stdio.h" 1
















































//#pragma interface



















//# 80 "/giga/hgs/lib/g++-include/stdio.h"



//# 117 "/giga/hgs/lib/g++-include/stdio.h"





//# 153 "/giga/hgs/lib/g++-include/stdio.h"



extern "C" {




























//# 1 "/usr/include/stdio.h" 1





extern  struct  _iobuf {
        int     _cnt;
        unsigned char *_ptr;
        unsigned char *_base;
        int     _bufsiz;
        short   _flag;
        char    _file;
} _iob[];







































extern struct _iobuf    *c_proto_fopen ();
extern struct _iobuf    *c_proto_fdopen ();
extern struct _iobuf    *c_proto_freopen ();
extern struct _iobuf    *c_proto_popen ();
extern struct _iobuf    *tmpfile();
extern long     ftell(_iobuf *);
extern char     *fgets(char *, int, _iobuf *);
extern char     *gets(char *);
extern char     *c_proto_sprintf ();
extern char     *ctermid();
extern char     *cuserid();
extern char     *c_proto_tempnam ();
extern char     *tmpnam();






//# 185 "/giga/hgs/lib/g++-include/stdio.h" 2































}
//# 417 "/giga/hgs/lib/g++-include/stdio.h"






extern "C" {







int    _doprnt(const char*, void*, struct _iobuf *);
int    _doscan(struct _iobuf *, const char*, ...);
int    _filbuf(struct _iobuf *);
int    _flsbuf(unsigned, struct _iobuf *);

int    fclose(struct _iobuf *);
struct _iobuf *  fdopen(int, const char*);
int    fflush(struct _iobuf *);
int    fgetc(struct _iobuf *);
char*  fgets(char*, int, struct _iobuf  *);
struct _iobuf *  fopen(const char*, const char*);
int    fprintf(struct _iobuf *, const char* ...);
int    fputc(int, struct _iobuf *);
int    fputs(const char*, struct _iobuf *);
int fread(void*, int, int, struct _iobuf *);



struct _iobuf *  freopen(const char*, const char*, struct _iobuf *);

int    fscanf(struct _iobuf *, const char* ...);
int    fseek(struct _iobuf *, long, int);
long   ftell(struct _iobuf  *);
int fwrite(const void*, int, int, struct _iobuf *);
char*  gets(char*);
int    getw(struct _iobuf *);
int    pclose(struct _iobuf *);
void   perror(const char*);
struct _iobuf *  popen(const char*, const char*);
int    printf(const char* ...);
int    puts(const char*);
int    putw(int, struct _iobuf *);
int    rewind(struct _iobuf *);
int    scanf(const char* ...);
int    setbuf(struct _iobuf *, char*);
int    setbuffer(struct _iobuf *, char*, int);
int    setlinebuf(struct _iobuf *);
int    setvbuf(struct _iobuf *, char*, int, int);
int    sscanf(char*, const char* ...);
struct _iobuf *  tmpfile();
int    ungetc(int, struct _iobuf *);
int    vfprintf(struct _iobuf *, const char*, ...);




int    vprintf(const char*, ... );





int  sprintf(char*, const char*, ...);
char*  vsprintf(char*, const char*, ...);


}

















//# 7 "/giga/hgs/lib/g++-include/time.h" 2


//# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1


//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1

extern "C" {
//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1
//# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h"

//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2

}
//# 73 "/giga/hgs/lib/g++-include/stddef.h"

//# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2




extern "C"
{


























//# 1 "/usr/include/sys/types.h" 1








//# 115 "/usr/include/sys/types.h"

//# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2

































}




//# 9 "/giga/hgs/lib/g++-include/time.h" 2


extern "C" {

















//# 42 "/giga/hgs/lib/g++-include/time.h"







//# 1 "/usr/include/time.h" 1





//# 1 "/usr/include/sys/stdtypes.h" 1










//# 32 "/usr/include/sys/stdtypes.h"

//# 6 "/usr/include/time.h" 2




struct  tm {
        int     tm_sec;
        int     tm_min;
        int     tm_hour;
        int     tm_mday;
        int     tm_mon;
        int     tm_year;
        int     tm_wday;
        int     tm_yday;
        int     tm_isdst;
        char    *tm_zone;
        long    tm_gmtoff;
};

extern  struct tm *c_proto_gmtime (), *c_proto_localtime ();
extern  char *c_proto_asctime (), *c_proto_ctime ();
extern  void c_proto_tzset (), c_proto_tzsetwall ();
extern  int dysize(int);
extern  time_t timelocal(), timegm();


//# 49 "/giga/hgs/lib/g++-include/time.h" 2


//# 1 "/usr/include/sys/times.h" 1









//# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1


//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1

extern "C" {
//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1
//# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h"

//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2

}
//# 73 "/giga/hgs/lib/g++-include/stddef.h"

//# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2




extern "C"
{


























//# 1 "/usr/include/sys/types.h" 1








//# 115 "/usr/include/sys/types.h"

//# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2

































}




//# 10 "/usr/include/sys/times.h" 2


struct tms {
        clock_t tms_utime;
        clock_t tms_stime;
        clock_t tms_cutime;
        clock_t tms_cstime;
};


clock_t times(tms * );



//# 51 "/giga/hgs/lib/g++-include/time.h" 2





















extern struct tm* localtime(long*);
extern struct tm* gmtime(long*);
extern char* ctime(long*);
extern char* asctime(struct tm*);
extern void tzset();
extern void tzsetwall();






extern long times(struct tms*);


//# 97 "/giga/hgs/lib/g++-include/time.h"

extern char* timezone(int, int);
extern int getitimer(int, struct itimerval*);
extern int setitimer(int, struct itimerval*, struct itimerval*);
extern int gettimeofday(struct timeval*, struct timezone*);
extern int settimeofday(struct timeval*, struct timezone*);
extern int stime(long*);
int       dysize(int);








long      clock(void);

long      time(long*);
unsigned  ualarm(unsigned, unsigned);
unsigned  usleep(unsigned);
int       profil(char*, int, int, int);

}



//# 1 "/giga/hgs/lib/g++-include/sys/times.h" 2

//# 311 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2
























typedef enum    {Ident1, Ident2, Ident3, Ident4, Ident5} Enumeration;




typedef Int     OneToThirty;
typedef Int     OneToFifty;
typedef Char    CapitalLetter;
typedef Char    String30[31];
typedef Int     Array1Dim[51];
typedef Int     Array2Dim[51][51];

struct  Record
{
        struct Record           *PtrComp;
        Enumeration             Discr;
        Enumeration             EnumComp;
        OneToFifty              IntComp;
        String30                StringComp;
};

typedef struct Record   RecordType;
typedef RecordType *    RecordPtr;
typedef int             boolean;











extern "C" {
extern int printf(const char* ...);
extern void exit(int);
}

void Proc0();
void Proc1(RecordPtr PtrParIn);
void Proc2(OneToFifty   *IntParIO);
void Proc3(RecordPtr    *PtrParOut);
void Proc4();
void Proc5();
boolean Func3(Enumeration       EnumParIn);
void Proc6(  Enumeration        EnumParIn,   Enumeration        *EnumParOut);
void Proc7(OneToFifty IntParI1, OneToFifty IntParI2, OneToFifty *IntParOut);
void Proc8(Array1Dim    Array1Par,
      Array2Dim Array2Par,
      OneToFifty IntParI1,
      OneToFifty IntParI2);
Enumeration Func1(CapitalLetter CharPar1, CapitalLetter CharPar2);
boolean Func2(String30  StrParI1, String30      StrParI2);
boolean Func3(Enumeration       EnumParIn);

void mystrcpy(String30 s, const char* t)
{
  for (; *t != '\0'; ++s, ++t) *s = *t;
  *s = '\0';
}

char mystrcmp(String30 s, String30 t)
{
  for (; *s == *t; ++s, ++t) if (*s == '\0') return 0;
  return char(*s - *t);
}



main()
{
        Proc0();
        exit(0);
}




Int             IntGlob;
boolean         BoolGlob;
char            Char1Glob;
char            Char2Glob;
Array1Dim       Array1Glob;
Array2Dim       Array2Glob;
RecordPtr       PtrGlb;
RecordPtr       PtrGlbNext;

void Proc0()
{
        OneToFifty              IntLoc1;
          OneToFifty            IntLoc2;
        OneToFifty              IntLoc3;
          char          CharLoc;
          char          CharIndex;
        Enumeration             EnumLoc;
        String30                String1Loc;
        String30                String2Loc;

//# 445 "../../../../libg++/etc/benchmarks/dhrystone.cc"


        time_t                  starttime;
        time_t                  benchtime;
        time_t                  nulltime;
        struct tms              Tms;
        register unsigned int   i;

        times(&Tms); starttime = Tms.tms_utime;
        for (i = 0; i < 500000          ; ++i);
        times(&Tms);
        nulltime = Tms.tms_utime - starttime;


        PtrGlbNext = new Record;
        PtrGlb = new Record;
        PtrGlb->PtrComp = PtrGlbNext;
        PtrGlb->Discr = Ident1;
        PtrGlb->EnumComp = Ident3;
        PtrGlb->IntComp = 40;
        mystrcpy(PtrGlb->StringComp, "DHRYSTONE PROGRAM, SOME STRING");
        mystrcpy(String1Loc, "JUST INITIALIZED TO SOME JUNK.");








        times(&Tms); starttime = Tms.tms_utime;

        for (i = 0; i < 500000          ; ++i)
        {

                Proc5();
                Proc4();
                IntLoc1 = 2;
                IntLoc2 = 3;
                mystrcpy(String2Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
                EnumLoc = Ident2;
                BoolGlob = ! Func2(String1Loc, String2Loc);
                while (IntLoc1 < IntLoc2)
                {
                        IntLoc3 = 5 * IntLoc1 - IntLoc2;
                        Proc7(IntLoc1, IntLoc2, &IntLoc3);
                        ++IntLoc1;
                }
                Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3);
                Proc1(PtrGlb);
                for (CharIndex = 'A'; CharIndex <= Char2Glob; ++CharIndex)
                        if (EnumLoc == Func1(CharIndex, 'C'))
                                Proc6(Ident1, &EnumLoc);
                IntLoc3 = IntLoc2 * IntLoc1;
                IntLoc2 = IntLoc3 / IntLoc1;
                IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1;
                Proc2(&IntLoc1);
        }













        times(&Tms);
        benchtime = Tms.tms_utime - starttime - nulltime;
        printf("Dhrystone time for %ld passes = %ld\n",
                (long) 500000           , benchtime/60          );
        printf("This machine benchmarks at %ld dhrystones/second\n",
                ((long) 500000          ) * 60           / benchtime);


}

void Proc1(RecordPtr PtrParIn)
{


        (*(PtrParIn->PtrComp))  =  *PtrGlb ;
        PtrParIn->IntComp = 5;
        (*(PtrParIn->PtrComp)) .IntComp = PtrParIn->IntComp;
        (*(PtrParIn->PtrComp)) .PtrComp = PtrParIn->PtrComp;

        Proc3(&((*(PtrParIn->PtrComp)) .PtrComp));
        if ((*(PtrParIn->PtrComp)) .Discr == Ident1)
        {
                (*(PtrParIn->PtrComp)) .IntComp = 6;
                Proc6(PtrParIn->EnumComp, &(*(PtrParIn->PtrComp)) .EnumComp);
                (*(PtrParIn->PtrComp)) .PtrComp = PtrGlb->PtrComp;
                Proc7((*(PtrParIn->PtrComp)) .IntComp, 10, &(*(PtrParIn->PtrComp)) .IntComp);
        }
        else
                *PtrParIn =  (*(PtrParIn->PtrComp))  ;


}

void Proc2(OneToFifty   *IntParIO)
{
          OneToFifty            IntLoc;
          Enumeration           EnumLoc;

        IntLoc = *IntParIO + 10;
        for(;;)
        {
                if (Char1Glob == 'A')
                {
                        --IntLoc;
                        *IntParIO = IntLoc - IntGlob;
                        EnumLoc = Ident1;
                }
                if (EnumLoc == Ident1)
                        break;
        }
}

void Proc3(RecordPtr    *PtrParOut)
{
        if (PtrGlb != 0 )
                *PtrParOut = PtrGlb->PtrComp;
        else
                IntGlob = 100;
        Proc7(10, IntGlob, &PtrGlb->IntComp);
}

void Proc4()
{
          boolean       BoolLoc;

        BoolLoc = Char1Glob == 'A';
        BoolLoc |= BoolGlob;
        Char2Glob = 'B';
}

void Proc5()
{
        Char1Glob = 'A';
        BoolGlob =      0 ;
}




void Proc6(  Enumeration        EnumParIn,   Enumeration        *EnumParOut)
{
        *EnumParOut = EnumParIn;
        if (! Func3(EnumParIn) )
                *EnumParOut = Ident4;
        switch (EnumParIn)
        {
        case Ident1:    *EnumParOut = Ident1; break;
        case Ident2:    if (IntGlob > 100) *EnumParOut = Ident1;
                        else *EnumParOut = Ident4;
                        break;
        case Ident3:    *EnumParOut = Ident2; break;
        case Ident4:    break;
        case Ident5:    *EnumParOut = Ident3;
        }
}

void Proc7(OneToFifty IntParI1, OneToFifty IntParI2, OneToFifty *IntParOut)
{
          OneToFifty    IntLoc;

        IntLoc = IntParI1 + 2;
        *IntParOut = IntParI2 + IntLoc;
}

void Proc8(Array1Dim    Array1Par,
      Array2Dim Array2Par,
      OneToFifty IntParI1,
      OneToFifty IntParI2)
{
          OneToFifty    IntLoc;
          OneToFifty    IntIndex;

        IntLoc = IntParI1 + 5;
        Array1Par[IntLoc] = IntParI2;
        Array1Par[IntLoc+1] = Array1Par[IntLoc];
        Array1Par[IntLoc+30] = IntLoc;
        for (IntIndex = IntLoc; IntIndex <= (IntLoc+1); ++IntIndex)
                Array2Par[IntLoc][IntIndex] = IntLoc;
        ++Array2Par[IntLoc][IntLoc-1];
        Array2Par[IntLoc+20][IntLoc] = Array1Par[IntLoc];
        IntGlob = 5;
}

Enumeration Func1(CapitalLetter CharPar1, CapitalLetter CharPar2)
{
          CapitalLetter CharLoc1;
          CapitalLetter CharLoc2;

        CharLoc1 = CharPar1;
        CharLoc2 = CharLoc1;
        if (CharLoc2 != CharPar2)
                return (Ident1);
        else
                return (Ident2);
}

boolean Func2(String30  StrParI1, String30      StrParI2)
{
          OneToThirty           IntLoc;
          CapitalLetter CharLoc;

        IntLoc = 1;
        while (IntLoc <= 1)
                if (Func1(StrParI1[IntLoc], StrParI2[IntLoc+1]) == Ident1)
                {
                        CharLoc = 'A';
                        ++IntLoc;
                }
        if (CharLoc >= 'W' && CharLoc <= 'Z')
                IntLoc = 7;
        if (CharLoc == 'X')
                return( 1 );
        else
        {
                if (mystrcmp(StrParI1, StrParI2) > 0)
                {
                        IntLoc += 7;
                        return (        1 );
                }
                else
                        return (        0 );
        }
}

boolean Func3(Enumeration       EnumParIn)
{
          Enumeration   EnumLoc;

        EnumLoc = EnumParIn;
        if (EnumLoc == Ident3) return ( 1 );
        return (        0 );
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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