Advertisement
Guest User

Untitled

a guest
Aug 28th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.10 KB | None | 0 0
  1.       //byte* p = (byte*)outptr - dist;
  2.       //byte* q = &p[len];
  3.       //for( p=p; p<q; p++ ) put0( *p );
  4.  
  5.       if( __builtin_expect(dist>=len,1) ) {
  6.         byte* restrict u = outptr - dist;
  7.         byte* restrict v = outptr;
  8.  
  9.         if( __builtin_expect(((u-((byte*)0))&7)==0,0) ) {
  10.           __assume_aligned(u,8);
  11.           if( __builtin_expect(((v-((byte*)0))&7)==0,0) ) {
  12.             __assume_aligned(v,8);
  13.             for( i=0; __builtin_expect(i<len,0); i+=8 ) (qword&)v[i]=(qword&)u[i];
  14.           } else for( i=0; __builtin_expect(i<len,0); i+=8 ) (qword&)v[i]=(qword&)u[i];
  15.         } else
  16.         if( __builtin_expect(((v-((byte*)0))&7)==0,0) ) {
  17.           __assume_aligned(v,8);
  18.           for( i=0; __builtin_expect(i<len,0); i+=8 ) (qword&)v[i]=(qword&)u[i];
  19.         } else for( i=0; __builtin_expect(i<len,0); i+=8 ) (qword&)v[i]=(qword&)u[i];
  20.  
  21.         for( i=i; __builtin_expect(i<len,0); i+=1 ) v[i]=u[i];
  22.  
  23.       } else {
  24.         byte* u = outptr - dist;
  25.         byte* v = outptr;
  26.         for( i=i; __builtin_expect(i<len,1); i+=1 ) v[i]=u[i];
  27.       }
  28.       outptr+=len;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement