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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [20001023-1.c] - Blame information for rev 689

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* { dg-do run } */
2
/* { dg-options "-O2 -fomit-frame-pointer" } */
3
 
4
extern void abort (void);
5
extern void exit (int);
6
 
7
unsigned char a[256], b[256], c[256], d[256];
8
 
9
void foo(unsigned char *x, int y, unsigned char *z)
10
{
11
}
12
 
13
void bar(int x, ...)
14
{
15
}
16
 
17
void baz(int y)
18
{
19
  if (y != 0x10)
20
    abort();
21
}
22
 
23
void test(int x, unsigned char *y)
24
{
25
  unsigned char g,h,j, k[5],l[5], m[30];
26
  int i;
27
 
28
  bar(x, y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8], y[9]);
29
  for (i = 5; --i >= 0; )
30
    k[i] = y[5 + i] ^ a[i] ^ c[i];
31
 
32
  foo(&m[29], sizeof m, k);
33
  g = d[x] ^ c[x];
34
  bar(x, d[x], x, c[x]);
35
  baz(g);
36
  for (i = 5, h = 0; --i >= 0; h = y[i])
37
    {
38
      j = m[25 + i] ^ y[i];
39
      j = b[j] ^ g;
40
      k[i] = c[j] ^ h;
41
    }
42
  for (i = 5, h = 0; --i >= 0; h = k[i])
43
    {
44
      j = m[20 + i] ^ k[i];
45
      j = b[j] ^ g;
46
      l[i] = c[j] ^ h;
47
    }
48
  for (i = 5, h = 0; --i >= 0; h = l[i]) {
49
    j = m[15 + i] ^ l[i];
50
    j = b[j] ^ g;
51
    j = c[j] ^ h;
52
    k[i] = a[j] ^ c[j];
53
  }
54
}
55
 
56
int main()
57
{
58
  c[4] = 0xdc;
59
  d[4] = 0xcc;
60
  test(4, a);
61
  exit(0);
62
}

powered by: WebSVN 2.1.0

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