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

Subversion Repositories amber

[/] [amber/] [trunk/] [sw/] [dhry/] [dhry.c] - Diff between revs 31 and 48

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 31 Rev 48
/*
/*
 ****************************************************************************
 ****************************************************************************
 *
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                   -----------------------------
 *
 *
 *  Version:    C, Version 2.1
 *  Version:    C, Version 2.1
 *
 *
 *  File:       dhry_1.c (part 2 of 3)
 *  File:       dhry_1.c (part 2 of 3)
 *
 *
 *  Date:       May 25, 1988
 *  Date:       May 25, 1988
 *
 *
 *  Author:     Reinhold P. Weicker
 *  Author:     Reinhold P. Weicker
 *
 *
 ****************************************************************************
 ****************************************************************************
 */
 */
 
 
/* Note that the stdio.h referred to here is the one in
/* Note that the stdio.h referred to here is the one in
   mini-libc. This applications compiles in mini-libc
   mini-libc. This applications compiles in mini-libc
   so it can run stand-alone.
   so it can run stand-alone.
*/
*/
#include "stdio.h"
#include "stdio.h"
 
 
#include "dhry.h"
#include "dhry.h"
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
#include "amber_registers.h"
#include "amber_registers.h"
 
 
#define RUNS 256
#define RUNS 256
 
 
/* Global Variables: */
/* Global Variables: */
 
 
Rec_Pointer     Ptr_Glob,
Rec_Pointer     Ptr_Glob,
                Next_Ptr_Glob;
                Next_Ptr_Glob;
int             Int_Glob;
int             Int_Glob;
Boolean         Bool_Glob;
Boolean         Bool_Glob;
char            Ch_1_Glob,
char            Ch_1_Glob,
                Ch_2_Glob;
                Ch_2_Glob;
int             Arr_1_Glob [50];
int             Arr_1_Glob [50];
int             Arr_2_Glob [50] [50];
int             Arr_2_Glob [50] [50];
 
 
 
 
Enumeration     Func_1 ();
Enumeration     Func_1 ();
  /* forward declaration necessary since Enumeration may not simply be int */
  /* forward declaration necessary since Enumeration may not simply be int */
 
 
#ifndef REG
#ifndef REG
        Boolean Reg = false;
        Boolean Reg = false;
#define REG
#define REG
        /* REG becomes defined as empty */
        /* REG becomes defined as empty */
        /* i.e. no register variables   */
        /* i.e. no register variables   */
#else
#else
        Boolean Reg = true;
        Boolean Reg = true;
#endif
#endif
 
 
/* variables for time measurement: */
/* variables for time measurement: */
#define Too_Small_Time 10000
#define Too_Small_Time 10000
 
 
long            Begin_Time,
long            Begin_Time,
                End_Time,
                End_Time,
                User_Time;
                User_Time;
float           Microseconds,
float           Microseconds,
                Dhrystones_Per_Second;
                Dhrystones_Per_Second;
 
 
