]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/isa-l/igzip/stdmac.asm
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / isa-l / igzip / stdmac.asm
index 22f6cee1ee159130abdd9257acc5f247a973fc12..e548287851d73367bcf4df6d718b3bab82ce2d69 100644 (file)
@@ -207,6 +207,97 @@ ssc:
        ret
 %endm
 
+%macro MOVDQU  2
+%define        %%dest  %1
+%define        %%src   %2
+%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
+       vmovdqu %%dest, %%src
+%else
+       movdqu  %%dest, %%src
+%endif
+%endm
+
+%macro MOVDQA  2
+%define        %%dest  %1
+%define        %%src   %2
+%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
+       vmovdqa %%dest, %%src
+%else
+       movdqa  %%dest, %%src
+%endif
+%endm
+
+%macro MOVD    2
+%define        %%dest  %1
+%define        %%src   %2
+%if (ARCH == 02 || ARCH == 03 || ARCH == 04)
+       vmovd   %%dest, %%src
+%else
+       movd    %%dest, %%src
+%endif
+%endm
+
+%macro MOVQ    2
+%define        %%dest  %1
+%define        %%src   %2
+%if (ARCH == 02 || ARCH == 03 || ARCH == 04)
+       vmovq   %%dest, %%src
+%else
+       movq    %%dest, %%src
+%endif
+%endm
+
+;; Move register if the src and dest are not equal
+%macro MOVNIDN 2
+%define dest %1
+%define src %2
+%ifnidn dest, src
+       mov     dest, src
+%endif
+%endm
+
+%macro MOVDQANIDN 2
+%define dest %1
+%define src %2
+%ifnidn dest, src
+       MOVDQA  dest, src
+%endif
+%endm
+
+%macro PSHUFD  3
+%define        %%dest  %1
+%define %%src1 %2
+%define        %%imm8  %3
+%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
+       vpshufd %%dest, %%src1, %%imm8
+%else
+       pshufd  %%dest, %%src1, %%imm8
+%endif
+%endm
+
+%macro PSHUFB  3
+%define        %%dest  %1
+%define %%src1 %2
+%define        %%shuf  %3
+%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
+       vpshufb %%dest, %%src1, %%shuf
+%else
+       MOVDQANIDN %%dest, %%src1
+       pshufb  %%dest, %%shuf
+%endif
+%endm
+
+%macro PBROADCASTD 2
+%define %%dest %1
+%define %%src %2
+%if (ARCH == 04)
+       vpbroadcastd %%dest, %%src
+%else
+       MOVD %%dest, %%src
+       PSHUFD %%dest, %%dest, 0
+%endif
+%endm
+
 ;; Implement BZHI instruction on older architectures
 ;; Clobbers rcx, unless rcx is %%index
 %macro BZHI    4
@@ -218,16 +309,12 @@ ssc:
 %ifdef USE_HSWNI
        bzhi    %%dest, %%src, %%index
 %else
-%ifnidn        %%index, rcx
-       mov     rcx, %%index
-%endif
+       MOVNIDN rcx, %%index
        mov     %%tmp1, 1
        shl     %%tmp1, cl
        sub     %%tmp1, 1
 
-%ifnidn        %%src, %%dest
-       mov     %%dest, %%src
-%endif
+       MOVNIDN %%dest, %%src
 
        and     %%dest, %%tmp1
 %endif
@@ -243,12 +330,8 @@ ssc:
 %ifdef USE_HSWNI
        shrx    %%dest, %%src, %%index
 %else
-%ifnidn        %%index, rcx
-       mov     rcx, %%index
-%endif
-%ifnidn        %%src, %%dest
-       mov     %%dest, %%src
-%endif
+       MOVNIDN rcx, %%index
+       MOVNIDN %%dest, %%src
        shr     %%dest, cl
 %endif
 %endm
@@ -263,46 +346,12 @@ ssc:
 %ifdef USE_HSWNI
        shlx    %%dest, %%src, %%index
 %else
-%ifnidn        %%src, %%dest
-       mov     %%dest, %%src
-%endif
-%ifnidn        %%index, rcx
-       mov     rcx, %%index
-%endif
+       MOVNIDN %%dest, %%src
+       MOVNIDN rcx, %%index
        shl     %%dest, cl
 %endif
 %endm
 
