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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [pr19080.c] - Rev 774

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

typedef union { int ioport; volatile char *maddr; } bus_space_handle_t;
struct scb { unsigned short *hscb; };
struct ahd_softc
{
  int tags[2];
  bus_space_handle_t bshs[2];
  int dst_mode;
  int src_mode;
  int flags;
};
void outb(int, int);
 
int foo_inb(struct ahd_softc*);
int foo_int_int (int, int);
int ahd_inb(struct ahd_softc*);
int ahd_scb_active_in_fifo (void);
 
void ahd_flush_qoutfifo (struct ahd_softc *ahd, struct scb *scb)
{
  int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1;
  int bb, p;
 
  if (ahd->src_mode == 1)
    { int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1;}
  foo_int_int (ahd->src_mode, ahd->dst_mode);
  p = 1;
  if (ahd->src_mode == 2 && ahd->dst_mode == p)
    {
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
        outb (1, ahd->bshs[0].ioport );
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
        outb (1, ahd->bshs[0].ioport );
    }
  ahd->src_mode = 1;
  ahd->dst_mode = 2;
  while ((ahd_inb (ahd) & 0x01) != 0)
  {
    p = 1;
    if (ahd->src_mode == 2 && ahd->dst_mode == p)
      {
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
          outb (1, ahd->bshs[0].ioport );
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
          outb (1, ahd->bshs[0].ioport );
      }
    ahd->src_mode = 1;
    ahd->dst_mode = 2;
    if (ahd_scb_active_in_fifo () == 0)
      continue;
    p = 1;
    if (ahd->src_mode == 2 && ahd->dst_mode == p)
      {
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
          outb (1, ahd->bshs[0].ioport );
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
          outb (1, ahd->bshs[0].ioport );
      }
    ahd->src_mode = 1;
    ahd->dst_mode = 2;
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    if ((ahd->flags & 1) != 0)
      foo_inb (ahd);
    if ((ahd->flags & 1) != 0)
      foo_inb (ahd);
    if ((ahd->flags & 1) != 0)
      foo_inb (ahd);
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    if ((ahd->flags & 1) != 0)
      foo_inb (ahd);
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    bb = (*(scb->hscb));
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    bb = (*(scb->hscb));
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
      outb (1, ahd->bshs[0].ioport );
  }
  if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
    outb (1, ahd->bshs[0].ioport );
  if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
    outb (1, ahd->bshs[0].ioport );
  p = 1;
  if (ahd->src_mode == 2 && ahd->dst_mode == p)
    {
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
        outb (1, ahd->bshs[0].ioport );
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
        outb (1, ahd->bshs[0].ioport );
    }
  ahd->src_mode = 1;
  ahd->dst_mode = 2;
  if (ahd->src_mode == 2 && ahd->dst_mode == dst)
    {
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
        outb (1, ahd->bshs[0].ioport );
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
        outb (1, ahd->bshs[0].ioport );
    }
  ahd->src_mode = 1;
  ahd->dst_mode = 2;
  ahd->flags |= 1;
}
 

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.