/* end of variables for time measurement */
/* end of variables for time measurement */
 
 
 
 
main ()
main ()
/*****/
/*****/
 
 
  /* main program, corresponds to procedures        */
  /* main program, corresponds to procedures        */
  /* Main and Proc_0 in the Ada version             */
  /* Main and Proc_0 in the Ada version             */
{
{
        One_Fifty       Int_1_Loc;
        One_Fifty       Int_1_Loc;
  REG   One_Fifty       Int_2_Loc;
  REG   One_Fifty       Int_2_Loc;
        One_Fifty       Int_3_Loc;
        One_Fifty       Int_3_Loc;
  REG   char            Ch_Index;
  REG   char            Ch_Index;
        Enumeration     Enum_Loc;
        Enumeration     Enum_Loc;
        Str_30          Str_1_Loc;
        Str_30          Str_1_Loc;
        Str_30          Str_2_Loc;
        Str_30          Str_2_Loc;
  REG   int             Run_Index;
  REG   int             Run_Index;
  REG   int             Number_Of_Runs;
  REG   int             Number_Of_Runs;
 
 
  /* Initializations */
  /* Initializations */
 
  init_malloc();
 
 
  Next_Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
  Next_Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
  Ptr_Glob      = (Rec_Pointer) malloc (sizeof (Rec_Type));
  Ptr_Glob      = (Rec_Pointer) malloc (sizeof (Rec_Type));
 
 
  Ptr_Glob->Ptr_Comp                    = Next_Ptr_Glob;
  Ptr_Glob->Ptr_Comp                    = Next_Ptr_Glob;
  Ptr_Glob->Discr                       = Ident_1;
  Ptr_Glob->Discr                       = Ident_1;
  Ptr_Glob->variant.var_1.Enum_Comp     = Ident_3;
  Ptr_Glob->variant.var_1.Enum_Comp     = Ident_3;
 
 
  Ptr_Glob->variant.var_1.Int_Comp      = 40;
  Ptr_Glob->variant.var_1.Int_Comp      = 40;
  strcpy (Ptr_Glob->variant.var_1.Str_Comp,
  strcpy (Ptr_Glob->variant.var_1.Str_Comp,
          "DHRYSTONE PROGRAM, SOME STRING");
          "DHRYSTONE PROGRAM, SOME STRING");
  strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING");
  strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING");
 
 
  Arr_2_Glob [8][7] = 10;
  Arr_2_Glob [8][7] = 10;
        /* Was missing in published program. Without this statement,    */
        /* Was missing in published program. Without this statement,    */
        /* Arr_2_Glob [8][7] would have an undefined value.             */
        /* Arr_2_Glob [8][7] would have an undefined value.             */
        /* Warning: With 16-Bit processors and Number_Of_Runs > 32000,  */
        /* Warning: With 16-Bit processors and Number_Of_Runs > 32000,  */
        /* overflow may occur for this array element.                   */
        /* overflow may occur for this array element.                   */
 
 
  printf ("\n");
  printf ("\n");
  printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n");
  printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n");
  printf ("\n");
  printf ("\n");
  if (Reg)
  if (Reg)
  {
  {
    printf ("Program compiled with 'register' attribute\n");
    printf ("Program compiled with 'register' attribute\n");
    printf ("\n");
    printf ("\n");
  }
  }
  else
  else
  {
  {
    printf ("Program compiled without 'register' attribute\n");
    printf ("Program compiled without 'register' attribute\n");
    printf ("\n");
    printf ("\n");
  }
  }
 
 
  Number_Of_Runs = RUNS;
  Number_Of_Runs = RUNS;
  printf ("Execution starts, %d runs through Dhrystone\n", Number_Of_Runs);
  printf ("Execution starts, %d runs through Dhrystone\n", Number_Of_Runs);
 
 
  /***************/
  /***************/
  /* Start timer */
  /* Start timer */
  /***************/
  /***************/
 
 
  Begin_Time = * (volatile unsigned int *) ADR_AMBER_TEST_CYCLES;
  Begin_Time = * (volatile unsigned int *) ADR_AMBER_TEST_CYCLES;
 
 
 
 
  for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index)
  for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index)
  {
  {
 
 
    Proc_5();
    Proc_5();
    Proc_4();
    Proc_4();
      /* Ch_1_Glob == 'A', Ch_2_Glob == 'B', Bool_Glob == true */
      /* Ch_1_Glob == 'A', Ch_2_Glob == 'B', Bool_Glob == true */
    Int_1_Loc = 2;
    Int_1_Loc = 2;
    Int_2_Loc = 3;
    Int_2_Loc = 3;
    strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
    strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
    Enum_Loc = Ident_2;
    Enum_Loc = Ident_2;
    Bool_Glob = ! Func_2 (Str_1_Loc, Str_2_Loc);
    Bool_Glob = ! Func_2 (Str_1_Loc, Str_2_Loc);
      /* Bool_Glob == 1 */
      /* Bool_Glob == 1 */
    while (Int_1_Loc < Int_2_Loc)  /* loop body executed once */
    while (Int_1_Loc < Int_2_Loc)  /* loop body executed once */
    {
    {
      Int_3_Loc = 5 * Int_1_Loc - Int_2_Loc;
      Int_3_Loc = 5 * Int_1_Loc - Int_2_Loc;
        /* Int_3_Loc == 7 */
        /* Int_3_Loc == 7 */
      Proc_7 (Int_1_Loc, Int_2_Loc, &Int_3_Loc);
      Proc_7 (Int_1_Loc, Int_2_Loc, &Int_3_Loc);
        /* Int_3_Loc == 7 */
        /* Int_3_Loc == 7 */
      Int_1_Loc += 1;
      Int_1_Loc += 1;
    } /* while */
    } /* while */
      /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
      /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
    Proc_8 (Arr_1_Glob, Arr_2_Glob, Int_1_Loc, Int_3_Loc);
    Proc_8 (Arr_1_Glob, Arr_2_Glob, Int_1_Loc, Int_3_Loc);
      /* Int_Glob == 5 */
      /* Int_Glob == 5 */
    Proc_1 (Ptr_Glob);
    Proc_1 (Ptr_Glob);
    for (Ch_Index = 'A'; Ch_Index <= Ch_2_Glob; ++Ch_Index)
    for (Ch_Index = 'A'; Ch_Index <= Ch_2_Glob; ++Ch_Index)
                             /* loop body executed twice */
                             /* loop body executed twice */
    {
    {
      if (Enum_Loc == Func_1 (Ch_Index, 'C'))
      if (Enum_Loc == Func_1 (Ch_Index, 'C'))
          /* then, not executed */
          /* then, not executed */
        {
        {
        Proc_6 (Ident_1, &Enum_Loc);
        Proc_6 (Ident_1, &Enum_Loc);
        strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 3'RD STRING");
        strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 3'RD STRING");
        Int_2_Loc = Run_Index;
        Int_2_Loc = Run_Index;
        Int_Glob = Run_Index;
        Int_Glob = Run_Index;
        }
        }
    }
    }
      /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
      /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
    Int_2_Loc = Int_2_Loc * Int_1_Loc;
    Int_2_Loc = Int_2_Loc * Int_1_Loc;
    Int_1_Loc = Int_2_Loc / Int_3_Loc;
    Int_1_Loc = Int_2_Loc / Int_3_Loc;
    Int_2_Loc = 7 * (Int_2_Loc - Int_3_Loc) - Int_1_Loc;
    Int_2_Loc = 7 * (Int_2_Loc - Int_3_Loc) - Int_1_Loc;
      /* Int_1_Loc == 1, Int_2_Loc == 13, Int_3_Loc == 7 */
      /* Int_1_Loc == 1, Int_2_Loc == 13, Int_3_Loc == 7 */
    Proc_2 (&Int_1_Loc);
    Proc_2 (&Int_1_Loc);
      /* Int_1_Loc == 5 */
      /* Int_1_Loc == 5 */
 
 
  } /* loop "for Run_Index" */
  } /* loop "for Run_Index" */
 
 
  /**************/
  /**************/
  /* Stop timer */
  /* Stop timer */
  /**************/
  /**************/
  End_Time = * (volatile unsigned int *) ADR_AMBER_TEST_CYCLES;
  End_Time = * (volatile unsigned int *) ADR_AMBER_TEST_CYCLES;
 
 
  printf ("Execution ends\n");
  printf ("Execution ends\n");
  printf ("\n");
  printf ("\n");
 
 
  printf ("Final values of the variables used in the benchmark:\n");
  printf ("Final values of the variables used in the benchmark:\n");
  printf ("\n");
  printf ("\n");
  printf ("Int_Glob:            %d\n", Int_Glob);
  printf ("Int_Glob:            %d\n", Int_Glob);
  printf ("        should be:   %d\n", 5);
  printf ("        should be:   %d\n", 5);
  printf ("Bool_Glob:           %d\n", Bool_Glob);
  printf ("Bool_Glob:           %d\n", Bool_Glob);
  printf ("        should be:   %d\n", 1);
  printf ("        should be:   %d\n", 1);
  printf ("Ch_1_Glob:           %c\n", Ch_1_Glob);
  printf ("Ch_1_Glob:           %c\n", Ch_1_Glob);
  printf ("        should be:   %c\n", 'A');
  printf ("        should be:   %c\n", 'A');
  printf ("Ch_2_Glob:           %c\n", Ch_2_Glob);
  printf ("Ch_2_Glob:           %c\n", Ch_2_Glob);
  printf ("        should be:   %c\n", 'B');
  printf ("        should be:   %c\n", 'B');
  printf ("Arr_1_Glob[8]:       %d\n", Arr_1_Glob[8]);
  printf ("Arr_1_Glob[8]:       %d\n", Arr_1_Glob[8]);
  printf ("        should be:   %d\n", 7);
  printf ("        should be:   %d\n", 7);
  printf ("Arr_2_Glob[8][7]:    %d\n", Arr_2_Glob[8][7]);
  printf ("Arr_2_Glob[8][7]:    %d\n", Arr_2_Glob[8][7]);
  printf ("        should be:   %d\n", Number_Of_Runs+10);
  printf ("        should be:   %d\n", Number_Of_Runs+10);
  printf ("Ptr_Glob->\n");
  printf ("Ptr_Glob->\n");
  printf ("  Ptr_Comp:          0x%08x\n", (int) Ptr_Glob->Ptr_Comp);
  printf ("  Ptr_Comp:          0x%08x\n", (int) Ptr_Glob->Ptr_Comp);
  printf ("        should be:   (implementation-dependent)\n");
  printf ("        should be:   (implementation-dependent)\n");
  printf ("  Discr:             %d\n", Ptr_Glob->Discr);
  printf ("  Discr:             %d\n", Ptr_Glob->Discr);
  printf ("        should be:   %d\n", 0);
  printf ("        should be:   %d\n", 0);
  printf ("  Enum_Comp:         %d\n", Ptr_Glob->variant.var_1.Enum_Comp);
  printf ("  Enum_Comp:         %d\n", Ptr_Glob->variant.var_1.Enum_Comp);
  printf ("        should be:   %d\n", 2);
  printf ("        should be:   %d\n", 2);
  printf ("  Int_Comp:          %d\n", Ptr_Glob->variant.var_1.Int_Comp);
  printf ("  Int_Comp:          %d\n", Ptr_Glob->variant.var_1.Int_Comp);
  printf ("        should be:   %d\n", 17);
  printf ("        should be:   %d\n", 17);
  printf ("  Str_Comp:          %s\n", Ptr_Glob->variant.var_1.Str_Comp);
  printf ("  Str_Comp:          %s\n", Ptr_Glob->variant.var_1.Str_Comp);
  printf ("        should be:   DHRYSTONE PROGRAM, SOME STRING\n");
  printf ("        should be:   DHRYSTONE PROGRAM, SOME STRING\n");
  printf ("Next_Ptr_Glob->\n");
  printf ("Next_Ptr_Glob->\n");
  printf ("  Ptr_Comp:          0x%08x\n", (int) Next_Ptr_Glob->Ptr_Comp);
  printf ("  Ptr_Comp:          0x%08x\n", (int) Next_Ptr_Glob->Ptr_Comp);
  printf ("        should be:   (implementation-dependent), same as above\n");
  printf ("        should be:   (implementation-dependent), same as above\n");
  printf ("  Discr:             %d\n", Next_Ptr_Glob->Discr);
  printf ("  Discr:             %d\n", Next_Ptr_Glob->Discr);
  printf ("        should be:   %d\n", 0);
  printf ("        should be:   %d\n", 0);
  printf ("  Enum_Comp:         %d\n", Next_Ptr_Glob->variant.var_1.Enum_Comp);
  printf ("  Enum_Comp:         %d\n", Next_Ptr_Glob->variant.var_1.Enum_Comp);
  printf ("        should be:   %d\n", 1);
  printf ("        should be:   %d\n", 1);
  printf ("  Int_Comp:          %d\n", Next_Ptr_Glob->variant.var_1.Int_Comp);
  printf ("  Int_Comp:          %d\n", Next_Ptr_Glob->variant.var_1.Int_Comp);
  printf ("        should be:   %d\n", 18);
  printf ("        should be:   %d\n", 18);
  printf ("  Str_Comp:          %s\n",
  printf ("  Str_Comp:          %s\n",
                                Next_Ptr_Glob->variant.var_1.Str_Comp);
                                Next_Ptr_Glob->variant.var_1.Str_Comp);
  printf ("        should be:   DHRYSTONE PROGRAM, SOME STRING\n");
  printf ("        should be:   DHRYSTONE PROGRAM, SOME STRING\n");
  printf ("Int_1_Loc:           %d\n", Int_1_Loc);
  printf ("Int_1_Loc:           %d\n", Int_1_Loc);
  printf ("        should be:   %d\n", 5);
  printf ("        should be:   %d\n", 5);
  printf ("Int_2_Loc:           %d\n", Int_2_Loc);
  printf ("Int_2_Loc:           %d\n", Int_2_Loc);
  printf ("        should be:   %d\n", 13);
  printf ("        should be:   %d\n", 13);
  printf ("Int_3_Loc:           %d\n", Int_3_Loc);
  printf ("Int_3_Loc:           %d\n", Int_3_Loc);
  printf ("        should be:   %d\n", 7);
  printf ("        should be:   %d\n", 7);
  printf ("Enum_Loc:            %d\n", Enum_Loc);
  printf ("Enum_Loc:            %d\n", Enum_Loc);
  printf ("        should be:   %d\n", 1);
  printf ("        should be:   %d\n", 1);
  printf ("Str_1_Loc:           %s\n", Str_1_Loc);
  printf ("Str_1_Loc:           %s\n", Str_1_Loc);
  printf ("        should be:   DHRYSTONE PROGRAM, 1'ST STRING\n");
  printf ("        should be:   DHRYSTONE PROGRAM, 1'ST STRING\n");
  printf ("Str_2_Loc:           %s\n", Str_2_Loc);
  printf ("Str_2_Loc:           %s\n", Str_2_Loc);
  printf ("        should be:   DHRYSTONE PROGRAM, 2'ND STRING\n");
  printf ("        should be:   DHRYSTONE PROGRAM, 2'ND STRING\n");
  printf ("\n");
  printf ("\n");
 
 
  User_Time = End_Time - Begin_Time;
  User_Time = End_Time - Begin_Time;
 
 
  if (User_Time < Too_Small_Time)
  if (User_Time < Too_Small_Time)
  {
  {
    printf ("Measured time too small to obtain meaningful results\n");
    printf ("Measured time too small to obtain meaningful results\n");
    printf ("Please increase number of runs\n");
    printf ("Please increase number of runs\n");
    printf ("\n");
    printf ("\n");
    printf ("               \n");  /* flush uart */
    printf ("               \n");  /* flush uart */
  }
  }
  else
  else
  {
  {
    printf ("Cycles for one run through Dhrystone -\n");
    printf ("Cycles for one run through Dhrystone -\n");
    printf ("   Vax 11/780:    569\n");
    printf ("   Vax 11/780:    569\n");
    printf ("   Intel Core i3: 389\n");
    printf ("   Intel Core i3: 389\n");
    printf ("   Me:            %d \n", (End_Time - Begin_Time)/Number_Of_Runs);
    printf ("   Me:            %d \n", (End_Time - Begin_Time)/Number_Of_Runs);
    printf ("               \n");  /* flush uart */
    printf ("               \n");  /* flush uart */
 
 
    /*
    /*
    Another common representation of the Dhrystone benchmark
    Another common representation of the Dhrystone benchmark
    is the DMIPS (Dhrystone MIPS) obtained when the Dhrystone
    is the DMIPS (Dhrystone MIPS) obtained when the Dhrystone
    score is divided by 1,757 (the number of Dhrystones per
    score is divided by 1,757 (the number of Dhrystones per
    second obtained on the VAX 11/780, nominally a 1 MIPS machine).
    second obtained on the VAX 11/780, nominally a 1 MIPS machine).
 
 
    => 1 dhrystone = 569 cycles on a 1 instruction per cycle Vax machine.
    => 1 dhrystone = 569 cycles on a 1 instruction per cycle Vax machine.
    */
    */
  }
  }
 
    _testpass();
}
}
 
 
 
 
Proc_1 (Ptr_Val_Par)
Proc_1 (Ptr_Val_Par)
/******************/
/******************/
 
 
REG Rec_Pointer Ptr_Val_Par;
REG Rec_Pointer Ptr_Val_Par;
    /* executed once */
    /* executed once */
{
{
  REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
  REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
                                        /* == Ptr_Glob_Next */
                                        /* == Ptr_Glob_Next */
  /* Local variable, initialized with Ptr_Val_Par->Ptr_Comp,    */
  /* Local variable, initialized with Ptr_Val_Par->Ptr_Comp,    */
  /* corresponds to "rename" in Ada, "with" in Pascal           */
  /* corresponds to "rename" in Ada, "with" in Pascal           */
  structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob);
  structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob);
  Ptr_Val_Par->variant.var_1.Int_Comp = 5;
  Ptr_Val_Par->variant.var_1.Int_Comp = 5;
  Next_Record->variant.var_1.Int_Comp
  Next_Record->variant.var_1.Int_Comp
        = Ptr_Val_Par->variant.var_1.Int_Comp;
        = Ptr_Val_Par->variant.var_1.Int_Comp;
  Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp;
  Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp;
  Proc_3 (&Next_Record->Ptr_Comp);
  Proc_3 (&Next_Record->Ptr_Comp);
    /* Ptr_Val_Par->Ptr_Comp->Ptr_Comp
    /* Ptr_Val_Par->Ptr_Comp->Ptr_Comp
                        == Ptr_Glob->Ptr_Comp */
                        == Ptr_Glob->Ptr_Comp */
  if (Next_Record->Discr == Ident_1)
  if (Next_Record->Discr == Ident_1)
    /* then, executed */
    /* then, executed */
  {
  {
    Next_Record->variant.var_1.Int_Comp = 6;
    Next_Record->variant.var_1.Int_Comp = 6;
 
 
    Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp,
    Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp,
           &Next_Record->variant.var_1.Enum_Comp);
           &Next_Record->variant.var_1.Enum_Comp);
 
 
    Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp;
    Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp;
    Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
    Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
           &Next_Record->variant.var_1.Int_Comp);
           &Next_Record->variant.var_1.Int_Comp);
  }
  }
  else /* not executed */{
  else /* not executed */{
    structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp);
    structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp);
    }
    }
} /* Proc_1 */
} /* Proc_1 */
 
 
 
 
Proc_2 (Int_Par_Ref)
Proc_2 (Int_Par_Ref)
/******************/
/******************/
    /* executed once */
    /* executed once */
    /* *Int_Par_Ref == 1, becomes 4 */
    /* *Int_Par_Ref == 1, becomes 4 */
 
 
