1 // Special g++ Options: -Wno-deprecated
2 // prms-id: 700
3 
4 //# 1 "../../../../libg++/etc/benchmarks/dhrystone.cc"
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 //# 1 "../../../../libg++/etc/benchmarks/Int.h" 1
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 class Int
107 {
108 protected:
109   int          rep;
110 
111 
112 
113 public:
114                Int ();
115                Int (const int  b);
116                Int (const Int& b);
117               ~Int();
118 
119                operator int() const;
120 
121   inline virtual  int   val() const;
122 
123   inline virtual  void  operator  = (const int);
124   inline virtual  void  operator  = (const Int&);
125 
126   inline virtual  void  negate();
127   inline virtual  void  complement();
128   inline virtual  void  operator ++ ();
129   inline virtual  void  operator -- ();
130 
131   inline virtual  void  operator += (const Int &  );
132   inline virtual  void  operator -= (const Int &  );
133   inline virtual  void  operator *= (const Int &  );
134   inline virtual  void  operator /= (const Int &  );
135   inline virtual  void  operator %= (const Int &  );
136   inline virtual  void  operator |= (const Int &  );
137   inline virtual  void  operator &= (const Int &  );
138   inline virtual  void  operator ^= (const Int &  );
139   inline virtual  void  operator <<=(const Int &  );
140   inline virtual  void  operator >>=(const Int &  );
141 
142 
143   inline virtual  void  operator += (const int);
144   inline virtual  void  operator -= (const int);
145   inline virtual  void  operator *= (const int);
146   inline virtual  void  operator /= (const int);
147   inline virtual  void  operator %= (const int);
148   inline virtual  void  operator |= (const int);
149   inline virtual  void  operator &= (const int);
150   inline virtual  void  operator ^= (const int);
151   inline virtual  void  operator <<=(const int);
152   inline virtual  void  operator >>=(const int);
153 
154 
155 };
156 
val()157 inline  int  Int::val() const { return rep; }
158 inline       Int::operator int() const { return val(); }
159 
Int()160 inline       Int::Int () :rep(0) {}
Int(const int b)161 inline       Int::Int (const int  b) :rep(b) {}
Int(const Int & b)162 inline       Int::Int (const Int& b) :rep(b.Int::val()) {}
~Int()163 inline       Int::~Int() {}
164 
165 inline  void  Int::operator  = (const int  b)
166 { rep = b;  ; }
167 inline  void  Int::operator  = (const Int&  b)
168 { rep = b.Int::val();  ; }
169 
complement()170 inline  void  Int::complement()
171 { rep = ~rep;  ; }
negate()172 inline  void  Int::negate()
173 { rep = -rep;  ; }
174 inline  void  Int::operator ++ ()
175 { ++rep;  ; }
176 inline  void  Int::operator -- ()
177 { --rep;  ; }
178 
179 inline  void  Int::operator += (const Int &   b)
180 { rep += b.Int::val();  ; }
181 inline  void  Int::operator -= (const Int &   b)
182 { rep -= b.Int::val();  ; }
183 inline  void  Int::operator *= (const Int &   b)
184 { rep *= b.Int::val();  ; }
185 inline  void  Int::operator /= (const Int &   b)
186 { rep /= b.Int::val();  ; }
187 inline  void  Int::operator %= (const Int &   b)
188 { rep %= b.Int::val();  ; }
189 inline  void  Int::operator |= (const Int &   b)
190 { rep |= b.Int::val();  ; }
191 inline  void  Int::operator &= (const Int &   b)
192 { rep &= b.Int::val();  ; }
193 inline  void  Int::operator ^= (const Int &   b)
194 { rep ^= b.Int::val();  ; }
195 inline  void  Int::operator <<=(const Int &   b)
196 { rep <<= b.Int::val();  ; }
197 inline  void  Int::operator >>=(const Int &   b)
198 { rep >>= b.Int::val();  ; }
199 
200 
201 
202 inline  void  Int::operator += (const int b)
203 { rep += b;  ; }
204 inline  void  Int::operator -= (const int b)
205 { rep -= b;  ; }
206 inline  void  Int::operator *= (const int b)
207 { rep *= b;  ; }
208 inline  void  Int::operator /= (const int b)
209 { rep /= b;  ; }
210 inline  void  Int::operator %= (const int b)
211 { rep %= b;  ; }
212 inline  void  Int::operator |= (const int b)
213 { rep |= b;  ; }
214 inline  void  Int::operator &= (const int b)
215 { rep &= b;  ; }
216 inline  void  Int::operator ^= (const int b)
217 { rep ^= b;  ; }
218 inline  void  Int::operator <<=(const int b)
219 { rep <<= b;  ; }
220 inline  void  Int::operator >>=(const int b)
221 { rep >>= b;  ; }
222 
223 
224 inline  int& operator  = (int& a,  const Int &   b)
225 { a = b.Int::val(); return a;}	// WARNING -
226 inline  int& operator += (int& a,  const Int &   b)
227 { a += b.Int::val(); return a; }
228 inline  int& operator -= (int& a,  const Int &   b)
229 { a -= b.Int::val(); return a;}
230 inline  int& operator *= (int& a,  const Int &   b)
231 { a *= b.Int::val(); return a;}
232 inline  int& operator /= (int& a,  const Int &   b)
233 { a /= b.Int::val(); return a;}
234 inline  int& operator %= (int& a,  const Int &   b)
235 { a %= b.Int::val(); return a;}
236 inline  int& operator |= (int& a,  const Int &   b)
237 { a |= b.Int::val(); return a;}
238 inline  int& operator &= (int& a,  const Int &   b)
239 { a &= b.Int::val(); return a;}
240 inline  int& operator ^= (int& a,  const Int &   b)
241 { a ^= b.Int::val(); return a;}
242 inline  int& operator <<=(int& a,  const Int &   b)
243 { a <<= b.Int::val(); return a;}
244 inline  int& operator >>=(int& a,  const Int &   b)
245 { a >>= b.Int::val(); return a;}
246 
247 
248 
249 //# 289 "../../../../libg++/etc/benchmarks/Int.h"
250 
251 
252 inline  Int  operator -  (const Int &   a) return r(a)
253 { r.negate();  }
254 inline  Int  operator ~  (const Int &   a) return r(a)
255 { r.complement();  }
256 
257 inline  Int  operator +  (const Int &   a, const Int &   b) return r(a)
258 { r += b.Int::val();  }
259 inline  Int  operator -  (const Int &   a, const Int &   b) return r(a)
260 { r -= b.Int::val();  }
261 inline  Int  operator *  (const Int &   a, const Int &   b) return r(a)
262 { r *= b.Int::val();  }
263 inline  Int  operator /  (const Int &   a, const Int &   b) return r(a)
264 { r /= b.Int::val();  }
265 inline  Int  operator %  (const Int &   a, const Int &   b) return r(a)
266 { r %= b.Int::val();  }
267 inline  Int  operator << (const Int &   a, const Int &   b) return r(a)
268 { r <<= b.Int::val();  }
269 inline  Int  operator >> (const Int &   a, const Int &   b) return r(a)
270 { r >>= b.Int::val();  }
271 inline  Int  operator &  (const Int &   a, const Int &   b) return r(a)
272 { r &= b.Int::val();  }
273 inline  Int  operator |  (const Int &   a, const Int &   b) return r(a)
274 { r |= b.Int::val();  }
275 inline  Int  operator ^  (const Int &   a, const Int &   b) return r(a)
276 { r ^= b.Int::val();  }
277 
278 inline  Int  operator +  (const Int &   a, const int b) return r(a)
279 { r += b;  }
280 inline  Int  operator -  (const Int &   a, const int b) return r(a)
281 { r -= b;  }
282 inline  Int  operator *  (const Int &   a, const int b) return r(a)
283 { r *= b;  }
284 inline  Int  operator /  (const Int &   a, const int b) return r(a)
285 { r /= b;  }
286 inline  Int  operator %  (const Int &   a, const int b) return r(a)
287 { r %= b;  }
288 inline  Int  operator << (const Int &   a, const int b) return r(a)
289 { r <<= b;  }
290 inline  Int  operator >> (const Int &   a, const int b) return r(a)
291 { r >>= b;  }
292 inline  Int  operator &  (const Int &   a, const int b) return r(a)
293 { r &= b;  }
294 inline  Int  operator |  (const Int &   a, const int b) return r(a)
295 { r |= b;  }
296 inline  Int  operator ^  (const Int &   a, const int b) return r(a)
297 { r ^= b;  }
298 
299 inline  Int  operator +  (const int a, const Int &   b) return r(a)
300 { r += b.Int::val();  }
301 inline  Int  operator -  (const int a, const Int &   b) return r(a)
302 { r -= b.Int::val();  }
303 inline  Int  operator *  (const int a, const Int &   b) return r(a)
304 { r *= b.Int::val();  }
305 inline  Int  operator /  (const int a, const Int &   b) return r(a)
306 { r /= b.Int::val();  }
307 inline  Int  operator %  (const int a, const Int &   b) return r(a)
308 { r %= b.Int::val();  }
309 inline  Int  operator << (const int a, const Int &   b) return r(a)
310 { r <<= b.Int::val();  }
311 inline  Int  operator >> (const int a, const Int &   b) return r(a)
312 { r >>= b.Int::val();  }
313 inline  Int  operator &  (const int a, const Int &   b) return r(a)
314 { r &= b.Int::val();  }
315 inline  Int  operator |  (const int a, const Int &   b) return r(a)
316 { r |= b.Int::val();  }
317 inline  Int  operator ^  (const int a, const Int &   b) return r(a)
318 { r ^= b.Int::val();  }
319 
320 
321 
322 inline  int  operator !  (const Int &   a) { return !a.Int::val(); }
323 
324 inline  int  operator == (const Int &   a, const Int &   b)
325 { return a.Int::val() == b.Int::val(); }
326 inline  int  operator != (const Int &   a, const Int &   b)
327 { return a.Int::val() != b.Int::val(); }
328 inline  int  operator <  (const Int &   a, const Int &   b)
329 { return a.Int::val() <  b.Int::val(); }
330 inline  int  operator <= (const Int &   a, const Int &   b)
331 { return a.Int::val() <= b.Int::val(); }
332 inline  int  operator >  (const Int &   a, const Int &   b)
333 { return a.Int::val() >  b.Int::val(); }
334 inline  int  operator >= (const Int &   a, const Int &   b)
335 { return a.Int::val() >= b.Int::val(); }
336 
337 inline  int  operator == (const Int &   a, const int b)
338 { return a.Int::val() == b; }
339 inline  int  operator != (const Int &   a, const int b)
340 { return a.Int::val() != b; }
341 inline  int  operator <  (const Int &   a, const int b)
342 { return a.Int::val() <  b; }
343 inline  int  operator <= (const Int &   a, const int b)
344 { return a.Int::val() <= b; }
345 inline  int  operator >  (const Int &   a, const int b)
346 { return a.Int::val() >  b; }
347 inline  int  operator >= (const Int &   a, const int b)
348 { return a.Int::val() >= b; }
349 
350 inline  int  operator == (const int a, const Int &   b)
351 { return a == b.Int::val(); }
352 inline  int  operator != (const int a, const Int &   b)
353 { return a != b.Int::val(); }
354 inline  int  operator <  (const int a, const Int &   b)
355 { return a <  b.Int::val(); }
356 inline  int  operator <= (const int a, const Int &   b)
357 { return a <= b.Int::val(); }
358 inline  int  operator >  (const int a, const Int &   b)
359 { return a >  b.Int::val(); }
360 inline  int  operator >= (const int a, const Int &   b)
361 { return a >= b.Int::val(); }
362 
363 
364 
365 //# 26 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2
366 
367 //# 1 "../../../../libg++/etc/benchmarks/Char.h" 1
368 
369 
370 
371 
372 
373 
374 
375 
376 
377 
378 
379 
380 
381 
382 
383 
384 
385 
386 
387 
388 
389 
390 
391 
392 
393 
394 
395 
396 
397 
398 
399 
400 
401 
402 
403 
404 
405 
406 
407 
408 
409 
410 
411 
412 
413 
414 
415 
416 
417 
418 
419 
420 
421 
422 
423 
424 
425 
426 
427 
428 
429 
430 
431 
432 
433 
434 
435 
436 
437 
438 
439 
440 
441 
442 
443 
444 
445 class Char
446 {
447 protected:
448   char          rep;
449 
450 
451 
452 public:
453                Char ();
454                Char (const char  b);
455                Char (const Char& b);
456               ~Char();
457 
458                operator char() const;
459 
460   inline virtual  char   val() const;
461 
462   inline virtual  void  operator  = (const char);
463   inline virtual  void  operator  = (const Char&);
464 
465   inline virtual  void  negate();
466   inline virtual  void  complement();
467   inline virtual  void  operator ++ ();
468   inline virtual  void  operator -- ();
469 
470   inline virtual  void  operator += (const Char &  );
471   inline virtual  void  operator -= (const Char &  );
472   inline virtual  void  operator *= (const Char &  );
473   inline virtual  void  operator /= (const Char &  );
474   inline virtual  void  operator %= (const Char &  );
475   inline virtual  void  operator |= (const Char &  );
476   inline virtual  void  operator &= (const Char &  );
477   inline virtual  void  operator ^= (const Char &  );
478   inline virtual  void  operator <<=(const Char &  );
479   inline virtual  void  operator >>=(const Char &  );
480 
481 
482   inline virtual  void  operator += (const char);
483   inline virtual  void  operator -= (const char);
484   inline virtual  void  operator *= (const char);
485   inline virtual  void  operator /= (const char);
486   inline virtual  void  operator %= (const char);
487   inline virtual  void  operator |= (const char);
488   inline virtual  void  operator &= (const char);
489   inline virtual  void  operator ^= (const char);
490   inline virtual  void  operator <<=(const char);
491   inline virtual  void  operator >>=(const char);
492 
493 
494 };
495 
val()496 inline  char  Char::val() const { return rep; }
497 inline       Char::operator char() const { return val(); }
498 
Char()499 inline       Char::Char () :rep(0) {}
Char(const char b)500 inline       Char::Char (const char  b) :rep(b) {}
Char(const Char & b)501 inline       Char::Char (const Char& b) :rep(b.Char::val()) {}
~Char()502 inline       Char::~Char() {}
503 
504 inline  void  Char::operator  = (const char  b)
505 { rep = b;  ; }
506 inline  void  Char::operator  = (const Char&  b)
507 { rep = b.Char::val();  ; }
508 
complement()509 inline  void  Char::complement()
510 { rep = ~rep;  ; }
negate()511 inline  void  Char::negate()
512 { rep = -rep;  ; }
513 inline  void  Char::operator ++ ()
514 { ++rep;  ; }
515 inline  void  Char::operator -- ()
516 { --rep;  ; }
517 
518 inline  void  Char::operator += (const Char &   b)
519 { rep += b.Char::val();  ; }
520 inline  void  Char::operator -= (const Char &   b)
521 { rep -= b.Char::val();  ; }
522 inline  void  Char::operator *= (const Char &   b)
523 { rep *= b.Char::val();  ; }
524 inline  void  Char::operator /= (const Char &   b)
525 { rep /= b.Char::val();  ; }
526 inline  void  Char::operator %= (const Char &   b)
527 { rep %= b.Char::val();  ; }
528 inline  void  Char::operator |= (const Char &   b)
529 { rep |= b.Char::val();  ; }
530 inline  void  Char::operator &= (const Char &   b)
531 { rep &= b.Char::val();  ; }
532 inline  void  Char::operator ^= (const Char &   b)
533 { rep ^= b.Char::val();  ; }
534 inline  void  Char::operator <<=(const Char &   b)
535 { rep <<= b.Char::val();  ; }
536 inline  void  Char::operator >>=(const Char &   b)
537 { rep >>= b.Char::val();  ; }
538 
539 
540 
541 inline  void  Char::operator += (const char b)
542 { rep += b;  ; }
543 inline  void  Char::operator -= (const char b)
544 { rep -= b;  ; }
545 inline  void  Char::operator *= (const char b)
546 { rep *= b;  ; }
547 inline  void  Char::operator /= (const char b)
548 { rep /= b;  ; }
549 inline  void  Char::operator %= (const char b)
550 { rep %= b;  ; }
551 inline  void  Char::operator |= (const char b)
552 { rep |= b;  ; }
553 inline  void  Char::operator &= (const char b)
554 { rep &= b;  ; }
555 inline  void  Char::operator ^= (const char b)
556 { rep ^= b;  ; }
557 inline  void  Char::operator <<=(const char b)
558 { rep <<= b;  ; }
559 inline  void  Char::operator >>=(const char b)
560 { rep >>= b;  ; }
561 
562 
563 inline  char& operator  = (char& a,  const Char &   b)
564 { a = b.Char::val(); return a;}	// WARNING -
565 inline  char& operator += (char& a,  const Char &   b)
566 { a += b.Char::val(); return a; }
567 inline  char& operator -= (char& a,  const Char &   b)
568 { a -= b.Char::val(); return a;}
569 inline  char& operator *= (char& a,  const Char &   b)
570 { a *= b.Char::val(); return a;}
571 inline  char& operator /= (char& a,  const Char &   b)
572 { a /= b.Char::val(); return a;}
573 inline  char& operator %= (char& a,  const Char &   b)
574 { a %= b.Char::val(); return a;}
575 inline  char& operator |= (char& a,  const Char &   b)
576 { a |= b.Char::val(); return a;}
577 inline  char& operator &= (char& a,  const Char &   b)
578 { a &= b.Char::val(); return a;}
579 inline  char& operator ^= (char& a,  const Char &   b)
580 { a ^= b.Char::val(); return a;}
581 inline  char& operator <<=(char& a,  const Char &   b)
582 { a <<= b.Char::val(); return a;}
583 inline  char& operator >>=(char& a,  const Char &   b)
584 { a >>= b.Char::val(); return a;}
585 
586 
587 
588 //# 291 "../../../../libg++/etc/benchmarks/Char.h"
589 
590 
591 inline  Char  operator -  (const Char &   a) return r(a)
592 { r.negate();  }
593 inline  Char  operator ~  (const Char &   a) return r(a)
594 { r.complement();  }
595 
596 inline  Char  operator +  (const Char &   a, const Char &   b) return r(a)
597 { r += b.Char::val();  }
598 inline  Char  operator -  (const Char &   a, const Char &   b) return r(a)
599 { r -= b.Char::val();  }
600 inline  Char  operator *  (const Char &   a, const Char &   b) return r(a)
601 { r *= b.Char::val();  }
602 inline  Char  operator /  (const Char &   a, const Char &   b) return r(a)
603 { r /= b.Char::val();  }
604 inline  Char  operator %  (const Char &   a, const Char &   b) return r(a)
605 { r %= b.Char::val();  }
606 inline  Char  operator << (const Char &   a, const Char &   b) return r(a)
607 { r <<= b.Char::val();  }
608 inline  Char  operator >> (const Char &   a, const Char &   b) return r(a)
609 { r >>= b.Char::val();  }
610 inline  Char  operator &  (const Char &   a, const Char &   b) return r(a)
611 { r &= b.Char::val();  }
612 inline  Char  operator |  (const Char &   a, const Char &   b) return r(a)
613 { r |= b.Char::val();  }
614 inline  Char  operator ^  (const Char &   a, const Char &   b) return r(a)
615 { r ^= b.Char::val();  }
616 
617 inline  Char  operator +  (const Char &   a, const char b) return r(a)
618 { r += b;  }
619 inline  Char  operator -  (const Char &   a, const char b) return r(a)
620 { r -= b;  }
621 inline  Char  operator *  (const Char &   a, const char b) return r(a)
622 { r *= b;  }
623 inline  Char  operator /  (const Char &   a, const char b) return r(a)
624 { r /= b;  }
625 inline  Char  operator %  (const Char &   a, const char b) return r(a)
626 { r %= b;  }
627 inline  Char  operator << (const Char &   a, const char b) return r(a)
628 { r <<= b;  }
629 inline  Char  operator >> (const Char &   a, const char b) return r(a)
630 { r >>= b;  }
631 inline  Char  operator &  (const Char &   a, const char b) return r(a)
632 { r &= b;  }
633 inline  Char  operator |  (const Char &   a, const char b) return r(a)
634 { r |= b;  }
635 inline  Char  operator ^  (const Char &   a, const char b) return r(a)
636 { r ^= b;  }
637 
638 inline  Char  operator +  (const char a, const Char &   b) return r(a)
639 { r += b.Char::val();  }
640 inline  Char  operator -  (const char a, const Char &   b) return r(a)
641 { r -= b.Char::val();  }
642 inline  Char  operator *  (const char a, const Char &   b) return r(a)
643 { r *= b.Char::val();  }
644 inline  Char  operator /  (const char a, const Char &   b) return r(a)
645 { r /= b.Char::val();  }
646 inline  Char  operator %  (const char a, const Char &   b) return r(a)
647 { r %= b.Char::val();  }
648 inline  Char  operator << (const char a, const Char &   b) return r(a)
649 { r <<= b.Char::val();  }
650 inline  Char  operator >> (const char a, const Char &   b) return r(a)
651 { r >>= b.Char::val();  }
652 inline  Char  operator &  (const char a, const Char &   b) return r(a)
653 { r &= b.Char::val();  }
654 inline  Char  operator |  (const char a, const Char &   b) return r(a)
655 { r |= b.Char::val();  }
656 inline  Char  operator ^  (const char a, const Char &   b) return r(a)
657 { r ^= b.Char::val();  }
658 
659 
660 
661 inline  char  operator !  (const Char &   a) { return !a.Char::val(); }
662 
663 inline  char  operator == (const Char &   a, const Char &   b)
664 { return a.Char::val() == b.Char::val(); }
665 inline  char  operator != (const Char &   a, const Char &   b)
666 { return a.Char::val() != b.Char::val(); }
667 inline  char  operator <  (const Char &   a, const Char &   b)
668 { return a.Char::val() <  b.Char::val(); }
669 inline  char  operator <= (const Char &   a, const Char &   b)
670 { return a.Char::val() <= b.Char::val(); }
671 inline  char  operator >  (const Char &   a, const Char &   b)
672 { return a.Char::val() >  b.Char::val(); }
673 inline  char  operator >= (const Char &   a, const Char &   b)
674 { return a.Char::val() >= b.Char::val(); }
675 
676 inline  char  operator == (const Char &   a, const char b)
677 { return a.Char::val() == b; }
678 inline  char  operator != (const Char &   a, const char b)
679 { return a.Char::val() != b; }
680 inline  char  operator <  (const Char &   a, const char b)
681 { return a.Char::val() <  b; }
682 inline  char  operator <= (const Char &   a, const char b)
683 { return a.Char::val() <= b; }
684 inline  char  operator >  (const Char &   a, const char b)
685 { return a.Char::val() >  b; }
686 inline  char  operator >= (const Char &   a, const char b)
687 { return a.Char::val() >= b; }
688 
689 inline  char  operator == (const char a, const Char &   b)
690 { return a == b.Char::val(); }
691 inline  char  operator != (const char a, const Char &   b)
692 { return a != b.Char::val(); }
693 inline  char  operator <  (const char a, const Char &   b)
694 { return a <  b.Char::val(); }
695 inline  char  operator <= (const char a, const Char &   b)
696 { return a <= b.Char::val(); }
697 inline  char  operator >  (const char a, const Char &   b)
698 { return a >  b.Char::val(); }
699 inline  char  operator >= (const char a, const Char &   b)
700 { return a >= b.Char::val(); }
701 
702 
703 
704 //# 27 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2
705 
706 
707 
708 
709 
710 
711 
712 
713 
714 
715 
716 
717 
718 
719 
720 
721 
722 
723 
724 
725 
726 
727 
728 
729 
730 
731 
732 
733 
734 
735 
736 
737 
738 
739 
740 
741 
742 
743 
744 
745 
746 
747 
748 
749 
750 
751 
752 
753 
754 
755 
756 
757 
758 
759 
760 
761 
762 
763 
764 
765 
766 
767 
768 
769 
770 
771 
772 
773 
774 
775 
776 
777 
778 
779 
780 
781 
782 
783 
784 
785 
786 
787 
788 
789 
790 
791 
792 
793 
794 
795 
796 
797 
798 
799 
800 
801 
802 
803 
804 
805 
806 
807 
808 
809 
810 
811 
812 
813 
814 
815 
816 
817 
818 
819 
820 
821 
822 
823 
824 
825 
826 
827 
828 
829 
830 
831 
832 
833 
834 
835 
836 
837 
838 
839 
840 
841 
842 
843 
844 
845 
846 
847 
848 
849 
850 
851 
852 
853 
854 
855 
856 
857 
858 
859 
860 
861 
862 
863 
864 
865 
866 
867 
868 
869 
870 
871 
872 
873 
874 
875 
876 
877 
878 
879 
880 
881 
882 
883 
884 
885 
886 
887 
888 
889 
890 
891 
892 
893 
894 
895 
896 
897 
898 
899 
900 
901 
902 
903 
904 
905 
906 
907 
908 
909 
910 
911 
912 
913 
914 
915 
916 
917 
918 
919 
920 
921 
922 
923 
924 
925 
926 
927 
928 
929 
930 
931 
932 
933 
934 
935 
936 
937 
938 
939 
940 
941 
942 
943 
944 
945 
946 
947 
948 
949 
950 
951 
952 
953 
954 
955 
956 
957 
958 
959 
960 
961 
962 
963 
964 
965 
966 
967 
968 
969 
970 
971 
972 
973 
974 
975 
976 
977 
978 
979 
980 
981 
982 
983 
984 
985 
986 
987 
988 //# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1
989 
990 
991 //# 1 "/giga/hgs/lib/g++-include/stddef.h" 1
992 
993 extern "C" {
994 //# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1
995 
996 
997 
998 
999 
1000 
1001 
1002 
1003 
1004 
1005 
1006 
1007 
1008 
1009 
1010 
1011 
1012 
1013 
1014 
1015 
1016 
1017 
1018 
1019 
1020 
1021 
1022 
1023 
1024 
1025 typedef int ptrdiff_t;
1026 
1027 
1028 
1029 
1030 
1031 
1032 
1033 
1034 
1035 
1036 
1037 
1038 
1039 
1040 
1041 
1042 
1043 
1044 
1045 
1046 
1047 typedef int size_t;
1048 
1049 
1050 
1051 
1052 
1053 
1054 
1055 
1056 
1057 
1058 
1059 
1060 
1061 
1062 
1063 
1064 
1065 
1066 
1067 
1068 
1069 
1070 
1071 
1072 
1073 
1074 
1075 
1076 
1077 
1078 
1079 
1080 
1081 
1082 
1083 
1084 
1085 
1086 
1087 
1088 //# 3 "/giga/hgs/lib/g++-include/stddef.h" 2
1089 
1090 }
1091 //# 73 "/giga/hgs/lib/g++-include/stddef.h"
1092 
1093 //# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2
1094 
1095 
1096 
1097 
1098 extern "C"
1099 {
1100 
1101 
1102 
1103 
1104 
1105 
1106 
1107 
1108 
1109 
1110 
1111 
1112 
1113 
1114 
1115 
1116 
1117 
1118 
1119 
1120 
1121 
1122 
1123 
1124 
1125 
1126 //# 1 "/usr/include/sys/types.h" 1
1127 
1128 
1129 
1130 
1131 
1132 
1133 
1134 
1135 
1136 
1137 
1138 
1139 
1140 
1141 
1142 //# 1 "/usr/include/sys/stdtypes.h" 1
1143 
1144 
1145 
1146 
1147 
1148 
1149 
1150 
1151 
1152 
1153 
1154 
1155 
1156 typedef	int		sigset_t;
1157 
1158 typedef	unsigned int	speed_t;
1159 typedef	unsigned long	tcflag_t;
1160 typedef	unsigned char	cc_t;
1161 typedef	int		pid_t;
1162 
1163 typedef	unsigned short	mode_t;
1164 typedef	short		nlink_t;
1165 
1166 typedef	long		clock_t;
1167 typedef	long		time_t;
1168 
1169 typedef	int		size_t;
1170 typedef int		ptrdiff_t;
1171 
1172 
1173 //# 16 "/usr/include/sys/types.h" 2
1174 
1175 
1176 
1177 //# 1 "/usr/include/sys/sysmacros.h" 1
1178 
1179 
1180 
1181 
1182 
1183 
1184 
1185 
1186 
1187 
1188 
1189 
1190 
1191 
1192 
1193 
1194 
1195 
1196 
1197 //# 19 "/usr/include/sys/types.h" 2
1198 
1199 
1200 
1201 
1202 
1203 typedef	unsigned char	u_char;
1204 typedef	unsigned short	u_short;
1205 typedef	unsigned int	u_int;
1206 typedef	unsigned long	u_long;
1207 typedef	unsigned short	ushort;
1208 typedef	unsigned int	uint;
1209 
1210 
1211 
1212 
1213 
1214 
1215 
1216 
1217 
1218 
1219 
1220 
1221 
1222 
1223 
1224 typedef	struct  _physadr_t { int r[1]; } *physadr_t;
1225 typedef	struct label_t {
1226 	int	val[2];
1227 } label_t;
1228 
1229 
1230 
1231 
1232 
1233 
1234 
1235 typedef	struct	_quad_t { long val[2]; } quad_t;
1236 typedef	long	daddr_t;
1237 typedef	char *	caddr_t;
1238 typedef	unsigned long	ino_t;
1239 typedef	short	dev_t;
1240 typedef	long	off_t;
1241 typedef	unsigned short	uid_t;
1242 typedef	unsigned short	gid_t;
1243 typedef	long	key_t;
1244 typedef	char *	addr_t;
1245 
1246 
1247 
1248 
1249 
1250 
1251 
1252 
1253 
1254 
1255 
1256 
1257 
1258 
1259 typedef	long	fd_mask;
1260 
1261 
1262 
1263 
1264 
1265 
1266 
1267 
1268 
1269 typedef	struct fd_set {
1270 	fd_mask	fds_bits[(((256 )+(( (sizeof (fd_mask) * 8		)	)-1))/( (sizeof (fd_mask) * 8		)	)) ];
1271 } fd_set;
1272 
1273 
1274 
1275 
1276 
1277 
1278 
1279 //# 113 "/usr/include/sys/types.h"
1280 
1281 
1282 
1283 //# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2
1284 
1285 
1286 
1287 
1288 
1289 
1290 
1291 
1292 
1293 
1294 
1295 
1296 
1297 
1298 
1299 
1300 
1301 
1302 
1303 
1304 
1305 
1306 
1307 
1308 
1309 
1310 
1311 
1312 
1313 
1314 
1315 
1316 
1317 }
1318 
1319 
1320 
1321 
1322 //# 310 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2
1323 
1324 //# 1 "/giga/hgs/lib/g++-include/sys/times.h" 1
1325 //# 1 "/giga/hgs/lib/g++-include/time.h" 1
1326 
1327 
1328 
1329 
1330 
1331 //# 1 "/giga/hgs/lib/g++-include/stddef.h" 1
1332 
1333 extern "C" {
1334 //# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1
1335 //# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h"
1336 
1337 //# 3 "/giga/hgs/lib/g++-include/stddef.h" 2
1338 
1339 }
1340 //# 73 "/giga/hgs/lib/g++-include/stddef.h"
1341 
1342 //# 6 "/giga/hgs/lib/g++-include/time.h" 2
1343 
1344 //# 1 "/giga/hgs/lib/g++-include/stdio.h" 1
1345 
1346 
1347 
1348 
1349 
1350 
1351 
1352 
1353 
1354 
1355 
1356 
1357 
1358 
1359 
1360 
1361 
1362 
1363 
1364 
1365 
1366 
1367 
1368 
1369 
1370 
1371 
1372 
1373 
1374 
1375 
1376 
1377 
1378 
1379 
1380 
1381 
1382 
1383 
1384 
1385 
1386 
1387 
1388 
1389 
1390 
1391 
1392 
1393 //#pragma interface
1394 
1395 
1396 
1397 
1398 
1399 
1400 
1401 
1402 
1403 
1404 
1405 
1406 
1407 
1408 
1409 
1410 
1411 
1412 
1413 //# 80 "/giga/hgs/lib/g++-include/stdio.h"
1414 
1415 
1416 
1417 //# 117 "/giga/hgs/lib/g++-include/stdio.h"
1418 
1419 
1420 
1421 
1422 
1423 //# 153 "/giga/hgs/lib/g++-include/stdio.h"
1424 
1425 
1426 
1427 extern "C" {
1428 
1429 
1430 
1431 
1432 
1433 
1434 
1435 
1436 
1437 
1438 
1439 
1440 
1441 
1442 
1443 
1444 
1445 
1446 
1447 
1448 
1449 
1450 
1451 
1452 
1453 
1454 
1455 
1456 //# 1 "/usr/include/stdio.h" 1
1457 
1458 
1459 
1460 
1461 
1462 extern	struct	_iobuf {
1463 	int	_cnt;
1464 	unsigned char *_ptr;
1465 	unsigned char *_base;
1466 	int	_bufsiz;
1467 	short	_flag;
1468 	char	_file;
1469 } _iob[];
1470 
1471 
1472 
1473 
1474 
1475 
1476 
1477 
1478 
1479 
1480 
1481 
1482 
1483 
1484 
1485 
1486 
1487 
1488 
1489 
1490 
1491 
1492 
1493 
1494 
1495 
1496 
1497 
1498 
1499 
1500 
1501 
1502 
1503 
1504 
1505 
1506 
1507 
1508 
1509 extern struct _iobuf 	*c_proto_fopen ();
1510 extern struct _iobuf 	*c_proto_fdopen ();
1511 extern struct _iobuf 	*c_proto_freopen ();
1512 extern struct _iobuf 	*c_proto_popen ();
1513 extern struct _iobuf 	*tmpfile();
1514 extern long	ftell(_iobuf *);
1515 extern char	*fgets(char *, int, _iobuf *);
1516 extern char	*gets(char *);
1517 extern char	*c_proto_sprintf ();
1518 extern char	*ctermid();
1519 extern char	*cuserid();
1520 extern char	*c_proto_tempnam ();
1521 extern char	*tmpnam();
1522 
1523 
1524 
1525 
1526 
1527 
1528 //# 185 "/giga/hgs/lib/g++-include/stdio.h" 2
1529 
1530 
1531 
1532 
1533 
1534 
1535 
1536 
1537 
1538 
1539 
1540 
1541 
1542 
1543 
1544 
1545 
1546 
1547 
1548 
1549 
1550 
1551 
1552 
1553 
1554 
1555 
1556 
1557 
1558 
1559 
1560 }
1561 //# 417 "/giga/hgs/lib/g++-include/stdio.h"
1562 
1563 
1564 
1565 
1566 
1567 
1568 extern "C" {
1569 
1570 
1571 
1572 
1573 
1574 
1575 
1576 int    _doprnt(const char*, void*, struct _iobuf *);
1577 int    _doscan(struct _iobuf *, const char*, ...);
1578 int    _filbuf(struct _iobuf *);
1579 int    _flsbuf(unsigned, struct _iobuf *);
1580 
1581 int    fclose(struct _iobuf *);
1582 struct _iobuf *  fdopen(int, const char*);
1583 int    fflush(struct _iobuf *);
1584 int    fgetc(struct _iobuf *);
1585 char*  fgets(char*, int, struct _iobuf  *);
1586 struct _iobuf *  fopen(const char*, const char*);
1587 int    fprintf(struct _iobuf *, const char* ...);
1588 int    fputc(int, struct _iobuf *);
1589 int    fputs(const char*, struct _iobuf *);
1590 int fread(void*, int, int, struct _iobuf *);
1591 
1592 
1593 
1594 struct _iobuf *  freopen(const char*, const char*, struct _iobuf *);
1595 
1596 int    fscanf(struct _iobuf *, const char* ...);
1597 int    fseek(struct _iobuf *, long, int);
1598 long   ftell(struct _iobuf  *);
1599 int fwrite(const void*, int, int, struct _iobuf *);
1600 char*  gets(char*);
1601 int    getw(struct _iobuf *);
1602 int    pclose(struct _iobuf *);
1603 void   perror(const char*);
1604 struct _iobuf *  popen(const char*, const char*);
1605 int    printf(const char* ...);
1606 int    puts(const char*);
1607 int    putw(int, struct _iobuf *);
1608 int    rewind(struct _iobuf *);
1609 int    scanf(const char* ...);
1610 int    setbuf(struct _iobuf *, char*);
1611 int    setbuffer(struct _iobuf *, char*, int);
1612 int    setlinebuf(struct _iobuf *);
1613 int    setvbuf(struct _iobuf *, char*, int, int);
1614 int    sscanf(char*, const char* ...);
1615 struct _iobuf *  tmpfile();
1616 int    ungetc(int, struct _iobuf *);
1617 int    vfprintf(struct _iobuf *, const char*, ...);
1618 
1619 
1620 
1621 
1622 int    vprintf(const char*, ... );
1623 
1624 
1625 
1626 
1627 
1628 int  sprintf(char*, const char*, ...);
1629 char*  vsprintf(char*, const char*, ...);
1630 
1631 
1632 }
1633 
1634 
1635 
1636 
1637 
1638 
1639 
1640 
1641 
1642 
1643 
1644 
1645 
1646 
1647 
1648 
1649 
1650 //# 7 "/giga/hgs/lib/g++-include/time.h" 2
1651 
1652 
1653 //# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1
1654 
1655 
1656 //# 1 "/giga/hgs/lib/g++-include/stddef.h" 1
1657 
1658 extern "C" {
1659 //# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1
1660 //# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h"
1661 
1662 //# 3 "/giga/hgs/lib/g++-include/stddef.h" 2
1663 
1664 }
1665 //# 73 "/giga/hgs/lib/g++-include/stddef.h"
1666 
1667 //# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2
1668 
1669 
1670 
1671 
1672 extern "C"
1673 {
1674 
1675 
1676 
1677 
1678 
1679 
1680 
1681 
1682 
1683 
1684 
1685 
1686 
1687 
1688 
1689 
1690 
1691 
1692 
1693 
1694 
1695 
1696 
1697 
1698 
1699 
1700 //# 1 "/usr/include/sys/types.h" 1
1701 
1702 
1703 
1704 
1705 
1706 
1707 
1708 
1709 //# 115 "/usr/include/sys/types.h"
1710 
1711 //# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2
1712 
1713 
1714 
1715 
1716 
1717 
1718 
1719 
1720 
1721 
1722 
1723 
1724 
1725 
1726 
1727 
1728 
1729 
1730 
1731 
1732 
1733 
1734 
1735 
1736 
1737 
1738 
1739 
1740 
1741 
1742 
1743 
1744 
1745 }
1746 
1747 
1748 
1749 
1750 //# 9 "/giga/hgs/lib/g++-include/time.h" 2
1751 
1752 
1753 extern "C" {
1754 
1755 
1756 
1757 
1758 
1759 
1760 
1761 
1762 
1763 
1764 
1765 
1766 
1767 
1768 
1769 
1770 
1771 //# 42 "/giga/hgs/lib/g++-include/time.h"
1772 
1773 
1774 
1775 
1776 
1777 
1778 
1779 //# 1 "/usr/include/time.h" 1
1780 
1781 
1782 
1783 
1784 
1785 //# 1 "/usr/include/sys/stdtypes.h" 1
1786 
1787 
1788 
1789 
1790 
1791 
1792 
1793 
1794 
1795 
1796 //# 32 "/usr/include/sys/stdtypes.h"
1797 
1798 //# 6 "/usr/include/time.h" 2
1799 
1800 
1801 
1802 
1803 struct	tm {
1804 	int	tm_sec;
1805 	int	tm_min;
1806 	int	tm_hour;
1807 	int	tm_mday;
1808 	int	tm_mon;
1809 	int	tm_year;
1810 	int	tm_wday;
1811 	int	tm_yday;
1812 	int	tm_isdst;
1813 	char	*tm_zone;
1814 	long	tm_gmtoff;
1815 };
1816 
1817 extern	struct tm *c_proto_gmtime (), *c_proto_localtime ();
1818 extern	char *c_proto_asctime (), *c_proto_ctime ();
1819 extern	void c_proto_tzset (), c_proto_tzsetwall ();
1820 extern  int dysize(int);
1821 extern  time_t timelocal(), timegm();
1822 
1823 
1824 //# 49 "/giga/hgs/lib/g++-include/time.h" 2
1825 
1826 
1827 //# 1 "/usr/include/sys/times.h" 1
1828 
1829 
1830 
1831 
1832 
1833 
1834 
1835 
1836 
1837 //# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1
1838 
1839 
1840 //# 1 "/giga/hgs/lib/g++-include/stddef.h" 1
1841 
1842 extern "C" {
1843 //# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1
1844 //# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h"
1845 
1846 //# 3 "/giga/hgs/lib/g++-include/stddef.h" 2
1847 
1848 }
1849 //# 73 "/giga/hgs/lib/g++-include/stddef.h"
1850 
1851 //# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2
1852 
1853 
1854 
1855 
1856 extern "C"
1857 {
1858 
1859 
1860 
1861 
1862 
1863 
1864 
1865 
1866 
1867 
1868 
1869 
1870 
1871 
1872 
1873 
1874 
1875 
1876 
1877 
1878 
1879 
1880 
1881 
1882 
1883 
1884 //# 1 "/usr/include/sys/types.h" 1
1885 
1886 
1887 
1888 
1889 
1890 
1891 
1892 
1893 //# 115 "/usr/include/sys/types.h"
1894 
1895 //# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2
1896 
1897 
1898 
1899 
1900 
1901 
1902 
1903 
1904 
1905 
1906 
1907 
1908 
1909 
1910 
1911 
1912 
1913 
1914 
1915 
1916 
1917 
1918 
1919 
1920 
1921 
1922 
1923 
1924 
1925 
1926 
1927 
1928 
1929 }
1930 
1931 
1932 
1933 
1934 //# 10 "/usr/include/sys/times.h" 2
1935 
1936 
1937 struct tms {
1938 	clock_t	tms_utime;
1939 	clock_t	tms_stime;
1940 	clock_t	tms_cutime;
1941 	clock_t	tms_cstime;
1942 };
1943 
1944 
1945 clock_t times(tms * );
1946 
1947 
1948 
1949 //# 51 "/giga/hgs/lib/g++-include/time.h" 2
1950 
1951 
1952 
1953 
1954 
1955 
1956 
1957 
1958 
1959 
1960 
1961 
1962 
1963 
1964 
1965 
1966 
1967 
1968 
1969 
1970 
1971 extern struct tm* localtime(long*);
1972 extern struct tm* gmtime(long*);
1973 extern char* ctime(long*);
1974 extern char* asctime(struct tm*);
1975 extern void tzset();
1976 extern void tzsetwall();
1977 
1978 
1979 
1980 
1981 
1982 
1983 extern long times(struct tms*);
1984 
1985 
1986 //# 97 "/giga/hgs/lib/g++-include/time.h"
1987 
1988 extern char* timezone(int, int);
1989 extern int getitimer(int, struct itimerval*);
1990 extern int setitimer(int, struct itimerval*, struct itimerval*);
1991 extern int gettimeofday(struct timeval*, struct timezone*);
1992 extern int settimeofday(struct timeval*, struct timezone*);
1993 extern int stime(long*);
1994 int       dysize(int);
1995 
1996 
1997 
1998 
1999 
2000 
2001 
2002 
2003 long      clock(void);
2004 
2005 long      time(long*);
2006 unsigned  ualarm(unsigned, unsigned);
2007 unsigned  usleep(unsigned);
2008 int       profil(char*, int, int, int);
2009 
2010 }
2011 
2012 
2013 
2014 //# 1 "/giga/hgs/lib/g++-include/sys/times.h" 2
2015 
2016 //# 311 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2
2017 
2018 
2019 
2020 
2021 
2022 
2023 
2024 
2025 
2026 
2027 
2028 
2029 
2030 
2031 
2032 
2033 
2034 
2035 
2036 
2037 
2038 
2039 
2040 
2041 typedef enum	{Ident1, Ident2, Ident3, Ident4, Ident5} Enumeration;
2042 
2043 
2044 
2045 
2046 typedef Int	OneToThirty;
2047 typedef Int	OneToFifty;
2048 typedef Char	CapitalLetter;
2049 typedef Char	String30[31];
2050 typedef Int	Array1Dim[51];
2051 typedef Int	Array2Dim[51][51];
2052 
2053 struct	Record
2054 {
2055 	struct Record		*PtrComp;
2056 	Enumeration		Discr;
2057 	Enumeration		EnumComp;
2058 	OneToFifty		IntComp;
2059 	String30		StringComp;
2060 };
2061 
2062 typedef struct Record 	RecordType;
2063 typedef RecordType *	RecordPtr;
2064 typedef int		boolean;
2065 
2066 
2067 
2068 
2069 
2070 
2071 
2072 
2073 
2074 
2075 
2076 extern "C" {
2077 extern int printf(const char* ...);
2078 extern void exit(int);
2079 }
2080 
2081 void Proc0();
2082 void Proc1(RecordPtr PtrParIn);
2083 void Proc2(OneToFifty	*IntParIO);
2084 void Proc3(RecordPtr	*PtrParOut);
2085 void Proc4();
2086 void Proc5();
2087 boolean Func3(Enumeration	EnumParIn);
2088 void Proc6(  Enumeration	EnumParIn,   Enumeration	*EnumParOut);
2089 void Proc7(OneToFifty IntParI1, OneToFifty IntParI2, OneToFifty *IntParOut);
2090 void Proc8(Array1Dim	Array1Par,
2091       Array2Dim	Array2Par,
2092       OneToFifty IntParI1,
2093       OneToFifty IntParI2);
2094 Enumeration Func1(CapitalLetter	CharPar1, CapitalLetter	CharPar2);
2095 boolean Func2(String30	StrParI1, String30	StrParI2);
2096 boolean Func3(Enumeration	EnumParIn);
2097 
mystrcpy(String30 s,char * t)2098 void mystrcpy(String30 s, char* t)
2099 {
2100   for (; *t != '\0'; ++s, ++t) *s = *t;
2101   *s = '\0';
2102 }
2103 
mystrcmp(String30 s,String30 t)2104 char mystrcmp(String30 s, String30 t)
2105 {
2106   for (; *s == *t; ++s, ++t) if (*s == '\0') return 0;
2107   return char(*s - *t);
2108 }
2109 
2110 
2111 
main()2112 main()
2113 {
2114 	Proc0();
2115 	exit(0);
2116 }
2117 
2118 
2119 
2120 
2121 Int		IntGlob;
2122 boolean		BoolGlob;
2123 char		Char1Glob;
2124 char		Char2Glob;
2125 Array1Dim	Array1Glob;
2126 Array2Dim	Array2Glob;
2127 RecordPtr	PtrGlb;
2128 RecordPtr	PtrGlbNext;
2129 
Proc0()2130 void Proc0()
2131 {
2132 	OneToFifty		IntLoc1;
2133 	  OneToFifty		IntLoc2;
2134 	OneToFifty		IntLoc3;
2135 	  char		CharLoc;
2136 	  char		CharIndex;
2137 	Enumeration	 	EnumLoc;
2138 	String30		String1Loc;
2139 	String30		String2Loc;
2140 
2141 //# 445 "../../../../libg++/etc/benchmarks/dhrystone.cc"
2142 
2143 
2144 	time_t			starttime;
2145 	time_t			benchtime;
2146 	time_t			nulltime;
2147 	struct tms		Tms;
2148 	register unsigned int	i;
2149 
2150 	times(&Tms); starttime = Tms.tms_utime;
2151 	for (i = 0; i < 500000		; ++i);
2152 	times(&Tms);
2153 	nulltime = Tms.tms_utime - starttime;
2154 
2155 
2156 	PtrGlbNext = new Record;
2157 	PtrGlb = new Record;
2158 	PtrGlb->PtrComp = PtrGlbNext;
2159 	PtrGlb->Discr = Ident1;
2160 	PtrGlb->EnumComp = Ident3;
2161 	PtrGlb->IntComp = 40;
2162 	mystrcpy(PtrGlb->StringComp, "DHRYSTONE PROGRAM, SOME STRING");
2163 	mystrcpy(String1Loc, "JUST INITIALIZED TO SOME JUNK.");
2164 
2165 
2166 
2167 
2168 
2169 
2170 
2171 
2172 	times(&Tms); starttime = Tms.tms_utime;
2173 
2174 	for (i = 0; i < 500000		; ++i)
2175 	{
2176 
2177 		Proc5();
2178 		Proc4();
2179 		IntLoc1 = 2;
2180 		IntLoc2 = 3;
2181 		mystrcpy(String2Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
2182 		EnumLoc = Ident2;
2183 		BoolGlob = ! Func2(String1Loc, String2Loc);
2184 		while (IntLoc1 < IntLoc2)
2185 		{
2186 			IntLoc3 = 5 * IntLoc1 - IntLoc2;
2187 			Proc7(IntLoc1, IntLoc2, &IntLoc3);
2188 			++IntLoc1;
2189 		}
2190 		Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3);
2191 		Proc1(PtrGlb);
2192 		for (CharIndex = 'A'; CharIndex <= Char2Glob; ++CharIndex)
2193 			if (EnumLoc == Func1(CharIndex, 'C'))
2194 				Proc6(Ident1, &EnumLoc);
2195 		IntLoc3 = IntLoc2 * IntLoc1;
2196 		IntLoc2 = IntLoc3 / IntLoc1;
2197 		IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1;
2198 		Proc2(&IntLoc1);
2199 	}
2200 
2201 
2202 
2203 
2204 
2205 
2206 
2207 
2208 
2209 
2210 
2211 
2212 
2213 	times(&Tms);
2214 	benchtime = Tms.tms_utime - starttime - nulltime;
2215 	printf("Dhrystone time for %ld passes = %ld\n",
2216 		(long) 500000		, benchtime/60		);
2217 	printf("This machine benchmarks at %ld dhrystones/second\n",
2218 		((long) 500000		) * 60		 / benchtime);
2219 
2220 
2221 }
2222 
Proc1(RecordPtr PtrParIn)2223 void Proc1(RecordPtr PtrParIn)
2224 {
2225 
2226 
2227 	(*(PtrParIn->PtrComp))  =  *PtrGlb ;
2228 	PtrParIn->IntComp = 5;
2229 	(*(PtrParIn->PtrComp)) .IntComp = PtrParIn->IntComp;
2230 	(*(PtrParIn->PtrComp)) .PtrComp = PtrParIn->PtrComp;
2231 
2232 	Proc3(&((*(PtrParIn->PtrComp)) .PtrComp));
2233 	if ((*(PtrParIn->PtrComp)) .Discr == Ident1)
2234 	{
2235 		(*(PtrParIn->PtrComp)) .IntComp = 6;
2236 		Proc6(PtrParIn->EnumComp, &(*(PtrParIn->PtrComp)) .EnumComp);
2237 		(*(PtrParIn->PtrComp)) .PtrComp = PtrGlb->PtrComp;
2238 		Proc7((*(PtrParIn->PtrComp)) .IntComp, 10, &(*(PtrParIn->PtrComp)) .IntComp);
2239 	}
2240 	else
2241 		*PtrParIn =  (*(PtrParIn->PtrComp))  ;
2242 
2243 
2244 }
2245 
Proc2(OneToFifty * IntParIO)2246 void Proc2(OneToFifty	*IntParIO)
2247 {
2248 	  OneToFifty		IntLoc;
2249 	  Enumeration		EnumLoc;
2250 
2251 	IntLoc = *IntParIO + 10;
2252 	for(;;)
2253 	{
2254 		if (Char1Glob == 'A')
2255 		{
2256 			--IntLoc;
2257 			*IntParIO = IntLoc - IntGlob;
2258 			EnumLoc = Ident1;
2259 		}
2260 		if (EnumLoc == Ident1)
2261 			break;
2262 	}
2263 }
2264 
Proc3(RecordPtr * PtrParOut)2265 void Proc3(RecordPtr	*PtrParOut)
2266 {
2267 	if (PtrGlb != 0 )
2268 		*PtrParOut = PtrGlb->PtrComp;
2269 	else
2270 		IntGlob = 100;
2271 	Proc7(10, IntGlob, &PtrGlb->IntComp);
2272 }
2273 
Proc4()2274 void Proc4()
2275 {
2276 	  boolean	BoolLoc;
2277 
2278 	BoolLoc = Char1Glob == 'A';
2279 	BoolLoc |= BoolGlob;
2280 	Char2Glob = 'B';
2281 }
2282 
Proc5()2283 void Proc5()
2284 {
2285 	Char1Glob = 'A';
2286 	BoolGlob = 	0 ;
2287 }
2288 
2289 
2290 
2291 
Proc6(Enumeration EnumParIn,Enumeration * EnumParOut)2292 void Proc6(  Enumeration	EnumParIn,   Enumeration	*EnumParOut)
2293 {
2294 	*EnumParOut = EnumParIn;
2295 	if (! Func3(EnumParIn) )
2296 		*EnumParOut = Ident4;
2297 	switch (EnumParIn)
2298 	{
2299 	case Ident1:	*EnumParOut = Ident1; break;
2300 	case Ident2:	if (IntGlob > 100) *EnumParOut = Ident1;
2301 			else *EnumParOut = Ident4;
2302 			break;
2303 	case Ident3:	*EnumParOut = Ident2; break;
2304 	case Ident4:	break;
2305 	case Ident5:	*EnumParOut = Ident3;
2306 	}
2307 }
2308 
Proc7(OneToFifty IntParI1,OneToFifty IntParI2,OneToFifty * IntParOut)2309 void Proc7(OneToFifty IntParI1, OneToFifty IntParI2, OneToFifty *IntParOut)
2310 {
2311 	  OneToFifty	IntLoc;
2312 
2313 	IntLoc = IntParI1 + 2;
2314 	*IntParOut = IntParI2 + IntLoc;
2315 }
2316 
Proc8(Array1Dim Array1Par,Array2Dim Array2Par,OneToFifty IntParI1,OneToFifty IntParI2)2317 void Proc8(Array1Dim	Array1Par,
2318       Array2Dim	Array2Par,
2319       OneToFifty IntParI1,
2320       OneToFifty IntParI2)
2321 {
2322 	  OneToFifty	IntLoc;
2323 	  OneToFifty	IntIndex;
2324 
2325 	IntLoc = IntParI1 + 5;
2326 	Array1Par[IntLoc] = IntParI2;
2327 	Array1Par[IntLoc+1] = Array1Par[IntLoc];
2328 	Array1Par[IntLoc+30] = IntLoc;
2329 	for (IntIndex = IntLoc; IntIndex <= (IntLoc+1); ++IntIndex)
2330 		Array2Par[IntLoc][IntIndex] = IntLoc;
2331 	++Array2Par[IntLoc][IntLoc-1];
2332 	Array2Par[IntLoc+20][IntLoc] = Array1Par[IntLoc];
2333 	IntGlob = 5;
2334 }
2335 
Func1(CapitalLetter CharPar1,CapitalLetter CharPar2)2336 Enumeration Func1(CapitalLetter	CharPar1, CapitalLetter	CharPar2)
2337 {
2338 	  CapitalLetter	CharLoc1;
2339 	  CapitalLetter	CharLoc2;
2340 
2341 	CharLoc1 = CharPar1;
2342 	CharLoc2 = CharLoc1;
2343 	if (CharLoc2 != CharPar2)
2344 		return (Ident1);
2345 	else
2346 		return (Ident2);
2347 }
2348 
Func2(String30 StrParI1,String30 StrParI2)2349 boolean Func2(String30	StrParI1, String30	StrParI2)
2350 {
2351 	  OneToThirty		IntLoc;
2352 	  CapitalLetter	CharLoc;
2353 
2354 	IntLoc = 1;
2355 	while (IntLoc <= 1)
2356 		if (Func1(StrParI1[IntLoc], StrParI2[IntLoc+1]) == Ident1)
2357 		{
2358 			CharLoc = 'A';
2359 			++IntLoc;
2360 		}
2361 	if (CharLoc >= 'W' && CharLoc <= 'Z')
2362 		IntLoc = 7;
2363 	if (CharLoc == 'X')
2364 		return(	1 );
2365 	else
2366 	{
2367 		if (mystrcmp(StrParI1, StrParI2) > 0)
2368 		{
2369 			IntLoc += 7;
2370 			return (	1 );
2371 		}
2372 		else
2373 			return (	0 );
2374 	}
2375 }
2376 
Func3(Enumeration EnumParIn)2377 boolean Func3(Enumeration	EnumParIn)
2378 {
2379 	  Enumeration	EnumLoc;
2380 
2381 	EnumLoc = EnumParIn;
2382 	if (EnumLoc == Ident3) return (	1 );
2383 	return (	0 );
2384 }
2385