void my_memset(char *a, char c, unsigned n) {
//char s[16]={c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c};
while((int)a&15)*a++=c,n--;while(n&127)a[--n]=c;
//__asm("movups (%1), %%xmm0; _LAR: movntps %%xmm0, (%0); movntps %%xmm0, 16(%0); movntps %%xmm0, 32(%0); movntps %%xmm0, 48(%0); movntps %%xmm0, 64(%0); movntps %%xmm0, 80(%0); movntps %%xmm0, 96(%0); movntps %%xmm0, 112(%0); addl $128, %0; subl $1, %2; jnz _LAR; ": : "r"(a), "r"(&s), "r"(n/128): "memory");
for(int i=0, cctv=(unsigned char)c*0x1010101; i<n; i+=32) {
#define a *(int*)&a
a[i]=a[i+4]=a[i+8]=a[i+12]=a[i+16]=a[i+20]=a[i+24]=a[i+28]=cctv; }
}
| Compilation | N/A | N/A | Compile Error | Score: N/A | 显示更多 |