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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [920611-2.c] - Blame information for rev 801

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

Line No. Rev Author Line
1 688 jeremybenn
typedef unsigned char uchar;
2
typedef unsigned short ushort;
3
typedef unsigned int uint;
4
typedef unsigned long ulong;
5
 
6
static unsigned long S[1][1]={0x00820200};
7
 
8
static int body(out0,out1,ks,Eswap0,Eswap1)
9
ulong *out0,*out1;
10
int *ks;
11
ulong Eswap0,Eswap1;
12
{
13
  register unsigned long l,r,t,u,v;
14
  register unsigned long *s;
15
  register int i,j;
16
  register unsigned long E0,E1;
17
 
18
  l=0;
19
  r=0;
20
 
21
  s=(ulong *)ks;
22
  E0=Eswap0;
23
  E1=Eswap1;
24
 
25
  for (i=0; i<(16 *2); i+=4)
26
    {
27
      v=(r^(r>>16));
28
      u=(v&E0);
29
      v=(v&E1);
30
      u=(u^(u<<16))^r^s[  i  ];
31
      t=(v^(v<<16))^r^s[  i+1];
32
      t=(t>>4)|(t<<28);
33
      l^=S[1][(t)&0x3f]| S[3][(t>> 8)&0x3f]| S[5][(t>>16)&0x3f]| S[7][(t>>24)&0x3f]| S[0][(u)&0x3f]| S[2][(u>> 8)&0x3f]| S[4][(u>>16)&0x3f]| S[6][(u>>24)&0x3f];
34
      v=(l^(l>>16));
35
      u=(v&E0);
36
      v=(v&E1);
37
      u=(u^(u<<16))^l^s[  i+2  ];
38
      t=(v^(v<<16))^l^s[  i+2+1];
39
      t=(t>>4)|(t<<28);
40
      r^=       S[1][(t    )&0x3f];
41
    }
42
  t=l;
43
  l=r;
44
  r=t;
45
 
46
  t=r;
47
  r=(l>>1)|(l<<31);
48
  l=(t>>1)|(t<<31);
49
 
50
  *out0=l;
51
  *out1=r;
52
  return(0);
53
}

powered by: WebSVN 2.1.0

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