One_Fifty   *Int_Par_Ref;
One_Fifty   *Int_Par_Ref;
{
{
  One_Fifty  Int_Loc;
  One_Fifty  Int_Loc;
  Enumeration   Enum_Loc;
  Enumeration   Enum_Loc;
 
 
  Int_Loc = *Int_Par_Ref + 10;
  Int_Loc = *Int_Par_Ref + 10;
  do /* executed once */
  do /* executed once */
    if (Ch_1_Glob == 'A')
    if (Ch_1_Glob == 'A')
      /* then, executed */
      /* then, executed */
    {
    {
      Int_Loc -= 1;
      Int_Loc -= 1;
      *Int_Par_Ref = Int_Loc - Int_Glob;
      *Int_Par_Ref = Int_Loc - Int_Glob;
      Enum_Loc = Ident_1;
      Enum_Loc = Ident_1;
    } /* if */
    } /* if */
  while (Enum_Loc != Ident_1); /* true */
  while (Enum_Loc != Ident_1); /* true */
} /* Proc_2 */
} /* Proc_2 */
 
 
 
 
Proc_3 (Ptr_Ref_Par)
Proc_3 (Ptr_Ref_Par)
/******************/
/******************/
    /* executed once */
    /* executed once */
    /* Ptr_Ref_Par becomes Ptr_Glob */
    /* Ptr_Ref_Par becomes Ptr_Glob */
 
 