-%macro MOVDQU  2
-%define        %%dest  %1
-%define        %%src   %2
-%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
-       vmovdqu %%dest, %%src
-%else
-       movdqu  %%dest, %%src
-%endif
-%endm
-
-%macro MOVD    2
-%define        %%dest  %1
-%define        %%src   %2
-%if (ARCH == 02 || ARCH == 03 || ARCH == 04)
-       vmovd   %%dest, %%src
-%else
-       movd    %%dest, %%src
-%endif
-%endm
-
-%macro MOVQ    2
-%define        %%dest  %1
-%define        %%src   %2
-%if (ARCH == 02 || ARCH == 03 || ARCH == 04)
-       vmovq   %%dest, %%src
-%else
-       movq    %%dest, %%src
-%endif
-%endm
-
 %macro PINSRD  3
 %define        %%dest  %1
 %define        %%src   %2
@@ -335,6 +384,18 @@ ssc:
 %endif
 %endm
 
+%macro PSLLD   3
+%define        %%dest  %1
+%define %%src  %2
+%define        %%offset        %3
+%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
+       vpslld  %%dest, %%src, %%offset
+%else
+       MOVDQANIDN %%dest, %%src
+       pslld   %%dest, %%offset
+%endif
+%endm
+
 %macro PAND    3
 %define        %%dest  %1
 %define        %%src1  %2
@@ -342,59 +403,66 @@ ssc:
 %if (ARCH == 02 || ARCH == 03 || ARCH == 04)
        vpand   %%dest, %%src1, %%src2
 %else
-%ifnidn        %%dest, %%src1
-       movdqa  %%dest, %%src1
-%endif
+       MOVDQANIDN %%dest, %%src1
        pand    %%dest, %%src2
 %endif
 %endm
 
-%macro PCMPEQB 3
+%macro POR     3
 %define        %%dest  %1
 %define        %%src1  %2
 %define        %%src2  %3
-%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
-       vpcmpeqb        %%dest, %%src1, %%src2
+%if (ARCH == 02 || ARCH == 03 || ARCH == 04)
+       vpor    %%dest, %%src1, %%src2
 %else
-%ifnidn        %%dest, %%src1
-       movdqa  %%dest, %%src1
-%endif
-       pcmpeqb %%dest, %%src2
+       MOVDQANIDN %%dest, %%src1
+       por     %%dest, %%src2
 %endif
 %endm
 
-%macro PMOVMSKB        2
+%macro PXOR    3
 %define        %%dest  %1
-%define        %%src   %2
+%define %%src1 %2
+%define        %%src2  %3
 %if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
-       vpmovmskb       %%dest, %%src
+       vpxor   %%dest, %%src1, %%src2
 %else
-       pmovmskb        %%dest, %%src
+       MOVDQANIDN %%dest, %%src1
+       pxor    %%dest, %%src2
 %endif
 %endm
 
-%macro PXOR    3
+%macro PADDD 3
+%define %%dest %1
+%define %%src1 %2
+%define %%src2 %3
+%if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
+       vpaddd  %%dest, %%src1, %%src2
+%else
+       MOVDQANIDN %%dest, %%src1
+       paddd   %%dest, %%src2
+%endif
+%endm
+
+%macro PCMPEQB 3
 %define        %%dest  %1
-%define %%src1 %2
+%define        %%src1  %2
 %define        %%src2  %3
 %if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
-       vpxor   %%dest, %%src1, %%src2
+       vpcmpeqb        %%dest, %%src1, %%src2
 %else
-%ifnidn        %%dest, %%src1
-       movdqa  %%dest, %%src1
-%endif
-       pxor    %%dest, %%src2
+       MOVDQANIDN %%dest, %%src1
+       pcmpeqb %%dest, %%src2
 %endif
 %endm
 
-%macro PSHUFD  3
+%macro PMOVMSKB        2
 %define        %%dest  %1
-%define %%src1 %2
-%define        %%imm8  %3
+%define        %%src   %2
 %if ((ARCH == 02) || (ARCH == 03) || (ARCH == 04))
-       vpshufd %%dest, %%src1, %%imm8
+       vpmovmskb       %%dest, %%src
 %else
-       pshufd  %%dest, %%src1, %%imm8
+       pmovmskb        %%dest, %%src
 %endif
 %endm