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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [pr19080.c] - Blame information for rev 301

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

Line No. Rev Author Line
1 297 jeremybenn
typedef union { int ioport; volatile char *maddr; } bus_space_handle_t;
2
struct scb { unsigned short *hscb; };
3
struct ahd_softc
4
{
5
  int tags[2];
6
  bus_space_handle_t bshs[2];
7
  int dst_mode;
8
  int src_mode;
9
  int flags;
10
};
11
void outb(int, int);
12
 
13
int foo_inb(struct ahd_softc*);
14
int foo_int_int (int, int);
15
int ahd_inb(struct ahd_softc*);
16
int ahd_scb_active_in_fifo (void);
17
 
18
void ahd_flush_qoutfifo (struct ahd_softc *ahd, struct scb *scb)
19
{
20
  int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1;
21
  int bb, p;
22
 
23
  if (ahd->src_mode == 1)
24
    { int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1;}
25
  foo_int_int (ahd->src_mode, ahd->dst_mode);
26
  p = 1;
27
  if (ahd->src_mode == 2 && ahd->dst_mode == p)
28
    {
29
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
30
        outb (1, ahd->bshs[0].ioport );
31
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
32
        outb (1, ahd->bshs[0].ioport );
33
    }
34
  ahd->src_mode = 1;
35
  ahd->dst_mode = 2;
36
  while ((ahd_inb (ahd) & 0x01) != 0)
37
  {
38
    p = 1;
39
    if (ahd->src_mode == 2 && ahd->dst_mode == p)
40
      {
41
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
42
          outb (1, ahd->bshs[0].ioport );
43
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
44
          outb (1, ahd->bshs[0].ioport );
45
      }
46
    ahd->src_mode = 1;
47
    ahd->dst_mode = 2;
48
    if (ahd_scb_active_in_fifo () == 0)
49
      continue;
50
    p = 1;
51
    if (ahd->src_mode == 2 && ahd->dst_mode == p)
52
      {
53
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
54
          outb (1, ahd->bshs[0].ioport );
55
        if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
56
          outb (1, ahd->bshs[0].ioport );
57
      }
58
    ahd->src_mode = 1;
59
    ahd->dst_mode = 2;
60
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
61
      outb (1, ahd->bshs[0].ioport );
62
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
63
      outb (1, ahd->bshs[0].ioport );
64
    if ((ahd->flags & 1) != 0)
65
      foo_inb (ahd);
66
    if ((ahd->flags & 1) != 0)
67
      foo_inb (ahd);
68
    if ((ahd->flags & 1) != 0)
69
      foo_inb (ahd);
70
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
71
      outb (1, ahd->bshs[0].ioport );
72
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
73
      outb (1, ahd->bshs[0].ioport );
74
    if ((ahd->flags & 1) != 0)
75
      foo_inb (ahd);
76
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
77
      outb (1, ahd->bshs[0].ioport );
78
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
79
      outb (1, ahd->bshs[0].ioport );
80
    bb = (*(scb->hscb));
81
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
82
      outb (1, ahd->bshs[0].ioport );
83
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
84
      outb (1, ahd->bshs[0].ioport );
85
    bb = (*(scb->hscb));
86
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
87
      outb (1, ahd->bshs[0].ioport );
88
    if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
89
      outb (1, ahd->bshs[0].ioport );
90
  }
91
  if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
92
    outb (1, ahd->bshs[0].ioport );
93
  if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
94
    outb (1, ahd->bshs[0].ioport );
95
  p = 1;
96
  if (ahd->src_mode == 2 && ahd->dst_mode == p)
97
    {
98
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
99
        outb (1, ahd->bshs[0].ioport );
100
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
101
        outb (1, ahd->bshs[0].ioport );
102
    }
103
  ahd->src_mode = 1;
104
  ahd->dst_mode = 2;
105
  if (ahd->src_mode == 2 && ahd->dst_mode == dst)
106
    {
107
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
108
        outb (1, ahd->bshs[0].ioport );
109
      if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
110
        outb (1, ahd->bshs[0].ioport );
111
    }
112
  ahd->src_mode = 1;
113
  ahd->dst_mode = 2;
114
  ahd->flags |= 1;
115
}

powered by: WebSVN 2.1.0

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