00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <string.h>
00023 #include <stdlib.h>
00024 #include "dhry.h "
00025
00026
00027
00028
00029 Rec_Pointer Ptr_Glob,
00030 Next_Ptr_Glob;
00031 int Int_Glob;
00032 Boolean Bool_Glob;
00033 char Ch_1_Glob,
00034 Ch_2_Glob;
00035 int Arr_1_Glob [50];
00036 int Arr_2_Glob [50] [50];
00037
00038
00039 extern Enumeration Func_1 (Capital_Letter Ch_1_Par_Val, Capital_Letter Ch_2_Par_Val);
00040 extern Boolean Func_2 (Str_30 Str_1_Par_Ref, Str_30 Str_2_Par_Ref) ;
00041
00042 extern Boolean Func_3 (Enumeration Enum_Par_Val);
00043 extern void Proc_6 ( Enumeration Enum_Val_Par, Enumeration *Enum_Ref_Par) ;
00044 extern void Proc_7 ( One_Fifty Int_1_Par_Val,
00045 One_Fifty Int_2_Par_Val,
00046 One_Fifty *Int_Par_Ref ) ;
00047 extern void Proc_8 ( Arr_1_Dim Arr_1_Par_Ref,
00048 Arr_2_Dim Arr_2_Par_Ref,
00049 int Int_1_Par_Val,
00050 int Int_2_Par_Val) ;
00051 void Proc_1 (Rec_Pointer Ptr_Val_Par) ;
00052 void Proc_2 (One_Fifty *Int_Par_Ref) ;
00053 void Proc_3 (Rec_Pointer *Ptr_Ref_Par) ;
00054 void Proc_4 ( void ) ;
00055 void Proc_5 ( void ) ;
00056
00057
00058 #ifndef REG
00059 Boolean Reg = false;
00060 #define REG
00061
00062
00063 #else
00064 Boolean Reg = true;
00065 #endif
00066
00067
00068 long Begin_Time,
00069 End_Time,
00070 User_Time;
00071 float Microseconds,
00072 Dhrystones_Per_Second;
00073
00074
00075
00076
00077 void Proc_1 (Rec_Pointer Ptr_Val_Par)
00078
00079
00080
00081 {
00082 REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
00083
00084
00085
00086
00087 structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob);
00088 Ptr_Val_Par->variant.var_1.Int_Comp = 5;
00089 Next_Record->variant.var_1.Int_Comp = Ptr_Val_Par->variant.var_1.Int_Comp;
00090 Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp;
00091 Proc_3 (&Next_Record->Ptr_Comp);
00092
00093 if (Next_Record->Discr == Ident_1)
00094 {
00095 Next_Record->variant.var_1.Int_Comp = 6;
00096 Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp,
00097 &Next_Record->variant.var_1.Enum_Comp);
00098 Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp;
00099 Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
00100 &Next_Record->variant.var_1.Int_Comp);
00101 }
00102 else
00103 structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp);
00104 }
00105
00106
00107 void Proc_2 (One_Fifty *Int_Par_Ref)
00108
00109
00110
00111
00112 {
00113 One_Fifty Int_Loc;
00114 Enumeration Enum_Loc;
00115
00116 Int_Loc = *Int_Par_Ref + 10;
00117 do
00118 if (Ch_1_Glob == 'A')
00119 {
00120 Int_Loc -= 1;
00121 *Int_Par_Ref = Int_Loc - Int_Glob;
00122 Enum_Loc = Ident_1;
00123 }
00124 while (Enum_Loc != Ident_1);
00125 }
00126
00127
00128 void Proc_3 (Rec_Pointer *Ptr_Ref_Par)
00129
00130
00131
00132 {
00133 if (Ptr_Glob != Null)
00134 *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp;
00135 Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp);
00136 }
00137
00138
00139 void Proc_4 ( void )
00140
00141
00142 {
00143 Boolean Bool_Loc;
00144
00145 Bool_Loc = Ch_1_Glob == 'A';
00146 Bool_Glob = Bool_Loc | Bool_Glob;
00147 Ch_2_Glob = 'B';
00148 }
00149
00150
00151 void Proc_5 ( void )
00152
00153 {
00154 Ch_1_Glob = 'A';
00155 Bool_Glob = false;
00156 }
00157
00158
00159 void DHRY_testloop ( int Number_Of_Runs )
00160
00161
00162
00163
00164 {
00165 One_Fifty Int_1_Loc;
00166 REG One_Fifty Int_2_Loc;
00167 One_Fifty Int_3_Loc;
00168 REG char Ch_Index;
00169 Enumeration Enum_Loc;
00170 Str_30 Str_1_Loc;
00171 Str_30 Str_2_Loc;
00172 REG int Run_Index;
00173
00174
00175
00176 Rec_Type alloc_NextGlob;
00177 Rec_Type alloc_Glob;
00178 Next_Ptr_Glob = (Rec_Pointer) &alloc_NextGlob;
00179 Ptr_Glob = (Rec_Pointer) &alloc_Glob;
00180
00181
00182
00183
00184 Ptr_Glob->Ptr_Comp = Next_Ptr_Glob;
00185 Ptr_Glob->Discr = Ident_1;
00186 Ptr_Glob->variant.var_1.Enum_Comp = Ident_3;
00187 Ptr_Glob->variant.var_1.Int_Comp = 40;
00188 strcpy (Ptr_Glob->variant.var_1.Str_Comp,
00189 "DHRYSTONE PROGRAM, SOME STRING");
00190 strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING");
00191
00192 Arr_2_Glob [8][7] = 10;
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203 for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index)
00204 {
00205 Proc_5();
00206 Proc_4();
00207
00208 Int_1_Loc = 2;
00209 Int_2_Loc = 3;
00210 strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
00211 Enum_Loc = Ident_2;
00212 Bool_Glob = ! Func_2 (Str_1_Loc, Str_2_Loc);
00213
00214 while (Int_1_Loc < Int_2_Loc)
00215 {
00216 Int_3_Loc = 5 * Int_1_Loc - Int_2_Loc;
00217
00218 Proc_7 (Int_1_Loc, Int_2_Loc, &Int_3_Loc);
00219
00220 Int_1_Loc += 1;
00221 }
00222
00223 Proc_8 (Arr_1_Glob, Arr_2_Glob, Int_1_Loc, Int_3_Loc);
00224
00225 Proc_1 (Ptr_Glob);
00226 for (Ch_Index = 'A'; Ch_Index <= Ch_2_Glob; ++Ch_Index)
00227
00228 {
00229 if (Enum_Loc == Func_1 (Ch_Index, 'C'))
00230
00231 {
00232 Proc_6 (Ident_1, &Enum_Loc);
00233 strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 3'RD STRING");
00234 Int_2_Loc = Run_Index;
00235 Int_Glob = Run_Index;
00236 }
00237 }
00238
00239 Int_2_Loc = Int_2_Loc * Int_1_Loc;
00240 Int_1_Loc = Int_2_Loc / Int_3_Loc;
00241 Int_2_Loc = 7 * (Int_2_Loc - Int_3_Loc) - Int_1_Loc;
00242
00243 Proc_2 (&Int_1_Loc);
00244
00245
00246 }
00247
00248 }
00249
00250
00251