linux/lib/raid6/recov_ssse3.c
<<
>>
v2.6.11 alue=43idt> alue=4 v2.6.butt> tion> <">Salue= ajaxilookup4311" > gfx/r src="../ gfx/r sdivo_searchheadingbott>most"div"rgfx/t"div"rgfx/ x/r sdivoidt> alue=_results"o_search alue=_results"img"rgfx/r srdiv"r sdivoidt>conten<">r sdivoidt>file_conten94/51/dd61f5c046e88999c20bec07273de6d110b0_3/0". L143_search(ine43tion vL14>/r 1sr ourn do_searchcommen<">/*ubmit="r L243_search(ine43tion vL24>/r 2sr ourn do_searchcommen<"> * Copytion= (C) 2012 Intel Corporape="ubmit="r L343_search(ine43tion vL34>/r 3sr ourn do_searchcommen<"> *ubmit="r L443_search(ine43tion vL44>/r 4sr ourn do_searchcommen<"> * Tnam program am free software; you c doredistribute it and/orubmit="r L543_search(ine43tion vL54>/r 5sr ourn do_searchcommen<"> * modify it under the terms of the GNU General Public Licenseubmit="r L643_search(ine43tion vL64>/r 6sr ourn do_searchcommen<"> * am published by the Free Software Foundape="; versm> 2ubmit="r L743_search(ine43tion vL74>/r 7sr ourn do_searchcommen<"> * of the License.ubmit="r L843_search(ine43tion vL84>/r 8sr ourn do_searchcommen<"> */ubmit="r L943_search(ine43tion vL94>/r 9sr on L1043_search(ine43tion vL104>/ron va>#if (atiight.p+code=defined"o_search ght">defined va>(atiight.p+code=__i386__"o_search ght">__i386__ va>) || atiight.p+code=defined"o_search ght">defined va>(atiight.p+code=__x86_64__"o_search ght">__x86_64__ va>)) && !atiight.p+code=defined"o_search ght">defined va>(atiight.p+code=__lue=_um__"o_search ght">__lue=_um__ va>)n L1143_search(ine43tion vL114>/r11sr on L1243_search(ine43tion vL124>/r12 va>#include < /pq.h43_searchfght"> alt= /pq.h va>d="pn L1343_search(ine43tion vL134>/r13 va>#include " x86.h va>dquot;n L1443_search(ine43tion vL144>/r14sr on L1543_search(ine43tion vL154>/r15sr o _has> /a> _has> (void)n L1643_search(ine43tion vL164>/r16sr o{n L1743_search(ine43tion vL174>/r17sr o put typatiight.p+code=boot_cpu_has"o_search ght">boot_cpu_has va>(atiight.p+code=X86_FEATURE_XMM"o_search ght">X86_FEATURE_XMM va>) &&n L1843_search(ine43tion vL184>/r18sr o atiight.p+code=boot_cpu_has"o_search ght">boot_cpu_has va>(atiight.p+code=X86_FEATURE_XMM2"o_search ght">X86_FEATURE_XMM2 va>) &&n L1943_search(ine43tion vL194>/r19sr o atiight.p+code=boot_cpu_has"o_search ght">boot_cpu_has va>(atiight.p+code=X86_FEATURE_SSSEs"o_search ght">X86_FEATURE_SSSEs va>);n L2043_search(ine43tion vL204>/r2n va>}n L2143_search(ine43tion vL214>/r21sr on L2243_search(ine43tion vL224>/r22sr o _2dapa_/span> /a> _2dapa_/span> (int atiight.p+code=disks"o_search ght">disks va>, atiight.p+code=size_t"o_search ght">size_tsr o atiight.p+code=bytes"o_search ght">bytes va>, int atiight.p+code=faila"o_search ght">faila va>,n L2343_search(ine43tion vL234>/r23sr o int atiight.p+code=failb"o_search ght">failb va>, void **atiight.p+code=ptrs"o_search ght">ptrs va>)n L2443_search(ine43tion vL244>/r24sr o{n L2543_search(ine43tion vL254>/r25sr o atiight.p+code=u8"o_search ght">u8sr o *atiight.p+code=p"o_search ght">p va>, *atiight.p+code=q"o_search ght">q va>, *atiight.p+code=dp"o_search ght">dp va>, *atiight.p+code=dq"o_search ght">dq va>;n L2643_search(ine43tion vL264>/r26sr o const atiight.p+code=u8"o_search ght">u8sr o *atiight.p+code=pbmul"o_search ght">pbmul va>; arn do_searchcommen<">/* P multiplier table for B dapa */ubmit="r L2743_search(ine43tion vL274>/r27sr o const atiight.p+code=u8"o_search ght">u8sr o *atiight.p+code=qmul"o_search ght">qmul va>; arn do_searchcommen<">/* Q multiplier table (for both) */ubmit="r L2843_search(ine43tion vL284>/r28sr o u8sr o atiight.p+code=__lligned"o_search ght">__lligned va>(16) atiight.p+code=x0f"o_search ght">x0f va>[16] = {n L2943_search(ine43tion vL294>/r29sr o 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,r L3043_search(ine43tion vL304>/r30sr o 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f};n L3143_search(ine43tion vL314>/r31sr on L3243_search(ine43tion vL324>/r32sr o atiight.p+code=p"o_search ght">p va> = (atiight.p+code=u8"o_search ght">u8sr o *)atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-2];n L3343_search(ine43tion vL334>/r33sr o atiight.p+code=q"o_search ght">q va> = (atiight.p+code=u8"o_search ght">u8sr o *)atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-1];n L3443_search(ine43tion vL344>/r34sr on L3543_search(ine43tion vL354>/r35sr o arn do_searchcommen<">/* Compute syndrome with zero for the missing dapa pages vmit="r L3643_search(ine43tion vL364>/r36sr ourn do_searchcommen<"> Use the dead dapa pages am temporary orage for vmit="r L3743_search(ine43tion vL374>/r37sr ourn do_searchcommen<"> delpa p and delpa q */ubmit="r L3843_search(ine43tion vL384>/r38sr o atiight.p+code=dp"o_search ght">dp va> = (atiight.p+code=u8"o_search ght">u8sr o *)atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=faila"o_search ght">faila va>];n L3943_search(ine43tion vL394>/r39sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=faila"o_search ght">faila va>] = (void *)atiight.p+code=/a> _empty_zero_page"o_search ght">/a> _empty_zero_page va>;n L4043_search(ine43tion vL404>/r40sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-2] = atiight.p+code=dp"o_search ght">dp va>;n L4143_search(ine43tion vL414>/r41sr o atiight.p+code=dq"o_search ght">dq va> = (atiight.p+code=u8"o_search ght">u8sr o *)atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=failb"o_search ght">failb va>];n L4243_search(ine43tion vL424>/r42sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=failb"o_search ght">failb va>] = (void *)atiight.p+code=/a> _empty_zero_page"o_search ght">/a> _empty_zero_page va>;n L4343_search(ine43tion vL434>/r43sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-1] = atiight.p+code=dq"o_search ght">dq va>;n L4443_search(ine43tion vL444>/r44sr on L4543_search(ine43tion vL454>/r45sr o atiight.p+code=/a> _call"o_search ght">/a> _callsr o.atiight.p+code=gen_syndrome"o_search ght">gen_syndrome va>(atiight.p+code=disks"o_search ght">disks va>, atiight.p+code=bytes"o_search ght">bytes va>, atiight.p+code=ptrs"o_search ght">ptrs va>);n L4643_search(ine43tion vL464>/r46sr on L4743_search(ine43tion vL474>/r47sr o arn do_searchcommen<">/* Re ore pointer table */ubmit="r L4843_search(ine43tion vL484>/r48sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=faila"o_search ght">faila va>] = atiight.p+code=dp"o_search ght">dp va>;n L4943_search(ine43tion vL494>/r49sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=failb"o_search ght">failb va>] = atiight.p+code=dq"o_search ght">dq va>;n L5043_search(ine43tion vL504>/r50sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-2] = atiight.p+code=p"o_search ght">p va>;n L5143_search(ine43tion vL514>/r51sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-1] = atiight.p+code=q"o_search ght">q va>;n L5243_search(ine43tion vL524>/r52sr on L5343_search(ine43tion vL534>/r53sr o arn do_searchcommen<">/* Now, pick the proper dapa tables */ubmit="r L5443_search(ine43tion vL544>/r54sr o atiight.p+code=pbmul"o_search ght">pbmul va> = atiight.p+code=/a> _vgfmul"o_search ght">/a> _vgfmul va>[atiight.p+code=/a> _gfexi"o_search ght">/a> _gfexi va>[atiight.p+code=failb"o_search ght">failb va>-atiight.p+code=faila"o_search ght">faila va>]];n L5543_search(ine43tion vL554>/r55sr o atiight.p+code=qmul"o_search ght">qmul va> = atiight.p+code=/a> _vgfmul"o_search ght">/a> _vgfmul va>[atiight.p+code=/a> _gfinv"o_search ght">/a> _gfinv va>[atiight.p+code=/a> _gfexp"o_search ght">/a> _gfexp va>[atiight.p+code=faila"o_search ght">faila va>] ^n L5643_search(ine43tion vL564>/r56sr o atiight.p+code=/a> _gfexp"o_search ght">/a> _gfexp va>[atiight.p+code=failb"o_search ght">failb va>]]];n L5743_search(ine43tion vL574>/r57sr on L5843_search(ine43tion vL584>/r58sr o atiight.p+code=kernel_fpu_begin"o_search ght">kernel_fpu_begin va>();n L5943_search(ine43tion vL594>/r59sr on L6043_search(ine43tion vL604>/r60sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm7"dquot;m"x0f va>[0]));n L6143_search(ine43tion vL614>/r61sr on L6243_search(ine43tion vL624>/r62 va>#ifdef atiight.p+code=CONFIG_X86_64"o_search ght">CONFIG_X86_64sr on L6343_search(ine43tion vL634>/r63sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm6"dquot;m"qmul va>[0]));n L6443_search(ine43tion vL644>/r64sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm14"dquot;m"pbmul va>[0]));n L6543_search(ine43tion vL654>/r65sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm15"dquot;m"pbmul va>[16]));n L6643_search(ine43tion vL664>/r66sr o#endifn L6743_search(ine43tion vL674>/r67sr on L6843_search(ine43tion vL684>/r68sr o arn do_searchcommen<">/* Now do it... */ubmit="r L6943_search(ine43tion vL694>/r69sr o while (atiight.p+code=bytes"o_search ght">bytes va>) {n L7043_search(ine43tion vL704>/r70 va>#ifdef atiight.p+code=CONFIG_X86_64"o_search ght">CONFIG_X86_64sr on L7143_search(ine43tion vL714>/r71sr o arn do_searchcommen<">/* xmm6, xmm14, xmm15 */ubmit="r L7243_search(ine43tion vL724>/r72sr on L7343_search(ine43tion vL734>/r73sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm1"dquot;m"q va>[0]));n L7443_search(ine43tion vL744>/r74sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm9"dquot;m"q va>[16]));n L7543_search(ine43tion vL754>/r75sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm0"dquot;m"p va>[0]));n L7643_search(ine43tion vL764>/r76sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm8"dquot;m"p va>[16]));n L7743_search(ine43tion vL774>/r77sr o asm volatile(arn do_searchstring">dquot;pxor %0,%%xmm1"dquot;m"dq va>[0]));n L7843_search(ine43tion vL784>/r78sr o asm volatile(arn do_searchstring">dquot;pxor %0,%%xmm9"dquot;m"dq va>[16]));n L7943_search(ine43tion vL794>/r79sr o asm volatile(arn do_searchstring">dquot;pxor %0,%%xmm0"dquot;m"dp va>[0]));n L8043_search(ine43tion vL804>/r80sr o asm volatile(arn do_searchstring">dquot;pxor %0,%%xmm8"dquot;m"dp va>[16]));n L8143_search(ine43tion vL814>/r81sr on L8243_search(ine43tion vL824>/r82sr o arn do_searchcommen<">/* xmm0/8 = px */ubmit="r L8343_search(ine43tion vL834>/r83sr on L8443_search(ine43tion vL844>/r84sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm6,%xmm4" L8543_search(ine43tion vL854>/r85sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm5"dquot;m"qmul va>[16]));n L8643_search(ine43tion vL864>/r86sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm6,%xmm12" L8743_search(ine43tion vL874>/r87sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm5,%xmm13" L8843_search(ine43tion vL884>/r88sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm1,%xmm3" L8943_search(ine43tion vL894>/r89sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm9,%xmm11" L9043_search(ine43tion vL904>/r90sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm0,%xmm2"/* xmm2/10 = px */ubmit="r L9143_search(ine43tion vL914>/r91sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm8,%xmm10" L9243_search(ine43tion vL924>/r92sr o asm volatile(arn do_searchstring">dquot;psraw $4,%xmm1" L9343_search(ine43tion vL934>/r93sr o asm volatile(arn do_searchstring">dquot;psraw $4,%xmm9" L9443_search(ine43tion vL944>/r94sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm3" L9543_search(ine43tion vL954>/r95sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm11" L9643_search(ine43tion vL964>/r96sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm1" L9743_search(ine43tion vL974>/r97sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm9" L9843_search(ine43tion vL984>/r98sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm3,%xmm4" L9943_search(ine43tion vL994>/r99sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm11,%xmm12" L10043_search(ine43tion vL1004>/100sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm1,%xmm5" L10143_search(ine43tion vL1014>/101sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm9,%xmm13" L10243_search(ine43tion vL1024>/102sr o asm volatile(arn do_searchstring">dquot;pxor %xmm4,%xmm5" L10343_search(ine43tion vL1034>/103sr o asm volatile(arn do_searchstring">dquot;pxor %xmm12,%xmm13" L10443_search(ine43tion vL1044>/104sr on L10543_search(ine43tion vL1054>/105sr o arn do_searchcommen<">/* xmm5/13 = qx */ubmit="r L10643_search(ine43tion vL1064>/106sr on L10743_search(ine43tion vL1074>/107sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm14,%xmm4" L10843_search(ine43tion vL1084>/108sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm15,%xmm1" L10943_search(ine43tion vL1094>/109sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm14,%xmm12" L11043_search(ine43tion vL1104>/110sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm15,%xmm9" L11143_search(ine43tion vL1114>/111sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm2,%xmm3" L11243_search(ine43tion vL1124>/112sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm10,%xmm11" L11343_search(ine43tion vL1134>/113sr o asm volatile(arn do_searchstring">dquot;psraw $4,%xmm2" L11443_search(ine43tion vL1144>/114sr o asm volatile(arn do_searchstring">dquot;psraw $4,%xmm10" L11543_search(ine43tion vL1154>/115sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm3" L11643_search(ine43tion vL1164>/116sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm11" L11743_search(ine43tion vL1174>/117sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm2" L11843_search(ine43tion vL1184>/118sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm10" L11943_search(ine43tion vL1194>/119sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm3,%xmm4" L12043_search(ine43tion vL1204>/120sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm11,%xmm12" L12143_search(ine43tion vL1214>/121sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm2,%xmm1" L12243_search(ine43tion vL1224>/122sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm10,%xmm9" L12343_search(ine43tion vL1234>/123sr o asm volatile(arn do_searchstring">dquot;pxor %xmm4,%xmm1" L12443_search(ine43tion vL1244>/124sr o asm volatile(arn do_searchstring">dquot;pxor %xmm12,%xmm9" L12543_search(ine43tion vL1254>/125sr on L12643_search(ine43tion vL1264>/126sr o arn do_searchcommen<">/* xmm1/9 = pbmul[px] */ubmit="r L12743_search(ine43tion vL1274>/127sr o asm volatile(arn do_searchstring">dquot;pxor %xmm5,%xmm1" L12843_search(ine43tion vL1284>/128sr o asm volatile(arn do_searchstring">dquot;pxor %xmm13,%xmm9" L12943_search(ine43tion vL1294>/129sr o arn do_searchcommen<">/* xmm1/9 = db = DQ */ubmit="r L13043_search(ine43tion vL1304>/130sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm1,%0"dquot;=m"dq va>[0]));n L13143_search(ine43tion vL1314>/131sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm9,%0"dquot;=m"dq va>[16]));n L13243_search(ine43tion vL1324>/132sr on L13343_search(ine43tion vL1334>/133sr o asm volatile(arn do_searchstring">dquot;pxor %xmm1,%xmm0" L13443_search(ine43tion vL1344>/134sr o asm volatile(arn do_searchstring">dquot;pxor %xmm9,%xmm8" L13543_search(ine43tion vL1354>/135sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm0,%0"dquot;=m"dp va>[0]));n L13643_search(ine43tion vL1364>/136sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm8,%0"dquot;=m"dp va>[16]));n L13743_search(ine43tion vL1374>/137sr on L13843_search(ine43tion vL1384>/138sr o atiight.p+code=bytes"o_search ght">bytes va> -= 32;n L13943_search(ine43tion vL1394>/139sr o atiight.p+code=p"o_search ght">p va> += 32;n L14043_search(ine43tion vL1404>/140sr o atiight.p+code=q"o_search ght">q va> += 32;n L14143_search(ine43tion vL1414>/141sr o atiight.p+code=dp"o_search ght">dp va> += 32;n L14243_search(ine43tion vL1424>/142sr o atiight.p+code=dq"o_search ght">dq va> += 32;n L14343_search(ine43tion vL1434>/143sr o#elsen L14443_search(ine43tion vL1444>/144sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm1"dquot;m"q va>));n L14543_search(ine43tion vL1454>/145sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm0"dquot;m"p va>));n L14643_search(ine43tion vL1464>/146sr o asm volatile(arn do_searchstring">dquot;pxor %0,%%xmm1"dquot;m"dq va>));n L14743_search(ine43tion vL1474>/147sr o asm volatile(arn do_searchstring">dquot;pxor %0,%%xmm0"dquot;m"dp va>));n L14843_search(ine43tion vL1484>/148sr on L14943_search(ine43tion vL1494>/149sr o arn do_searchcommen<">/* 1 = dq ^ qubmit="r L15043_search(ine43tion vL1504>/150sr ourn do_searchcommen<"> * 0 = dp ^ pubmit="r L15143_search(ine43tion vL1514>/151sr ourn do_searchcommen<"> */ubmit="r L15243_search(ine43tion vL1524>/152sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm4"dquot;m"qmul va>[0]));n L15343_search(ine43tion vL1534>/153sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm5"dquot;m"qmul va>[16]));n L15443_search(ine43tion vL1544>/154sr on L15543_search(ine43tion vL1554>/155sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm1,%xmm3" L15643_search(ine43tion vL1564>/156sr o asm volatile(arn do_searchstring">dquot;psraw $4,%xmm1" L15743_search(ine43tion vL1574>/157sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm3" L15843_search(ine43tion vL1584>/158sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm1" L15943_search(ine43tion vL1594>/159sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm3,%xmm4" L16043_search(ine43tion vL1604>/160sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm1,%xmm5" L16143_search(ine43tion vL1614>/161sr o asm volatile(arn do_searchstring">dquot;pxor %xmm4,%xmm5" L16243_search(ine43tion vL1624>/162sr on L16343_search(ine43tion vL1634>/163sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm0,%xmm2"/* xmm2 = px */ubmit="r L16443_search(ine43tion vL1644>/164sr on L16543_search(ine43tion vL1654>/165sr o arn do_searchcommen<">/* xmm5 = qx */ubmit="r L16643_search(ine43tion vL1664>/166sr on L16743_search(ine43tion vL1674>/167sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm4"dquot;m"pbmul va>[0]));n L16843_search(ine43tion vL1684>/168sr o asm volatile(arn do_searchstring">dquot;movdqa %0,%%xmm1"dquot;m"pbmul va>[16]));n L16943_search(ine43tion vL1694>/169sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm2,%xmm3" L17043_search(ine43tion vL1704>/170sr o asm volatile(arn do_searchstring">dquot;psraw $4,%xmm2" L17143_search(ine43tion vL1714>/171sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm3" L17243_search(ine43tion vL1724>/172sr o asm volatile(arn do_searchstring">dquot;pand %xmm7,%xmm2" L17343_search(ine43tion vL1734>/173sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm3,%xmm4" L17443_search(ine43tion vL1744>/174sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm2,%xmm1" L17543_search(ine43tion vL1754>/175sr o asm volatile(arn do_searchstring">dquot;pxor %xmm4,%xmm1" L17643_search(ine43tion vL1764>/176sr on L17743_search(ine43tion vL1774>/177sr o arn do_searchcommen<">/* xmm1 = pbmul[px] */ubmit="r L17843_search(ine43tion vL1784>/178sr o asm volatile(arn do_searchstring">dquot;pxor %xmm5,%xmm1" L17943_search(ine43tion vL1794>/179sr o arn do_searchcommen<">/* xmm1 = db = DQ */ubmit="r L18043_search(ine43tion vL1804>/180sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm1,%0"dquot;=m"dq va>));n L18143_search(ine43tion vL1814>/181sr on L18243_search(ine43tion vL1824>/182sr o asm volatile(arn do_searchstring">dquot;pxor %xmm1,%xmm0" L18343_search(ine43tion vL1834>/183sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm0,%0"dquot;=m"dp va>));n L18443_search(ine43tion vL1844>/184sr on L18543_search(ine43tion vL1854>/185sr o atiight.p+code=bytes"o_search ght">bytes va> -= 16;n L18643_search(ine43tion vL1864>/186sr o atiight.p+code=p"o_search ght">p va> += 16;n L18743_search(ine43tion vL1874>/187sr o atiight.p+code=q"o_search ght">q va> += 16;n L18843_search(ine43tion vL1884>/188sr o atiight.p+code=dp"o_search ght">dp va> += 16;n L18943_search(ine43tion vL1894>/189sr o atiight.p+code=dq"o_search ght">dq va> += 16;n L19043_search(ine43tion vL1904>/190sr o#endifn L19143_search(ine43tion vL1914>/191sr o }n L19243_search(ine43tion vL1924>/192sr on L19343_search(ine43tion vL1934>/193sr o atiight.p+code=kernel_fpu_end"o_search ght">kernel_fpu_endsr o();n L19443_search(ine43tion vL1944>/194sr o}n L19543_search(ine43tion vL1954>/195sr on L19643_search(ine43tion vL1964>/196sr on L19743_search(ine43tion vL1974>/197sr o _dapap_/span> /a> _dapap_/span> disks va>, atiight.p+code=size_t"o_search ght">size_tsr o atiight.p+code=bytes"o_search ght">bytes va>, int atiight.p+code=faila"o_search ght">faila va>,n L19843_search(ine43tion vL1984>/198sr o void **atiight.p+code=ptrs"o_search ght">ptrs va>)n L19943_search(ine43tion vL1994>/199sr o{n L20043_search(ine43tion vL2004>/200sr o atiight.p+code=u8"o_search ght">u8sr o *atiight.p+code=p"o_search ght">p va>, *atiight.p+code=q"o_search ght">q va>, *atiight.p+code=dq"o_search ght">dq va>;n L20143_search(ine43tion vL2014>/201sr o const atiight.p+code=u8"o_search ght">u8sr o *atiight.p+code=qmul"o_search ght">qmul va>; arn do_searchcommen<">/* Q multiplier table */ubmit="r L20243_search(ine43tion vL2024>/202sr o u8sr o atiight.p+code=__lligned"o_search ght">__lligned va>(16) atiight.p+code=x0f"o_search ght">x0f va>[16] = {n L20343_search(ine43tion vL2034>/203sr o 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,r L20443_search(ine43tion vL2044>/204sr o 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f};n L20543_search(ine43tion vL2054>/205sr on L20643_search(ine43tion vL2064>/206sr o atiight.p+code=p"o_search ght">p va> = (atiight.p+code=u8"o_search ght">u8sr o *)atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-2];n L20743_search(ine43tion vL2074>/207sr o atiight.p+code=q"o_search ght">q va> = (atiight.p+code=u8"o_search ght">u8sr o *)atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-1];n L20843_search(ine43tion vL2084>/208sr on L20943_search(ine43tion vL2094>/209sr o arn do_searchcommen<">/* Compute syndrome with zero for the missing dapa pageubmit="r L21043_search(ine43tion vL2104>/210sr ourn do_searchcommen<"> Use the dead dapa page am temporary orage for delpa q */ubmit="r L21143_search(ine43tion vL2114>/211sr o atiight.p+code=dq"o_search ght">dq va> = (atiight.p+code=u8"o_search ght">u8sr o *)atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=faila"o_search ght">faila va>];n L21243_search(ine43tion vL2124>/212sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=faila"o_search ght">faila va>] = (void *)atiight.p+code=/a> _empty_zero_page"o_search ght">/a> _empty_zero_page va>;n L21343_search(ine43tion vL2134>/213sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-1] = atiight.p+code=dq"o_search ght">dq va>;n L21443_search(ine43tion vL2144>/214sr on L21543_search(ine43tion vL2154>/215sr o atiight.p+code=/a> _call"o_search ght">/a> _callsr o.atiight.p+code=gen_syndrome"o_search ght">gen_syndrome va>(atiight.p+code=disks"o_search ght">disks va>, atiight.p+code=bytes"o_search ght">bytes va>, atiight.p+code=ptrs"o_search ght">ptrs /a>);n L21643_search(ine43tion vL2164>/216sr on L21743_search(ine43tion vL2174>/217sr o arn do_searchcommen<">/* Re ore pointer table */ubmit="r L21843_search(ine43tion vL2184>/218sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=faila"o_search ght">faila va>] = atiight.p+code=dq"o_search ght">dq va>;n L21943_search(ine43tion vL2194>/219sr o atiight.p+code=ptrs"o_search ght">ptrs va>[atiight.p+code=disks"o_search ght">disks va>-1] = atiight.p+code=q"o_search ght">q va>;n L22043_search(ine43tion vL2204>/220sr on L22143_search(ine43tion vL2214>/221sr o arn do_searchcommen<">/* Now, pick the proper dapa tables */ubmit="r L22243_search(ine43tion vL2224>/222sr o atiight.p+code=qmul"o_search ght">qmul va> = atiight.p+code=/a> _vgfmul"o_search ght">/a> _vgfmul va>[atiight.p+code=/a> _gfinv"o_search ght">/a> _gfinv va>[atiight.p+code=/a> _gfexp"o_search ght">/a> _gfexp va>[atiight.p+code=faila"o_search ght">faila va>]]];n L22343_search(ine43tion vL2234>/223sr on L22443_search(ine43tion vL2244>/224sr o atiight.p+code=kernel_fpu_begin"o_search ght">kernel_fpu_begin va>();n L22543_search(ine43tion vL2254>/225sr on L22643_search(ine43tion vL2264>/226sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm7"dquot;m"x0f va>[0]));n L22743_search(ine43tion vL2274>/227sr on L22843_search(ine43tion vL2284>/228sr o while (atiight.p+code=bytes"o_search ght">bytes va>) {n L22943_search(ine43tion vL2294>/229sr o#ifdef atiight.p+code=CONFIG_X86_64"o_search ght">CONFIG_X86_64sr on L23043_search(ine43tion vL2304>/230sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm3"dquot;m"dq va>[0]));n L23143_search(ine43tion vL2314>/231sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm4"dquot;m"dq va>[16]));n L23243_search(ine43tion vL2324>/232sr o asm volatile(arn do_searchstring">dquot;pxor %0, %%xmm3"dquot;m"q va>[0]));n L23343_search(ine43tion vL2334>/233sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm0"dquot;m"qmul va>[0]));n L23443_search(ine43tion vL2344>/234sr on L23543_search(ine43tion vL2354>/235sr o arn do_searchcommen<">/* xmm3 = q[0] ^ dq[0] */ubmit="r L23643_search(ine43tion vL2364>/236sr on L23743_search(ine43tion vL2374>/237sr o asm volatile(arn do_searchstring">dquot;pxor %0, %%xmm4"dquot;m"q va>[16]));n L23843_search(ine43tion vL2384>/238sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm1"dquot;m"qmul va>[16]));n L23943_search(ine43tion vL2394>/239sr on L24043_search(ine43tion vL2404>/240sr o arn do_searchcommen<">/* xmm4 = q[16] ^ dq[16] */ubmit="r L24143_search(ine43tion vL2414>/241sr on L24243_search(ine43tion vL2424>/242sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm3, %xmm6" L24343_search(ine43tion vL2434>/243sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm4, %xmm8" L24443_search(ine43tion vL2444>/244sr on L24543_search(ine43tion vL2454>/245sr o arn do_searchcommen<">/* xmm4 = xmm8 = q[16] ^ dq[16] */ubmit="r L24643_search(ine43tion vL2464>/246sr on L24743_search(ine43tion vL2474>/247sr o asm volatile(arn do_searchstring">dquot;psraw $4, %xmm3" L24843_search(ine43tion vL2484>/248sr o asm volatile(arn do_searchstring">dquot;pand %xmm7, %xmm6" L24943_search(ine43tion vL2494>/249sr o asm volatile(arn do_searchstring">dquot;pand %xmm7, %xmm3" L25043_search(ine43tion vL2504>/250sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm6, %xmm0" L25143_search(ine43tion vL2514>/251sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm3, %xmm1" L25243_search(ine43tion vL2524>/252sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm10"dquot;m"qmul va>[0]));n L25343_search(ine43tion vL2534>/253sr o asm volatile(arn do_searchstring">dquot;pxor %xmm0, %xmm1" L25443_search(ine43tion vL2544>/254sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm11"dquot;m"qmul va>[16]));n L25543_search(ine43tion vL2554>/255sr on L25643_search(ine43tion vL2564>/256sr o arn do_searchcommen<">/* xmm1 = qmul[q[0] ^ dq[0]] */ubmit="r L25743_search(ine43tion vL2574>/257sr on L25843_search(ine43tion vL2584>/258sr o asm volatile(arn do_searchstring">dquot;psraw $4, %xmm4" L25943_search(ine43tion vL2594>/259sr o asm volatile(arn do_searchstring">dquot;pand %xmm7, %xmm8" L26043_search(ine43tion vL2604>/260sr o asm volatile(arn do_searchstring">dquot;pand %xmm7, %xmm4" L26143_search(ine43tion vL2614>/261sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm8, %xmm10" L26243_search(ine43tion vL2624>/262sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm4, %xmm11" L26343_search(ine43tion vL2634>/263sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm2"dquot;m"p va>[0]));n L26443_search(ine43tion vL2644>/264sr o asm volatile(arn do_searchstring">dquot;pxor %xmm10, %xmm11" L26543_search(ine43tion vL2654>/265sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm12"dquot;m"p va>[16]));n L26643_search(ine43tion vL2664>/266sr on L26743_search(ine43tion vL2674>/267sr o arn do_searchcommen<">/* xmm11 = qmul[q[16] ^ dq[16]] */ubmit="r L26843_search(ine43tion vL2684>/268sr on L26943_search(ine43tion vL2694>/269sr o asm volatile(arn do_searchstring">dquot;pxor %xmm1, %xmm2" L27043_search(ine43tion vL2704>/270sr on L27143_search(ine43tion vL2714>/271sr o arn do_searchcommen<">/* xmm2 = p[0] ^ qmul[q[0] ^ dq[0]] */ubmit="r L27243_search(ine43tion vL2724>/272sr on L27343_search(ine43tion vL2734>/273sr o asm volatile(arn do_searchstring">dquot;pxor %xmm11, %xmm12" L27443_search(ine43tion vL2744>/274sr on L27543_search(ine43tion vL2754>/275sr o arn do_searchcommen<">/* xmm12 = p[16] ^ qmul[q[16] ^ dq[16]] */ubmit="r L27643_search(ine43tion vL2764>/276sr on L27743_search(ine43tion vL2774>/277sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm1, %0"dquot;=m"dq va>[0]));n L27843_search(ine43tion vL2784>/278sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm11, %0"dquot;=m"dq va>[16]));n L27943_search(ine43tion vL2794>/279sr on L28043_search(ine43tion vL2804>/280sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm2, %0"dquot;=m"p va>[0]));n L28143_search(ine43tion vL2814>/281sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm12, %0"dquot;=m"p va>[16]));n L28243_search(ine43tion vL2824>/282sr on L28343_search(ine43tion vL2834>/283sr o atiight.p+code=bytes"o_search ght">bytes va> -= 32;n L28443_search(ine43tion vL2844>/284sr o atiight.p+code=p"o_search ght">p va> += 32;n L28543_search(ine43tion vL2854>/285sr o atiight.p+code=q"o_search ght">q va> += 32;n L28643_search(ine43tion vL2864>/286sr o atiight.p+code=dq"o_search ght">dq va> += 32;n L28743_search(ine43tion vL2874>/287sr on L28843_search(ine43tion vL2884>/288sr o#elsen L28943_search(ine43tion vL2894>/289sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm3"dquot;m"dq va>[0]));n L29043_search(ine43tion vL2904>/290sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm0"dquot;m"qmul va>[0]));n L29143_search(ine43tion vL2914>/291sr o asm volatile(arn do_searchstring">dquot;pxor %0, %%xmm3"dquot;m"q va>[0]));n L29243_search(ine43tion vL2924>/292sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm1"dquot;m"qmul va>[16]));n L29343_search(ine43tion vL2934>/293sr on L29443_search(ine43tion vL2944>/294sr o arn do_searchcommen<">/* xmm3 = *q ^ *dq */ubmit="r L29543_search(ine43tion vL2954>/295sr on L29643_search(ine43tion vL2964>/296sr o asm volatile(arn do_searchstring">dquot;movdqa %xmm3, %xmm6" L29743_search(ine43tion vL2974>/297sr o asm volatile(arn do_searchstring">dquot;movdqa %0, %%xmm2"dquot;m"p va>[0]));n L29843_search(ine43tion vL2984>/298sr o asm volatile(arn do_searchstring">dquot;psraw $4, %xmm3" L29943_search(ine43tion vL2994>/299sr o asm volatile(arn do_searchstring">dquot;pand %xmm7, %xmm6" L30043_search(ine43tion vL3004>/300sr o asm volatile(arn do_searchstring">dquot;pand %xmm7, %xmm3" L30143_search(ine43tion vL3014>/301sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm6, %xmm0" L30243_search(ine43tion vL3024>/302sr o asm volatile(arn do_searchstring">dquot;pshufb %xmm3, %xmm1" L30343_search(ine43tion vL3034>/303sr o asm volatile(arn do_searchstring">dquot;pxor %xmm0, %xmm1" L30443_search(ine43tion vL3044>/304sr on L30543_search(ine43tion vL3054>/305sr o arn do_searchcommen<">/* xmm1 = qmul[*q ^ *dq */ubmit="r L30643_search(ine43tion vL3064>/306sr on L30743_search(ine43tion vL3074>/307sr o asm volatile(arn do_searchstring">dquot;pxor %xmm1, %xmm2" L30843_search(ine43tion vL3084>/308sr on L30943_search(ine43tion vL3094>/309sr o arn do_searchcommen<">/* xmm2 = *p ^ qmul[*q ^ *dq] */ubmit="r L31043_search(ine43tion vL3104>/310sr on L31143_search(ine43tion vL3114>/311sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm1, %0"dquot;=m"dq va>[0]));n L31243_search(ine43tion vL3124>/312sr o asm volatile(arn do_searchstring">dquot;movdqa %%xmm2, %0"dquot;=m"p va>[0]));n L31343_search(ine43tion vL3134>/313sr on L31443_search(ine43tion vL3144>/314sr o atiight.p+code=bytes"o_search ght">bytes va> -= 16;n L31543_search(ine43tion vL3154>/315sr o atiight.p+code=p"o_search ght">p va> += 16;n L31643_search(ine43tion vL3164>/316sr o atiight.p+code=q"o_search ght">q va> += 16;n L31743_search(ine43tion vL3174>/317sr o atiight.p+code=dq"o_search ght">dq va> += 16;n L31843_search(ine43tion vL3184>/318sr o#endifn L31943_search(ine43tion vL3194>/319sr o }n L32043_search(ine43tion vL3204>/320sr on L32143_search(ine43tion vL3214>/321sr o atiight.p+code=kernel_fpu_end"o_search ght">kernel_fpu_endsr o();n L32243_search(ine43tion vL3224>/322sr o}n L32343_search(ine43tion vL3234>/323sr on L32443_search(ine43tion vL3244>/324sr oconst struct atiight.p+code=/a> _/span>calls"o_search ght">/a> _/span>callssr o atiight.p+code=/a> _/span> /a> _/span> L32543_search(ine43tion vL3254>/325sr o .atiight.p+code=dapa2"o_search ght">dapa2sr o = atiight.p+code=/a> _2dapa_/span> /a> _2dapa_/span> L32643_search(ine43tion vL3264>/326sr o .atiight.p+code=dapap"o_search ght">dapapsr o = atiight.p+code=/a> _dapap_/span> /a> _dapap_/span> L32743_search(ine43tion vL3274>/327sr o .atiight.p+code=valid"o_search ght">validsr o = atiight.p+code=/a> _has> /a> _has> L32843_search(ine43tion vL3284>/328sr o#ifdef atiight.p+code=CONFIG_X86_64"o_search ght">CONFIG_X86_64sr on L32943_search(ine43tion vL3294>/329sr o .atiight.p+code=tion"o_search ght">tionsr o = arn do_searchstring">dquot; L33043_search(ine43tion vL3304>/330sr o#elsen L33143_search(ine43tion vL3314>/331sr o .atiight.p+code=tion"o_search ght">tionsr o = arn do_searchstring">dquot; L33243_search(ine43tion vL3324>/332sr o#endifn L33343_search(ine43tion vL3334>/333sr o .atiight.p+code=priority"o_search ght">prioritysr o = 1,r L33443_search(ine43tion vL3344>/334sr o};n L33543_search(ine43tion vL3354>/335sr on L33643_search(ine43tion vL3364>/336sr o#endifn L33743_search(ine43tion vL3374>/337sr o
The original LXR software by the LXR communitysr o, this experimenlxr@(inux.nosr o.
lxr.(inux.no kindly hosted by Redpill Linpro ASsr o, provider of Linux consulting and operations services since/1995.