Rec_Pointer *Ptr_Ref_Par;
Rec_Pointer *Ptr_Ref_Par;
 
 
{
{
  if (Ptr_Glob != Null)
  if (Ptr_Glob != Null)
    /* then, executed */
    /* then, executed */
    *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp;
    *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp;
  Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp);
  Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp);
} /* Proc_3 */
} /* Proc_3 */
 
 
 
 
Proc_4 () /* without parameters */
Proc_4 () /* without parameters */
/*******/
/*******/
    /* executed once */
    /* executed once */
{
{
  Boolean Bool_Loc;
  Boolean Bool_Loc;
 
 
  Bool_Loc = Ch_1_Glob == 'A';
  Bool_Loc = Ch_1_Glob == 'A';
  Bool_Glob = Bool_Loc | Bool_Glob;
  Bool_Glob = Bool_Loc | Bool_Glob;
  Ch_2_Glob = 'B';
  Ch_2_Glob = 'B';
} /* Proc_4 */
} /* Proc_4 */
 
 
 
 
Proc_5 () /* without parameters */
Proc_5 () /* without parameters */
/*******/
/*******/
    /* executed once */
    /* executed once */
{
{
  Ch_1_Glob = 'A';
  Ch_1_Glob = 'A';
  Bool_Glob = false;
  Bool_Glob = false;
} /* Proc_5 */
} /* Proc_5 */
 
 
 
 
        /* Procedure for the assignment of structures,          */
        /* Procedure for the assignment of structures,          */
        /* if the C compiler doesn't support this feature       */
        /* if the C compiler doesn't support this feature       */
#ifdef  NOSTRUCTASSIGN
#ifdef  NOSTRUCTASSIGN
memcpy (d, s, l)
memcpy (d, s, l)
register char   *d;
register char   *d;
register char   *s;
register char   *s;
register int    l;
register int    l;
{
{
        while (l--) *d++ = *s++;
        while (l--) *d++ = *s++;
}
}
#endif
#endif
 
 
 
 
 
 

powered by: WebSVN 2.1.0

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