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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [920611-2.c] - Rev 826

Compare with Previous | Blame | View Log

typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
 
static unsigned long S[1][1]={0x00820200};
 
static int body(out0,out1,ks,Eswap0,Eswap1)
ulong *out0,*out1;
int *ks;
ulong Eswap0,Eswap1;
{
  register unsigned long l,r,t,u,v;
  register unsigned long *s;
  register int i,j;
  register unsigned long E0,E1;
 
  l=0;
  r=0;
 
  s=(ulong *)ks;
  E0=Eswap0;
  E1=Eswap1;
 
  for (i=0; i<(16 *2); i+=4)
    {
      v=(r^(r>>16));
      u=(v&E0);
      v=(v&E1);
      u=(u^(u<<16))^r^s[  i  ];
      t=(v^(v<<16))^r^s[  i+1];
      t=(t>>4)|(t<<28);
      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];
      v=(l^(l>>16));
      u=(v&E0);
      v=(v&E1);
      u=(u^(u<<16))^l^s[  i+2  ];
      t=(v^(v<<16))^l^s[  i+2+1];
      t=(t>>4)|(t<<28);
      r^=	S[1][(t    )&0x3f];
    }
  t=l;
  l=r;
  r=t;
 
  t=r;
  r=(l>>1)|(l<<31);
  l=(t>>1)|(t<<31);
 
  *out0=l;
  *out1=r;
  return(0);
}
 

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.