• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            c++初學(xué)者

            專注技術(shù)開發(fā)

            簡(jiǎn)單介紹SSE指令的功能

            ADDPS

            格式:ADDPS xmm1, xmm2/m128

            功能:兩組單精度數(shù)相加

            算法:

            DEST[31-0]   = DEST[31-0]   + SRC/m128[31-0]  ;
            DEST[63-32]  = DEST[63-32]  + SRC/m128[63-32] ;
            DEST[95-64]  = DEST[95-64]  + SRC/m128[95-64] ;
            DEST[127-96] = DEST[127-96] + SRC/m128[127-96];

            ADDSS

            格式:ADDSS xmm1, xmm2/m32

            功能:低位單精度數(shù)相加

            算法:

            DEST[31-0]   = DEST[31-0] + SRC/m32[31-0];
            DEST[63-32]  = DEST[63-32] ;
            DEST[95-64]  = DEST[95-64] ;
            DEST[127-96] = DEST[127-96];
               
            ANDNPS

            格式:ANDNPS xmm1, xmm2/m128

            功能:xmm1“取反”再和 xmm2/m128 求“與”運(yùn)算

            算法:

            DEST[127-0] = NOT (DEST[127-0]) AND SRC/m128[127-0];

            ANDPS

            格式:ANDPS xmm1, xmm2/m128

            功能:進(jìn)行兩個(gè)寄存器的邏輯“與”操作

            算法:

            DEST[127-0] AND= SRC/m128[127-0];

            CMPPS

            格式:CMPPS xmm1, xmm2/m128, imm8

            功能:比較兩個(gè)寄存器的數(shù)值,根據(jù)imm8的不同數(shù)值采用不同的比較方法

            imm8 == 0, ==; imm8 == 1,  <; imm8 == 2,  <=; imm8 == 3,  ?;
            imm8 == 4, !=; imm8 == 5, !<; imm8 == 6, !<=; imm8 == 7, !?;

            算法:

            IF     (imm8 = 0) THEN
                OP = "EQ";
            ELSEIF (imm8 = 1) THEN
                OP = "LT";
            ELSEIF (imm8 = 2) THEN
                OP = "LE";
            ELSEIF (imm8 = 3) THEN
                OP = "UNORD";
            ELSEIF (imm8 = 4) THEN
                OP = "NE";
            ELSEIF (imm8 = 5) THEN
                OP = "NLT";
            ELSEIF (imm8 = 6) THEN
                OP = "NLE";
            ELSEIF (imm8 = 7) THEN
                OP = "ORD";
            FI

            CMP0 = DEST[31-0]   OP SRC/m128[31-0];
            CMP1 = DEST[63-32]  OP SRC/m128[63-32];
            CMP2 = DEST [95-64] OP SRC/m128[95-64];
            CMP3 = DEST[127-96] OP SRC/m128[127-96];

            IF (CMP0 = TRUE) THEN
                DEST[31-0] = 0XFFFFFFFF;
            ELSE
                DEST[31-0] = 0X00000000;
            FI
            IF (CMP1 = TRUE) THEN
                DEST[63-32] = 0XFFFFFFFF;
            ELSE
                DEST[63-32] = 0X00000000;
            FI
            IF (CMP2 = TRUE) THEN
                DEST[95-64] = 0XFFFFFFFF;
            ELSE
                DEST[95-64] = 0X00000000;
            FI
            IF (CMP3 = TRUE) THEN
                DEST[127-96] = 0XFFFFFFFF;
            ELSE
                DEST[127-96] = 0X00000000;
            FI

            其它:你可以使用下面的可讀性良好的指令

            指令                        實(shí)現(xiàn)
            CMPEQPS    xmm1, xmm2;     CMPPS xmm1,xmm2, 0
            CMPLTPS    xmm1, xmm2;     CMPPS xmm1,xmm2, 1
            CMPLEPS    xmm1, xmm2;     CMPPS xmm1,xmm2, 2
            CMPUNORDPS xmm1, xmm2;     CMPPS xmm1,xmm2, 3
            CMPNEQPS   xmm1, xmm2;     CMPPS xmm1,xmm2, 4
            CMPNLTPS   xmm1, xmm2;     CMPPS xmm1,xmm2, 5
            CMPNLEPS   xmm1, xmm2;     CMPPS xmm1,xmm2, 6
            CMPORDPS   xmm1, xmm2;     CMPPS xmm1,xmm2, 7

            CMPSS

            格式:CMPSS xmm1, xmm2/m32, imm8

            功能:低位單精度數(shù)做比較

            算法:算法同CMPPS相似,只不過(guò)只是針對(duì)DEST[31-0]進(jìn)行操作。

            同樣也可以利用可讀性更好的指令

            指令                        實(shí)現(xiàn)
            CMPEQSS    xmm1, xmm2       CMPSS xmm1,xmm2, 0
            CMPLTSS    xmm1, xmm2       CMPSS xmm1,xmm2, 1
            CMPLESS    xmm1, xmm2       CMPSS xmm1,xmm2, 2
            CMPUNORDSS xmm1, xmm2       CMPSS xmm1,xmm2, 3
            CMPNEQSS   xmm1, xmm2       CMPSS xmm1,xmm2, 4
            CMPNLTSS   xmm1, xmm2       CMPSS xmm1,xmm2, 5
            CMPNLESS   xmm1, xmm2       CMPSS xmm1,xmm2, 6
            CMPORDSS   xmm1, xmm2       CMPSS xmm1,xmm2, 7

            COMISS

            格式:COMISS xmm1, xmm2/m32

            功能:比較低位數(shù)并且設(shè)置標(biāo)識(shí)位

            算法:

            OF = 0;
            SF = 0;
            AF = 0;
            IF     ((DEST[31-0] UNORD SRC/m32[31-0]) = TRUE) THEN
                ZF = 1;
                PF = 1;
                CF = 1;
            ELSEIF ((DEST[31-0] GTRTHAN SRC/m32[31-0]) = TRUE)THEN
                ZF = 0;
                PF = 0;
                CF = 0;
            ELSEIF ((DEST[31-0] LESSTHAN SRC/m32[31-0]) = TRUE THEN
                ZF = 0;
                PF = 0;
                CF = 1;
            ELSE
                ZF = 1;
                PF = 0;
                CF = 0;
            FI

            CVTPI2PS

            格式:CVTPI2PS xmm, mm/m64

            功能:32位整數(shù)轉(zhuǎn)變?yōu)楦↑c(diǎn)數(shù)

            算法:

            DEST[31-0]   = (float) (SRC/m64[31-0]) ;
            DEST[63-32]  = (float) (SRC/m64[63-32]);
            DEST[95-64]  = DEST[95-64] ;
            DEST[127-96] = DEST[127-96];
            CVTPS2PI

            格式:CVTPS2PI mm, xmm/m64

            功能:低位的兩個(gè)浮點(diǎn)數(shù)轉(zhuǎn)變?yōu)檎麛?shù)

            算法:

            DEST[31-0] = (int) (SRC/m64[31-0]);
            DEST[63-32]= (int) (SRC/m64[63-32]);

            CVTSI2SS

            格式:CVTSI2SS xmm, r/m32

            功能:32位整數(shù)轉(zhuǎn)變?yōu)楦↑c(diǎn)數(shù),存入低位

            算法:

            DEST[31-0]   = (float) (R/m32);
            DEST[63-32]  = DEST[63-32] ;
            DEST[95-64]  = DEST[95-64] ;
            DEST[127-96] = DEST[127-96];

            CVTSS2SI

            格式:CVTSS2SI r32, xmm/m32

            功能:低位的浮點(diǎn)數(shù)轉(zhuǎn)變?yōu)?2位整數(shù)

            算法:

            r32 = (int) (SRC/m32[31-0]);

            CVTTPS2PI

            格式:CVTTPS2PI mm, xmm/m64

            功能:低位的兩個(gè)浮點(diǎn)數(shù)轉(zhuǎn)變?yōu)檎麛?shù),并且舍位

            算法:

            DEST[31-0]  = (int) (SRC/m64[31-0]) ;
            DEST[63-32] = (int) (SRC/m64[63-32]);

            CVTTSS2SI

            格式:CVTTSS2SI r32, xmm/ m32

            功能:將最低位浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù),并舍位。

            算法:

            r32 = (INT) (SRC/m32[31-0]);

            DIVPS

            格式:DIVPS xmm1, xmm2/m128

            功能:?jiǎn)尉葦?shù)除法運(yùn)算

            算法:

            DEST[31-0]   = DEST[31-0]   / (SRC/m128[31-0])  ;
            DEST[63-32]  = DEST[63-32]  / (SRC/m128[63-32]) ;
            DEST[95-64]  = DEST[95-64]  / (SRC/m128[95-64]) ;
            DEST[127-96] = DEST[127-96] / (SRC/m128[127-96]);

            DIVSS

            格式:DIVSS xmm1, xmm2/m32

            功能:低位單精度數(shù)除法

            算法:

            DEST[31-0]   = DEST[31-0] / (SRC/m32[31-0]);
            DEST[63-32]  = DEST[63-32] ;
            DEST[95-64]  = DEST[95-64] ;
            DEST[127-96] = DEST[127-96];

            EMMS

            格式:EMMS

            功能:將浮點(diǎn)標(biāo)識(shí)字置空

            算法:

            FPUTagWord <- FFFF

            FXRSTOR

            格式:FXRSTOR m512byte

            功能:從m512byte中裝入FP,MMX,以及SSE的狀態(tài)

            算法:

            FP and MMX state and Streaming SIMD Extension state = m512byte;

            FXSAVE

            格式:FXSAVE m512byte

            功能:向m512byte中存入FP,MMX,以及SSE的狀態(tài)

            算法:

            m512byte = FP and MMX state and Streaming SIMD Extension state;

            LDMXCSR

            格式:LDMXCSR m32

            功能:裝入SSE的狀態(tài)控制字

            算法:

            MXCSR = m32;

            MAXPS

            格式:MAXPS xmm1, xmm2/m128

            功能:返回最大值

            算法:

            IF (DEST[31-0]=NaN) THEN
                DEST[31-0] = SRC[31-0];
            ELSEIF (SRC[31-0] = NaN) THEN
                DEST[31-0] = SRC[31-0];
            ELSEIF (DEST[31-0] > SRC/m128[31-0]) THEN
                DEST[31-0] = DEST[31-0];
            ELSE
                DEST[31-0] = SRC/m128[31-0];
            FI
            IF (DEST[63-32]=NaN) THEN
                DEST[63-32] = SRC[63-32];
            ELSEIF (SRC[63-32] = NaN) THEN
                DEST[63-32] = SRC[63-32];
            ELSEIF (DEST[63-32] > SRC/m128[63-32]) THEN
                DEST[63-32] = DEST[63-32];
            ELSE
                DEST[63-32] = SRC/m128[63-32];
            FI
            IF (DEST[95-64]=NaN) THEN
                DEST[95-64] = SRC[95-64];
            ELSEIF (SRC[95-64] = NaN) THEN
                DEST[95-64] = SRC[95-64];
            ELSEIF (DEST[95-64] > SRC/m128[95-64]) THEN
                DEST[95-64] = DEST[95-64];
            ELSE
                DEST[95-64] = SRC/m128[95-64];
            FI
            IF (DEST[127-96]=NaN) THEN
                DEST[127-96] = SRC[127-96];
            ELSEIF (SRC[127-96] = NaN) THEN
                DEST[127-96] = SRC[127-96];
            ELSEIF (DEST[127-96] > SRC/m128[127-96]) THEN
                DEST[127-96] = DEST[127-96];
            ELSE
                DEST[127-96] = SRC/m128[127-96];
            FI

            MAXSS

            格式:MAXSS xmm1, xmm2/m32

            功能:返回低位最大值

            算法:同上面類似,區(qū)別在于只對(duì)DEST[31-0]進(jìn)行操作

            MINPS

            格式:MINPS xmm1, xmm2/m128

            功能:返回最小值

            算法:略

            MINSS

            格式:MINSS xmm1, xmm2/m32

            功能:返回低位最小值

            算法:略

            MOVAPS

            格式:MOVAPS xmm1, xmm2/m128 或 MOVAPS xmm2/m128, xmm1

            功能:對(duì)齊的數(shù)據(jù)傳輸指令

            算法:

            IF (destination = DEST) THEN
                IF (SRC = m128)THEN (* load instruction *)
                    DEST[127-0] = m128;
                ELSE(* move instruction *)
                    DEST[127=0] = SRC[127-0];
                FI;
            ELSE
                IF (destination = m128)THEN (* store instruction *)
                    m128 = SRC[127-0];
                ELSE(* move instruction *)
                    DEST[127-0] = SRC[127-0];
                FI;
            FI;
               
            MOVHLPS

            格式:MOVHLPS xmm1, xmm2

            功能:高位的兩個(gè)數(shù)傳向低位

            算法:

            DEST[127-64] = DEST[127-64];
            DEST[63-0]   = SRC[127-64] ;

            MOVHPS

            格式:MOVHPS xmm, m64 或 MOVHPS m64, xmm

            功能:高位數(shù)據(jù)傳輸指令

            算法:

            IF (destination = DEST) THEN(* load instruction *)
                DEST[127-64] = m64;
                DEST[31-0] = DEST[31-0];
                DEST[63-32] = DEST[63-32];
                ELSE (* store instruction *)
                m64 = SRC[127-64];
            FI;
               
            MOVLPS

            格式:MOVLPS xmm, m64 或 MOVLPS m64, xmm

            功能:低位數(shù)據(jù)傳輸指令

            算法:

            IF (destination = DEST) THEN(* load instruction *)
                DEST[63-0] = m64;
                DEST[95-64] = DEST[95-64];
                DEST[127-96] = DEST[127-96];
            ELSE(* store instruction *)
                m64 = DEST[63-0];
            FI
               
            MOVLHPS

            格式:MOVLHPS xmm1, xmm2

            功能:低位的兩個(gè)數(shù)傳向高位

            算法:

            DEST[127-64] = SRC[63-0];
            DEST[63-0]   = DEST[63-0];

            MOVMSKPS

            格式:MOVMSKPS r32, xmm

            功能:掩碼移入32位寄存器

            算法:

            r32[0]     = SRC[31] ;
            r32[1]     = SRC[63] ;
            r32[2]     = SRC[95] ;
            r32[3]     = SRC[127];
            r32[7-4]   = 0X0     ;
            r32[15-8]  = 0X00    ;
            r32[31-16] = 0X0000  ;

            MOVNTPS

            格式:MOVNTPS m128, xmm

            功能:將數(shù)據(jù)直接存入內(nèi)存,減小對(duì)緩存的壓力

            算法:

            m128 = SRC;

            MOVSS

            格式:MOVSS xmm1, xmm2/m32 或 MOVSS xmm2/m32, xmm1

            功能:最低位數(shù)據(jù)的傳輸指令

            算法:

            IF (destination = DEST) THEN
                IF (SRC == m32) THEN(* load instruction *)
                    DEST[31-0] = m32;
                    DEST [63-32] = 0X00000000;
                    DEST [95-64] = 0X00000000;
                    DEST [127-96] = 0X00000000;
                ELSE(* move instruction *)
                    DEST [31-0] = SRC[31-0];
                    DEST [63-32] = DEST [63-32];
                    DEST [95-64] = DEST [95-64];
                    DEST [127-96] = DEST [127-96];
                FI
            ELSE
                IF (destination = m32) THEN(* store instruction *)
                    m32 = SRC[31-0];
                ELSE (* move instruction *)
                    DEST [31-0] = SRC[31-0]
                    DEST [63-32] = DEST[63-32];
                    DEST [95-64] = DEST [95-64];
                    DEST [127-96] = DEST [127-96];
                FI
            FI

            MOVUPS

            格式:MOVUPS xmm1, xmm2/m128 或 MOVUPS xmm2/m128, xmm1

            功能:非對(duì)齊數(shù)據(jù)的傳輸指令

            算法:

            IF (destination = xmm) THEN
                IF (SRC = m128)THEN(* load instruction *)
                    DEST[127-0] = m128;
                ELSE (* move instruction *)
                    DEST[127-0] = SRC[127-0];
                FI
            ELSE
                IF (destination = m128) THEN(* store instruction *)
                    m128 = SRC[127-0];
                ELSE (* move instruction *)
                    DEST[127-0] = SRC[127-0];
                FI
            FI

            MULPS

            格式:MULPS xmm1, xmm2/m128

            功能:?jiǎn)尉葦?shù)相乘

            算法:

            DEST[31-0]   = DEST[31-0]   * SRC/m128[31-0]  ;
            DEST[63-32]  = DEST[63-32]  * SRC/m128[63-32] ;
            DEST[95-64]  = DEST[95-64]  * SRC/m128[95-64] ;
            DEST[127-96] = DEST[127-96] * SRC/m128[127-96];

            MULSS

            格式:MULSS xmm1, xmm2/m32

            功能:最低位的單精度數(shù)相乘

            算法:

            DEST[31-0]   = DEST[31-0] * SRC/m32[31-0];
            DEST[63-32]  = DEST[63-32] ;
            DEST[95-64]  = DEST[95-64] ;
            DEST[127-96] = DEST[127-96];

            ORPS

            格式:ORPS xmm1, xmm2/m128

            功能:求或運(yùn)算

            算法:

            DEST[127-0] |= SRC/m128[127-0];
            RCPPS

            格式:RCPPS xmm1, xmm2/m128

            功能:求倒數(shù)的近似值

            算法:

            DEST[31-0]   = APPROX (1.0/(SRC/m128[31-0]))  ;
            DEST[63-32]  = APPROX (1.0/(SRC/m128[63-32])) ;
            DEST[95-64]  = APPROX (1.0/(SRC/m128[95-64])) ;
            DEST[127-96] = APPROX (1.0/(SRC/m128[127-96]));

            RCPSS

            格式:RCPSS xmm1, xmm2/m32

            功能:求最低位的倒數(shù)的近似值

            算法:

            DEST[31-0]   = APPROX (1.0/(SRC/m32[31-0]));
            DEST[63-32]  = DEST[63-32] ;
            DEST[95-64]  = DEST[95-64] ;
            DEST[127-96] = DEST[127-96];

            RSQRTPS

            格式:RSQRTPS xmm1, xmm2/m128

            功能:求倒數(shù)平方根的近似值

            算法:

            DEST[31-0] = APPROX (1.0/SQRT(SRC/m128[31-0]))    ;
            DEST[63-32] = APPROX (1.0/SQRT(SRC/m128[63-32]))  ;
            DEST[95-64] = APPROX (1.0/SQRT(SRC/m128[95-64]))  ;
            DEST[127-96] = APPROX (1.0/SQRT(SRC/m128[127-96]));

            RSQRTSS

            格式:RSQRTSS xmm1, xmm2/m32

            功能:求最低位倒數(shù)平方根的近似值

            算法:

            DEST[31-0]   = APPROX (1.0/SQRT(SRC/m32[31-0]));
            DEST[63-32]  = DEST[63-32] ;
            DEST[95-64]  = DEST[95-64] ;
            DEST[127-96] = DEST[127-96];

            SHUFPS

            格式:SHUFPS xmm1, xmm2/m128, imm8

            功能:打亂順序

            算法:

            FP_SELECT = (imm8 >> 0) AND 0X3;
            IF (FP_SELECT = 0) THEN
                DEST[31-0] = DEST[31-0];
            ELSEIF (FP_SELECT = 1) THEN
                DEST[31-0] = DEST[63-32];
            ELSEIF (FP_SELECT = 2) THEN
                DEST[31-0] = DEST[95-64];
            ELSE
                DEST[31-0] = DEST[127-96];
            FI

            FP_SELECT = (imm8 >> 2) AND 0X3;
            IF (FP_SELECT = 0) THEN
                DEST[63-32] = DEST[31-0];
            ELSEIF (FP_SELECT = 1) THEN
                DEST[63-32] = DEST[63-32];
            ELSEIF (FP_SELECT = 2) THEN
                DEST[63-32] = DEST[95-64];
            ELSE
                DEST[63-32] = DEST[127-96];
            FI

            FP_SELECT = (imm8 >> 4) AND 0X3;
            IF (FP_SELECT = 0) THEN
                DEST[95-64] = SRC/m128[31-0];
            ELSEIF (FP_SELECT = 1) THEN
                DEST[95-64] = SRC/m128 [63-32];
            ELSEIF (FP_SELECT = 2) THEN
                DEST[95-64] = SRC/m128 [95-64];
            ELSE
                DEST[95-64] = SRC/m128 [127-96];
            FI

            FP_SELECT = (imm8 >> 6) AND 0X3;
            IF (FP_SELECT = 0) THEN
                DEST[127-96] = SRC/m128 [31-0];
            ELSEIF (FP_SELECT = 1) THEN
                DEST[127-96] = SRC/m128 [63-32];
            ELSEIF (FP_SELECT = 2) THEN
                DEST[127-96] = SRC/m128 [95-64];
            ELSE
                DEST[127-96] = SRC/m128 [127-96];
            FI

            SQRTPS

            格式:SQRTPS xmm1, xmm2/m128

            功能:求平方根

            算法:

            DEST[31-0]   = SQRT (SRC/m128[31-0] );
            DEST[63-32]  = SQRT (SRC/m128[63-32]);
            DEST[95-64]  = SQRT (SRC/m128[95-64]);
            DEST[127-96] = SQRT (SRC/m128[127-96]);

            SQRTSS

            格式:SQRTSS xmm1, xmm2/m32

            功能:最低位數(shù)求平方根

            算法:

            DEST[31-0]   = SQRT (SRC/m32[31-0]);
            DEST[63-32]  = DEST[63-32];
            DEST[95-64]  = DEST[95-64];
            DEST[127-96] = DEST[127-96];

            STMXCSR

            格式:STMXCSR m32

            功能:存儲(chǔ)SSE控制字

            算法:

            m32 = MXCSR;

            SUBPS

            格式:SUBPS xmm1, xmm2/m128

            功能:?jiǎn)尉葦?shù)的減法運(yùn)算

            算法:

            DEST[31-0]   = DEST[31-0]   - SRC/m128[31-0] ;
            DEST[63-32]  = DEST[63-32]  - SRC/m128[63-32];
            DEST[95-64]  = DEST[95-64]  - SRC/m128[95-64];
            DEST[127-96] = DEST[127-96] - SRC/m128[127-96];

            SUBSS

            格式:SUBSS xmm1, xmm2/m32

            功能:最低位數(shù)相減

            算法:

            DEST[31-0] = DEST[31-0] - SRC/m32[31-0];
            DEST[63-32] = DEST[63-32];
            DEST[95-64] = DEST[95-64];
            DEST[127-96] = DEST[127-96];

            UCOMISS

            格式:UCOMISS xmm1, xmm2/m32

            功能:比較低位數(shù)并且設(shè)置標(biāo)志位

            算法:

            OF = 0;
            SF = 0;
            AF = 0;
            IF ((DEST[31-0] UNORD SRC/m32[31-0]) = TRUE) THEN
                ZF = 1;
                PF = 1;
                CF = 1;
            ELSEIF ((DEST[31-0] GTRTHAN SRC/m32[31-0]) = TRUE)THEN
                ZF = 0;
                PF = 0;
                CF = 0;
            ELSEIF ((DEST[31-0] LESSTHAN SRC/m32[31-0]) = TRUE THEN
                ZF = 0;
                PF = 0;
                CF = 1;
            ELSE
                ZF = 1;
                PF = 0;
                CF = 0;
            FI

            UNPCKHPS

            格式:UNPCKHPS xmm1, xmm2/m128

            功能:高位兩數(shù)交替?zhèn)鬏?br>
            算法:

            DEST[31-0] = DEST[95-64];
            DEST[63-32] = SRC/m128[95-64];
            DEST[95-64] = DEST[127-96];
            DEST[127-96] = SRC/m128[127-96];

            UNPCKLPS

            格式:UNPCKLPS xmm1, xmm2/m128

            功能:低位兩數(shù)交替?zhèn)鬏?br>
            算法:

            DEST[31-0] = DEST[31-0];
            DEST[63-32] = SRC/m128[31-0];
            DEST[95-64] = DEST[63-32];
            DEST[127-96] = SRC/m128[63-32];

            XORPS

            格式:XORPS xmm1, xmm2/m128

            功能:異或運(yùn)算

            算法:

            DEST[127-0] = DEST/m128[127-0] XOR SRC/m128[127-0]

            posted on 2008-09-02 18:17 大海 閱讀(1374) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 匯編語(yǔ)言

            97久久婷婷五月综合色d啪蜜芽 | 成人综合久久精品色婷婷| 精品久久久久香蕉网| 国产三级久久久精品麻豆三级| 久久精品99无色码中文字幕| 久久青青草原精品影院| 99精品久久精品一区二区| 狠狠色丁香久久综合婷婷| 久久久久亚洲精品无码网址| 囯产精品久久久久久久久蜜桃 | 亚洲AV乱码久久精品蜜桃| 久久综合国产乱子伦精品免费| 久久久久久久综合狠狠综合| 久久久久99精品成人片试看| 狠狠久久综合| 久久久无码精品亚洲日韩按摩 | 中文字幕无码久久精品青草| 久久AV高潮AV无码AV| 成人精品一区二区久久久| 99久久夜色精品国产网站| 亚洲午夜久久久久久久久久| 男女久久久国产一区二区三区| 囯产极品美女高潮无套久久久 | 综合久久精品色| 日日噜噜夜夜狠狠久久丁香五月| 久久无码中文字幕东京热| 色欲av伊人久久大香线蕉影院| 亚洲精品美女久久777777| 色综合久久中文色婷婷| 亚洲一级Av无码毛片久久精品| 三级三级久久三级久久| 美女写真久久影院| 97精品依人久久久大香线蕉97| 久久久亚洲裙底偷窥综合| 久久99国产精品久久99| 久久天天躁夜夜躁狠狠躁2022 | 久久国产热这里只有精品| 亚洲伊人久久大香线蕉综合图片| 天天爽天天狠久久久综合麻豆| 久久人人爽人人爽人人片av高请| 国产精品久久久久久吹潮|