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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [20020402-2.c] - Rev 801

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

/* PR 3967
 
   local-alloc screwed up consideration of high+lo_sum and created
   reg_equivs that it shouldn't have, resulting in lo_sum with
   uninitialized data, resulting in segv.  The test has to remain
   relatively large, since register spilling is required to twig
   the bug.  */
 
unsigned long *Local1;
unsigned long *Local2;
unsigned long *Local3;
unsigned long *RDbf1;
unsigned long *RDbf2;
unsigned long *RDbf3;
unsigned long *IntVc1;
unsigned long *IntVc2;
unsigned long *IntCode3;
unsigned long *IntCode4;
unsigned long *IntCode5;
unsigned long *IntCode6;
unsigned long *Lom1;
unsigned long *Lom2;
unsigned long *Lom3;
unsigned long *Lom4;
unsigned long *Lom5;
unsigned long *Lom6;
unsigned long *Lom7;
unsigned long *Lom8;
unsigned long *Lom9;
unsigned long *Lom10;
unsigned long *RDbf11;
unsigned long *RDbf12;
 
typedef struct
  {
    long a1;
    unsigned long n1;
    unsigned long local1;
    unsigned long local2;
    unsigned long local3;
    unsigned long rdbf1;
    unsigned long rdbf2;
    unsigned long milli;
    unsigned long frames1;
    unsigned long frames2;
    unsigned long nonShared;
    long newPrivate;
    long freeLimit;
    unsigned long cache1;
    unsigned long cache2;
    unsigned long cache3;
    unsigned long cache4;
    unsigned long cache5;
    unsigned long time6;
    unsigned long frames7;
    unsigned long page8;
    unsigned long ot9;
    unsigned long data10;
    unsigned long bm11;
    unsigned long misc12;
  }
ShrPcCommonStatSType;
 
 
typedef struct
  {
    unsigned long sharedAttached;
    unsigned long totalAttached;
    long avgPercentShared;
    unsigned long numberOfFreeFrames;
    unsigned long localDirtyPageCount;
    unsigned long globalDirtyPageCount;
    long wakeupInterval;
    unsigned long numActiveProcesses;
    unsigned long numRecentActiveProcesses;
    unsigned long gemDirtyPageKinds[10];
    unsigned long stoneDirtyPageKinds[10];
    unsigned long gemsInCacheCount;
    long targetFreeFrameCount;
  }
ShrPcMonStatSType;
 
typedef struct
  {
    unsigned long c1;
    unsigned long c2;
    unsigned long c3;
    unsigned long c4;
    unsigned long c5;
    unsigned long c6;
    unsigned long c7;
    unsigned long c8;
    unsigned long c9;
    unsigned long c10;
    unsigned long c11;
    unsigned long c12;
    unsigned long a1;
    unsigned long a2;
    unsigned long a3;
    unsigned long a4;
    unsigned long a5;
    unsigned long a6;
    unsigned long a7;
    unsigned long a8;
    unsigned long a9;
    unsigned long a10;
    unsigned long a11;
    unsigned long a12;
    unsigned long a13;
    unsigned long a14;
    unsigned long a15;
    unsigned long a16;
    unsigned long a17;
    unsigned long a18;
    unsigned long a19;
    unsigned long sessionStats[40];
  }
ShrPcGemStatSType;
 
union ShrPcStatUnion
  {
    ShrPcMonStatSType monitor;
    ShrPcGemStatSType gem;
  };
 
typedef struct
  {
    int processId;
    int sessionId;
    ShrPcCommonStatSType cmn;
    union ShrPcStatUnion u;
  } ShrPcStatsSType;
 
typedef struct
  {
    unsigned long *p1;
    unsigned long *p2;
    unsigned long *p3;
    unsigned long *p4;
    unsigned long *p5;
    unsigned long *p6;
    unsigned long *p7;
    unsigned long *p8;
    unsigned long *p9;
    unsigned long *p10;
    unsigned long *p11;
  }
WorkEntrySType;
 
WorkEntrySType Workspace;
 
static void 
setStatPointers (ShrPcStatsSType * statsPtr, long sessionId)
{
  statsPtr->sessionId = sessionId;
  statsPtr->cmn.a1 = 0;
  statsPtr->cmn.n1 = 5;
 
  Local1 = &statsPtr->cmn.local1;
  Local2 = &statsPtr->cmn.local2;
  Local3 = &statsPtr->cmn.local3;
  RDbf1 = &statsPtr->cmn.rdbf1;
  RDbf2 = &statsPtr->cmn.rdbf2;
  RDbf3 = &statsPtr->cmn.milli;
  *RDbf3 = 1;
 
  IntVc1 = &statsPtr->u.gem.a1;
  IntVc2 = &statsPtr->u.gem.a2;
  IntCode3 = &statsPtr->u.gem.a3;
  IntCode4 = &statsPtr->u.gem.a4;
  IntCode5 = &statsPtr->u.gem.a5;
  IntCode6 = &statsPtr->u.gem.a6;
 
  {
    WorkEntrySType *workSpPtr;
    workSpPtr = &Workspace;
    workSpPtr->p1 = &statsPtr->u.gem.a7;
    workSpPtr->p2 = &statsPtr->u.gem.a8;
    workSpPtr->p3 = &statsPtr->u.gem.a9;
    workSpPtr->p4 = &statsPtr->u.gem.a10;
    workSpPtr->p5 = &statsPtr->u.gem.a11;
    workSpPtr->p6 = &statsPtr->u.gem.a12;
    workSpPtr->p7 = &statsPtr->u.gem.a13;
    workSpPtr->p8 = &statsPtr->u.gem.a14;
    workSpPtr->p9 = &statsPtr->u.gem.a15;
    workSpPtr->p10 = &statsPtr->u.gem.a16;
    workSpPtr->p11 = &statsPtr->u.gem.a17;
  }
  Lom1 = &statsPtr->u.gem.c1;
  Lom2 = &statsPtr->u.gem.c2;
  Lom3 = &statsPtr->u.gem.c3;
  Lom4 = &statsPtr->u.gem.c4;
  Lom5 = &statsPtr->u.gem.c5;
  Lom6 = &statsPtr->u.gem.c6;
  Lom7 = &statsPtr->u.gem.c7;
  Lom8 = &statsPtr->u.gem.c8;
  Lom9 = &statsPtr->u.gem.c9;
  Lom10 = &statsPtr->u.gem.c10;
  RDbf11 = &statsPtr->u.gem.c11;
  RDbf12 = &statsPtr->u.gem.c12;
}
 
typedef struct
{
  ShrPcStatsSType stats;
} ShrPcPteSType;
 
ShrPcPteSType MyPte;
 
static void 
initPte (void *shrpcPtr, long sessionId)
{
  ShrPcPteSType *ptePtr;
 
  ptePtr = &MyPte;
  setStatPointers (&ptePtr->stats, sessionId);
}
 
void 
InitCache (int sessionId)
{
  initPte (0, sessionId);
}
 
int 
main (int argc, char *argv[])
{
  InitCache (5);
  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.