日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux内核支持浮点吗,【转】Linux内核浮点计算支持

發布時間:2025/3/21 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核支持浮点吗,【转】Linux内核浮点计算支持 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00000000 __divdf3

references this function??? ??? ??? ??? ??? // 這里有調用__divdf3地址

So what is happening is that, gcc replaced the expression (arg1/arg2) by a call to __divdf3 function which is supposed to carry out the floating point division using integer arithmetic. Why did gcc do that ? and not generate actual assembly instructions to do floating point divide.

這里出現了什么情況呢,gcc使用一個對__divdf3的函數調用代替了(arg1/arg2)這個原本可能引發浮點數除法的函數調用,gcc為什么要這么做,而不是直接產生浮點數除法的匯編代碼?

This is because, the module code was compiled with -msoft-float gcc option, which instructs gcc to not generate floating point assembly instructions and instead generate calls to the glibc s/w floating point emulation functions. -msoft-float is useful when compiling programs for platforms that do not have hardware floating point support. Nothing is wrong with this. Infact if you compile an equivalent user program with -msoft-float, it should work (pls read note below)

這是因為,這個模塊在編譯的時候加入了 -msoft-float 的gcc選項,這個選項使得gcc不直接產生浮點運算的匯編代碼而是通過產生glibc中的s/w模擬浮點運算的函數調用來實現浮點數運算. -msoft-float在當前的運行平臺沒有浮點數運算硬件支持的時候,非常的有用.

P.S. Actually it depends on whether your glibc is compiled with software floating point emulation support. Usually x86 based default glibc distributions come w/o soft floating point emulation, as almost all x86 platforms have h/w floating point support. If h/w floating point support is present, it is preferred because of its speed and the fact that it puts less load on the CPU (for applications with extensive floating point usage, f.e. sone gaming applications or CAD design applications etc).

P.S. 事實上,是否使用硬件計算浮點數運算取決于你的glibc是否使用軟件浮點數模擬編譯出來的.通常x86基礎的默認glibc版本帶有w/o軟件浮點計算模擬器,同時幾乎所有的x86平臺都有h/w浮點數支持.如果h/w浮點數支持存在,那么優先選擇硬件的浮點數運算器件,因為時間開銷更小,同時會減少CPU的負荷.

You can use the following command to see if your glibc distribution has software floating point emulation support

# ldd /bin/ls | grep libc | awk '{print $3}' | xargs readlink -f | xargs nm -D | grep __divdf3

下面命令可以察看你自己的glibc版本是否有軟件的浮點數模擬器.

I believe the reason why default glibc does not come with soft float support enabled, is to prevent applications from accidentally using soft float. Otherwise if some application is unintentionally compiled with -msoft-float, the user will never know and the application will be using the inefficient soft float, even though h/w float support is available :-( So, till now we know the following things :

1. Linux kernel (and all its modules) are compiled with -msoft-float gcc option (to know why, read on)

2. Linux kernel (and all its modules) are _not_ linked with glibc and hence we do not have access to soft floating point emulation functions (like __divdf3).

3. Linux kernel itself does not provide its own implementation of __divdf3 (and other soft floating point functions).

我相信默認的glibc沒有軟件浮點數運算器主要是防止應用程序偶然的使用軟浮點數運算.或者可能是如果某些軟件沒有顯示的使用 -msoft-float選項編譯,那么用戶就不會知道了解到當前的這個應用程序使用了低效率的浮點數運算方式.現在我們知道,

1 linux內核以及它所有模塊在編譯階段都有-msoft-float選項

2 linux內核以及他所有模塊沒有和gblic鏈接,所以我們不能直接訪問軟件浮點數模擬器

3 Linux內核沒有提供自己的浮點數運算實現方法)

The above explains why we get the error while compiling and loading the module, but the inquisitive of us will still be having few questions. Lets try to find answers to those questions. What is floating point and how is it handled ?Before we get into the main topic of the discussion, i.e. the state of floating point support in Linux, and the reasons behind that, lets take a quick look at what it takes to support floating point operations.

以上的解釋是針對在編譯和載入模塊的時候產生的錯誤,但是我們的好奇使得我們還有幾個未解決的問題.什么是浮點數以及如何handled?

Floating point usage is not very common. So much so that x86 designers did not make the floating point unit (the CPU real estate needed for floating point operations) part of the original CPU. In-fact floating point instructions were supported by a special coprocessor. For the 8086 this was called 8087. Similarly for other 80×86 processors the corresponding floating point coprocessor was called 80×87. Till the 80386 processor, this coprocessor came as a separate chip which used to sit alongside the main CPU and all the floating point calculations were directed to it, which then could use its floating point unit (FPU) to do the calculations and pass the result back to the main processor. Starting 80486, the FPU was integrated with the main CPU, but still the FPU was a logically separate unit, i.e. it used a separate register set to load/store the floating point values and it used a different ALU for carrying out the floating point calculations.

浮點數運算很不普遍.以至于x86設計者讓浮點運算部件成為CPU的部件.事實上,浮點運算指令由一個特殊的協處理器支持.8086中,這個協處理器叫8087.其他的x86結構的處理器,對應的部件都是x87.直到80386處理器,這個協處理器作為一個單獨芯片,位于CPU旁邊并且所有的浮點數運算都會發送到這個協處理器芯片上,使用協處理器的運算部件進行運算,并將結果傳回給CPU.從80486開始,FPU(Floating Process Unit)被整合進主CPU,但是同時FPU是一個邏輯獨立的部件.例如,它使用一個獨立的寄存器來輸入數據傳出結果,使用與CPU不同的ALU來進行浮點運算.

The reason for keeping the FPU separate is twofold.

1. floating point operations are very rarely used, and

2. floating point operations are expensive.

This design has a very important impact on how floating point is handled in the present operating systems. Had the floating point support been native to a processor, just like the integer support, then it would not be treated any differently and we would use them just like we use the integer operations. This blog would not exist !

保留FPU的獨立的原因主要分為兩點:

1 浮點運算很少使用

2 浮點運算相對開銷較大

這種設計方式有一個很重要的方面是,如何當前操作系統中的處理浮點運算.假使在本地的CPU就有浮點運算支持,那么就如同對待整數運算一樣,沒有什么不同的,那么也就不會有這篇文章存在了.

In this article, wherever necessary, we will take the x87 FPU as an example, but all this should apply to any other processor and its corresponding FPU.

我們在本文中將以x87FPU作為例子,但是通用于其他FPU.

Other ways of handling floating point

其他的處理浮點運算的辦法

What we just discussed above is called the hardware floating point support, as the floating point operations are handled in the hardware. Since the FPU is separate from the processor there is a possibility that we do not have the FPU in a certain system. Note that this does not apply to modern x86 based systems since FPU comes on the same die as the main processor, so if you buy the processor, you get the FPU also. Other architectures, especially those used for embedded system design, might still make the FPU as an add-on for cost reasons. In such cases, where the FPU is not present in the system and we need to still do a few floating point calculations, we have the following options.

上面討論的是浮點運行的硬件支持.由于FPU被從CPU中獨立出來,所以在特定系統中可能會沒有FPU(這條不適用于現代x86處理器系統,現在的CPU基本上都有FPU).在非x86體系下,尤其是有些被用于嵌入式系統的體系中,可能仍然把FPU作為一個附加的東西.在這樣條件下,如果沒有FPU,我們還需要做一些浮點運算,那么我們還有下面這寫選擇.

1??? Do not use floating point

Instead use the fixed point arithmetic using integer operations. This can be used if our floating point usage is not much and we do not need very high precision. Also, every application does it in its own way leading to lots of inconsitencies and possible errors.

1 不用浮點運算

使用整數操作的定點運算來代替浮點運算.當你的浮點運算不太多,而且不需要太高精度的時候,可以采用.

2??? Use a floating point emulation library

The application program written in high-level language uses the floating point operations asis, but the compiler, instead of generating floating point instructions for them, generates calls to the floating point emulation functions. These emulation functions are provided by some library, against which the program is then linked. The GNU C Library glibc also comes with support for floating point emulation. Note that the default glibc distribution might not have the floating point emultion (FPE) support, but glibc has a configure option using which we can compile glibc with FPE support.

2 使用浮點運算模擬庫

如果一個應用程序需要使用浮點運算操作,此時編譯器不生成浮點運算指令,而是調用浮點運算模擬函數.這些函數由某些庫提供,同時要鏈接進去.GNU C庫的glibc提供浮點運算模擬.默認的glibc是沒有浮點運算模擬支持的,但是在編譯配置的時候可以編譯生成浮點運算模擬支持(FPE Float Prcess Emulation)

This needs support from the compiler, as it has to identify floating point operations and generate FPE calls for them. Usually compilers provide some commandline option for this.gcc provides the -msoft-float option for this purpose. This is not the default and w/o this option gcc generates floating point instructions.

這種方法需要編譯器支持,編譯器來決定哪些操作產生FPE調用.通常編譯器會提供某些選項, 類似gcc的 -msoft-float,達到這個目的.

3??? Kernel floating point emulation

If we need to emulate floating point operations and we want to hide it from the applications, we can have the kernel emulate them. This can be kept completely transparent from the applications and they won’t even know if the underlying processor has a h/w FPU or not, but for the slowness that it might cause.

3 內核浮點數模擬

如果我們需要模擬浮點數操作,并且我們想對應用程序隱藏實現,我們可以使用內核來模擬.這種方法可以對應用程序完全隱藏當前浮點數的實現方法,但是會有性能損失.

This is implemented by the CPU generating an exception every time it encounters a floating point instruction, and the kernel exception handler then emulating the instruction using integer arithmetic.

這種方法的實現是:在每次碰到浮點數運算指令時,CPU產生異常,此時CPU捕獲異常同時使用整數運算來模擬浮點數指令功能.

For this we need support from the CPU, i.e. it should generate an exception on encountering a floating point instruction. x86 processors provide this support by means of an Emulation bit(bit #2 in CR0 register). If the h/w FPU is not present then this bit will be set. When theEmulation bit (abbreviated as EM) is set, the x86 CPU will raise the Device Not Available(#NM) exception every single time it encounters a floating point instruction. A Linux kernelcompiled with floating point emulation support, will then handle the emulation inside theexception handler, and the application will run seamlessly. If the Linux kernel is notcompiled with FPE support, it raises SIGFPE to the application.

達到這種目的需要CPU的支持,CPU能夠在遇到浮點運算指令的時候產生異常.x86的處理器提供這種支持是通過一個模擬位 Emulation bit(CR0寄存器的第二位).如果h/wFPU沒有,那么這個bit就會被置1.當Emulation bit被設置之后,x86的CPU在碰到浮點運算的指令時就會發出Device Not Available的異常.Linux內核在編譯過程中加入了對模擬器支持,會處理這個異常,應用程序會正常運行.如果Linux內核編譯時候沒有加入FPE支持,則會發送SIGFPE信號給應用程序.

The Floating Point ContextFloating point unit, uses its own set of registers for doing the floating point arithmetic, f.e. thex87 FPU (coprocessor unit for x86 processor) uses the following registers for floating pointarithmetic

* 8 data registers (ST0-ST7)??? ??? ??? 8個數據寄存器

* The status register??? ??? ??? ??? 狀態寄存器

* The control register??? ??? ??? ??? 控制寄存器

* The tag word register??? ??? ??? ??? tag寄存器

* The last instruction point register??? ??? 最后一條指令的寄存器

* Last data (operand) pointer register??? ??? 最后一個數據寄存器指針寄存器

* Opcode register??? ??? ??? ??? 運算寄存器

浮點數運算部件的上下文,(在做浮點運算過程中)使用自己的寄存器.

These are registers used specifically for floating point arithmetic and are completely separate from the native x86 registers used for integer arithmetic. These constitute the floating point context of the CPU. This (apart from the native processor context) need to be saved/restored with each process context switch. This seems like a big price to pay :-(

這些寄存器僅限于進行浮點運算中,完全獨立于本地x86的整數寄存器.這些寄存器構成了浮點運算的CPU上下文.每次process上下文切換的時候,需要保存恢復,可能需要比較大的開銷.

Cheer up ! we have a smart way to handle this. Read on ...

go on...

Because floating point usage is not very common (infact many times a process will not execute any floating point instruction in its whole quantum) and because floating point registers are so large and plentiful, it does not make sense to save and restore floating point registers on every context switch.

由于浮點運算本身不是很普遍,而且浮點寄存器相對比較大比較充足,所以就沒有必要在每次進行上下文切換的時候進行保存恢復了.

Most of the times this save/restore effort will be wasted, as the registers would not have been dirtied. x86 designers were smart enough to think about this beforehand and hence they added a bit in the CR0 register which can be used by the operating system to do this save/restore efficiently, i.e. floating point registers are saved at context switch out time, only if the going-out process executed some floating point instruction in that quantum, hence modifying the CPU FP registers. Similarly, the floating point registers are restored only when the process wants to execute some floating point instruction, hence needing the FP registers.

大多數情況下,保存回復都沒有作用,由于寄存器沒有變成dirty. x86設計者聰明的考慮了這點,所以他們在CR0中加入了1bit讓操作系統來決定是否進行保存回復操作.類似的,浮點寄存器只有在當前進程需要進行執行浮點操作的時候,才會進行保存回復操作,所以需要FP寄存器.

I was referring to the Task Switched bit (bit #3) in the CR0 register. As the name implies, the processor sets this bit on every task switch. Pls note that since Linux does not use the CPU provided task switching facility, but instead does the task switch by hand, Linux has to set the TS bit explicitly as part of the task switch. Irrespective of how the TS bit is set, its significance is that when this bit is set the CPU generates a Device Not Available (#NM) exception, when a floating point instruction is executed (for the TS bit to have effect the EM bit should be cleared, else irrespective of the TS bit the CPU raises the #NM exception for every floating point instruction). This one feature provided by the CPU can be used by the OS to do efficient context switches involving floating point context.

CR0的第三個bit,Task Switched bit. 如其名字所示,處理器在每次任務切換的時候設置這個bit. Linux沒有使用CPU提供的任務切換的便利,而是手工做的人物切換.Linux需要自己去社這TS bit作為進程切換的部分. 無論TS bit是如何進行設置的,它都意味著當這個bit被設置時,CPU產生一個Device Not Available的異常,或者在一個浮點數指令要執行的時候會產生一個Device Not Available. 這個由CPU提供的特性可以被OS用于有效的進行浮點數運算的上下文切換.

How ?

怎么做到的

Lets look at how Linux uses this to do intelligent save and restore of FP registers. Lets first see how and when is the TS bit set in the CR0 register, since if the TS bit is not set, the Device Not Available (#NM) exception will not be generated and we won’t be notified of floating point instruction execution.

首先看下什么時候,TS bit(CRO寄存器中保存)怎么被設置的.如果TS bit沒有設置,Device Not Available的異常不會產生,我們也無法在碰到浮點運算的時候得到通知.

The TS bit is set from cpu_init() initially, so that the first process that runs a floating point instruction causes the Device Not Available (#NM) exception. TS bit is then cleared from the Device Not Available (#NM) exception handler, so that no further floating point instructions executing from the current process, in its current quantum, cause the Device Not Available (#NM) exception. The TS bit is then set again when the current process is scheduled out. so that the new process executing a floating point instruction also causes the Device Not Available (#NM) exception. This is done from the context switch-out path — __switch_to()->__unlazy_fpu().

TS bit在cpu_init()中初始化,這樣第一個進程運行浮點運算的時候就會產生Device Not Available異常. TS bit在Device Not Available處理函數中被清理掉,這樣可以接受下面的浮點運算的異常發出. TS bit在當前的進程被調度出的時候再度設置,這樣在新的進程運行浮點指令的時候,同樣會產生Device Not Available異常. 這個步驟

In short, the Linux kernel wants to be notified of (and only) the first floating point instruction that a process executes in a quantum. It then takes appropriate action to restore the floating point state of that process. This ensures that the floating point state of a process is restored (i.e. saved FP state of the process loaded on to the CPU FP state) only (and only) when the process executes at least one floating point instruction. If a process does not execute any floating point instruction in a certain quantum, there is no need to restore the saved floating point state of that process. Also, since the saved FPU state of the current process did not change, we need not save the FPU state when this process is switched out. In such case the CPU FPU state remains the same as it was before the current process started running and if that corresponds to the next-to-run process’ FPU state, we need not even restore its FPU state, as the CPU’s FPU is already has that state. What this means is that if a process does not execute any floating point instruction in a certain quantum, we neither restore nor save the floating point context of that process. So we incur the FP context save/restore overhead when really required :-)

簡要說,Linux內核希望在第一次浮點運算指令的時候被通知到. 然后內核會采取合理的行為保存這個進程的浮點運算的狀態. 當進程執行僅僅至少一條浮點運算指令的時候,保證此進程浮點運算的狀態被保留.如果進程不執行任何浮點運算指令,沒有必要保存回復浮點運算的狀態.同樣,因為保存了進程的FPU狀態,我們就無需在進程換出的時候保存FPU狀態了. 在這種情況下,CPU FPU狀態會一直保留之前的狀態,如果對應的下一個進程的FPU狀態一致的話,就無需再恢復FPU狀態. 總的來說就是,如果當前進程沒有執行任何浮點運算指令,那么我們既不會保存也不會回復浮點運算上下文.只有在真正需要浮點運算的阿時候哦,才回進行FP的上下文的回復保存操作.

Kernel function math_state_restore() is at the heart of all this. It is called from the Device

Not Available (#NM) exception handler, which as we saw before, is called when the TS bit is

set and some floating point instruction is executed.

math_state_restore()函數完成上述邏輯,此函數在Device Not Available處理中調用,只有在TS bit設置并且某些浮點運算指令被執行的時候才會被調用.

asmlinkage void math_state_restore(void)

{

...

clts();

// we do not want to be called again in this process quantum

/*

* Now that we are going to use the FPU load this process' FPU state in the FPU

*/

if (unlikely(restore_fpu_checking(tsk))) {

stts();

force_sig(SIGSEGV, tsk);

return;

}

thread->status |= TS_USEDFPU; // so that __switch_to->unlazy_fpu can save the FP state of this process

}

...

clts() clears the TS bit as we do not want to be called for all floating point instructions, just the first one. It marks the TS_USEDFPU bit in the current process’ thread->status field. This bit is later checked by the context switch-out code to decide whether to save the FP registers as part of the scheduled out task’s context. Thus Linux kernel ensures that it saves the FP context for a process only if that process executes at least one floating point instruction in its last quantum, hence changing its already saved FPU state. This is the conditional save.

當只相應第一次的浮點運算指令時候,clts()函數清理TS bit.***.這個bit稍后會在進程上下文換出的時候用到,用來決定手否存儲FP寄存器到進程上下文.內核保證,如果當前進程至少執行過一次浮點數運算指令,那么就為此進程保存FP寄存器,并且改變進程保存了的FPU的狀態.

This is about the save optimization. The restore optimization is also present in the math_state_restore() function shown above. Note that, unlike other integer registers, we do not restore the FPU state unconditionally from the context switch-in code. Instead the FP restore is done from the math_state_restore() function, which signifies that the process has executed some floating point instruction, and hence it is necessary to restore the FP state of the process. As we see the floating point state is restored not at the context switch-in time. but just before the process is going to use the floating point state. This is called the lazy restore.

***.內核并不會無條件從還如的上下文中恢復FPU的狀態.如果FP在math_state_restore()函數中被處理,表明當前的process會有浮點指令,因此有必要將FP狀態恢復.

Using floating point in kernel

內核中使用浮點運算

We learnt how Linux uses conditional save and lazy restore techniques to allow application programs to use the hardware floating point support while avoiding the unnecessary overhead of saving/restoring the FP context on every context switch (even when not required). The assumption in the above discussion is that the only way the FP state of the CPU can change is by the application executing floating point instructions. It assumes that the kernel code will not modify the FP state of the CPU. This effectively means that the kernel code cannot use floating point instructions.

Well.. to be more precise, we cannot use floating point operations in the kernel just like that.

在kernel中也可以使用浮點運算

We have to follow some discipline. The good news is that the Linux kernel developers have made it very easy to use floating point operations inside the kernel. You just need to surround the floating point code with kernel_fpu_begin() and kernel_fpu_end() and you can safely use floating point operations in the kernel code.

kernel使用浮點運算 主要是用 kernel_fpu_begin()和kernel_fpu_end()包圍,就可以安全使用浮點操作在kernel代碼中(這里用法有點類似臨界區代碼)

So what magic do these two functions do. Note how the Linux kernel had solved the problem of avoiding unneeded save and restore of FP context when scheduling in/out the user processes. In short the Linux kernel does the following

這個使用方法:

* It sets the TS bit in the CR0 register, before a new process can start execution. This is so that the CPU raises the Device Not Available (#NM) exception when that process runs its first floating point instruction. The kernel can then do the lazy restore of the floating point context of the process.

在一個新的進程啟動的時候,兩個函數設置TS bit(CR0中的一bit).在進程第一執行浮點數運算的時候,可使得CPU可發出Device Not Available異常.

* From the Device Not Available (#NM) exception handler, it sets the TS_USEDFPU flag in the thread->status field. This can then be used by the context switch out code to conditionally save the floating point state of this process.

在Device Not Available異常的處理函數中,它設置TS_USEDFPU標志在thread->status項目中.這樣做使得進程上下文切換的時候,當前浮點運算的狀態可以有條件的寫入到進程中去.

If we treat the kernel mode also like another process (i.e. something that is capable of changing the FP state of the CPU), we can extend the above logic to allow kernel to use floating point operations safely. This is exactly what kernel_fpu_begin() and kernel_fpu_end() do.

可以設想內核態是另外一個進程,我們擴展上面的邏輯方式使得進程可以使用浮點運算.

static inline void kernel_fpu_begin(void)

{

struct thread_info *me = current_thread_info();

preempt_disable();

if (me->status & TS_USEDFPU)

__save_init_fpu(me->task);

else

clts();

}

static inline void kernel_fpu_end(void)

{

stts();

preempt_enable();

}

So if you want to use some floating point operations in the kernel, which can change the FP state of the CPU, we need to first save the FP state of the current process (__save_init_fpu() does that), but only if the current process was doing some floating point operations (me->status & TS_USEDFPU). Then we need to clear the TS bit, so that the CPU does not raise the Device Not Available (#NM) exception anymore.

如果你想在kernel中使用浮點運算(會改變FP的狀態),那么首先需要將當前的FP狀態寫入到正在運行的進程的狀態中去(當前進程需要有浮點數運算).然后清楚TS bit,使得cpu不會發送 Device Not Available 異常.

Once the kernel is done with the floating point operations, it can call kernel_fpu_end() which again sets the TS bit. This causes the Device Not Available (#NM) exception when a new process runs some floating point operations and hence we need to restore its floating point state (since the kernel modified the CPU FP state).

一旦kernel做完了浮點運算,它可以調用kernel_fpu_end(),這個函數會重新設置TS bit.CPU重新回復對 Device Not Available 異常的相應處理,同時需要將進程的浮點運算狀態恢復.

kernel_fpu_begin() and kernel_fpu_end() make sense only if you are using the hardware floating point support in the kernel. For this you will have to compile the kernel (or the module) with -mhard-float option.

kernel_fpu_begin() and kernel_fpu_end()保證了CPU可以使用浮點運算的硬件.在編譯內核或者模塊的時候需要加入 -mhard-float的選項

One more important thing to keep in mind is that while we are inside kernel_fpu_begin() and kernel_fpu_end() we should not sleep. This is because while we are modifying the CPU FP state, we do not want anyother context to use that FP state.

當Kernel運行在kernel_fpu_begin() 和 kernel_fpu_end()之間的時候,不能使用sleep.

總結

以上是生活随笔為你收集整理的linux内核支持浮点吗,【转】Linux内核浮点计算支持的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

在线观看免费视频你懂的 | 久久五月婷婷丁香社区 | 日韩成人精品一区二区三区 | 色在线亚洲 | 亚洲粉嫩av | 日韩在线免费观看视频 | 国产在线久久久 | 日韩一区二区久久 | 一区在线观看 | av中文字幕在线免费观看 | 久草99 | 国产视频一区在线免费观看 | 五月婷婷色丁香 | 亚洲高清在线 | av免费在线观 | 正在播放亚洲精品 | 亚洲电影影音先锋 | 久久精品2| 草免费视频 | 免费观看黄色12片一级视频 | 在线播放91 | 91麻豆高清视频 | 丁香免费视频 | 三级黄色免费 | 在线观看日本高清mv视频 | 午夜狠狠干 | 亚洲精品免费在线观看 | 日日干激情五月 | 国产一级片播放 | 日韩精品2区 | 国内精品视频久久 | 国产精品嫩草影院123 | 香蕉影视在线观看 | 国产亚洲精品美女久久 | 毛片永久新网址首页 | 精品美女久久久久久免费 | 久久艹中文字幕 | 国产精品美女视频网站 | 一级精品视频在线观看宜春院 | 国产a网站 | 狠狠躁夜夜a产精品视频 | 97色在线 | 四虎国产精品成人免费4hu | 久久久久久久久免费视频 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 深爱婷婷 | 毛片一二区 | 国产精品久久久久久久婷婷 | 欧美性色网站 | 国产精品 日韩 欧美 | 免费观看性生交大片3 | 91麻豆精品一区二区三区 | 亚洲国产精品va在线看黑人动漫 | 91在线中字 | 精品国产乱码一区二区三区在线 | 麻豆国产精品视频 | 青青河边草观看完整版高清 | 韩国一区二区在线观看 | 中文字幕在线网址 | av片在线观看| 夜添久久精品亚洲国产精品 | 人人天天夜夜 | 六月丁香激情网 | 五月婷婷一区二区三区 | av成人在线看 | 国产精品久久久久久久久久妇女 | 香蕉视频国产在线观看 | 中文字幕在线播放日韩 | 欧美亚洲国产日韩 | 久久国产日韩 | 毛片无卡免费无播放器 | 色噜噜噜噜 | av韩国在线 | 国产精品女 | 亚洲黄色区 | 亚洲观看黄色网 | 婷色在线 | 极品嫩模被强到高潮呻吟91 | 成人久久精品视频 | 久久精品国产成人 | 激情一区二区三区欧美 | 96精品视频| 91色一区二区三区 | 激情影院在线观看 | 特级黄色视频毛片 | 久久国产影院 | 91看片在线免费观看 | 亚洲三级精品 | 亚洲国产影院av久久久久 | 国产黄免费在线观看 | 久久久久高清毛片一级 | 日日夜夜精品免费 | 久久福利电影 | 国产精品ssss在线亚洲 | 久久精品日本啪啪涩涩 | 免费黄av | 欧洲视频一区 | 国产成人精品一区二区三区 | 果冻av在线 | 亚洲成人av在线播放 | 国产黄在线 | 久久视影 | 国产精品高清在线观看 | 国产精品免费一区二区三区在线观看 | 亚洲高清视频在线观看 | 三级黄色片在线观看 | 久久伦理电影网 | 久久久九色精品国产一区二区三区 | 国产在线视频导航 | a成人v在线 | 久久tv视频| 日韩成人精品一区二区三区 | 中国一级片在线播放 | 国产精品高清一区二区三区 | 久久躁日日躁aaaaxxxx | 99久久国产免费,99久久国产免费大片 | 国产 日韩 在线 亚洲 字幕 中文 | 伊人资源视频在线 | 免费在线成人av电影 | 成年人在线免费视频观看 | 国产精品美女久久久久久网站 | 91tv国产成人福利 | 视频在线播放国产 | av日韩在线网站 | 欧美性大战久久久久 | 91精品视频免费看 | 国产成人精品一区二区在线 | 国产综合婷婷 | 免费观看成人av | 久久久久久久久久久网站 | 亚洲精品午夜久久久 | 国产 一区二区三区 在线 | 亚洲视屏 | 毛片网站在线观看 | 色婷婷亚洲综合 | 中文字幕一区二区三区在线观看 | 国产大片免费久久 | 综合久久久久久 | 91精品在线观看视频 | 久草视频在线免费 | 久久国产女人 | 午夜久久久精品 | 欧美日韩视频网站 | 久久99国产精品久久99 | 免费在线观看日韩欧美 | 欧美性色综合网 | 国产99久久 | 亚洲va欧美va人人爽春色影视 | 国产亚洲综合在线 | 日韩成人精品一区二区 | 欧美天堂视频在线 | 激情综合国产 | 精品国产电影一区 | 91av原创| 亚洲最新在线视频 | 婷婷丁香激情综合 | 久久精品影视 | 国产一级片一区二区三区 | 91porny九色在线播放 | 日本三级在线观看中文字 | 91精品综合在线观看 | 精品国产电影一区二区 | 天天色天天干天天色 | 精品久久久久久久久久久久 | 中文字幕你懂的 | 中文字幕欧美日韩va免费视频 | 97色se | 成年人在线免费视频观看 | 亚洲精品在线观看视频 | 国产成人不卡 | 美女视频黄,久久 | 成人中文字幕+乱码+中文字幕 | 亚洲精品国产精品国自产 | 在线观看日韩av | 999精品网 | 亚洲激情在线观看 | 精品久久久久国产 | 在线视频1卡二卡三卡 | 婷婷丁香在线观看 | 国产激情电影综合在线看 | 丁香婷婷色月天 | 国产精品免费久久久久影院仙踪林 | 肉色欧美久久久久久久免费看 | 日韩视频免费看 | 欧美日韩不卡一区二区三区 | 国产在线色视频 | 在线国产91| 成人午夜电影久久影院 | 91 在线视频播放 | 丁香婷婷久久久综合精品国产 | 国产亚洲日本 | 色婷婷综合五月 | 欧美疯狂性受xxxxx另类 | 国产精品一区二区果冻传媒 | 美腿丝袜一区二区三区 | av一本久道久久波多野结衣 | 亚洲精品一区二区三区在线观看 | 天天操天天爽天天干 | 麻豆视频免费在线 | 激情久久一区二区三区 | 成人动态视频 | 一区二区三区高清在线 | 中文字幕电影网 | 国产亚洲欧美在线视频 | a成人在线 | 一级黄色电影网站 | 992tv又爽又黄的免费视频 | 国产专区欧美专区 | 9999在线| 久久综合影音 | 久久久999| 五月婷网站 | 午夜久久成人 | 国产精品久久久久久久久久久久 | 91禁在线看 | 亚洲国产精品va在线看黑人动漫 | 男女日麻批 | 一区二区三区在线免费观看 | 在线观看91精品视频 | 九九视频免费观看视频精品 | 免费在线观看av不卡 | 中文字幕久久精品亚洲乱码 | 久久久蜜桃一区二区 | 欧美日韩精品在线观看 | 92精品国产成人观看免费 | 中文字幕在线观看免费观看 | 久久综合婷婷国产二区高清 | 亚洲视频一区二区三区在线观看 | 一级黄色在线免费观看 | 欧美粗又大 | 亚洲欧美视频在线播放 | 91女子私密保健养生少妇 | 精品国产乱码久久久久 | 国产精品亚洲a | 黄色在线观看www | 不卡中文字幕av | 国产又粗又硬又爽的视频 | 精品久久久久久电影 | 中文字幕av最新更新 | 国产黄免费 | 免费视频黄色 | 亚洲精品在线观看中文字幕 | av免费观看高清 | 欧美成年人在线视频 | 在线观看免费视频你懂的 | 成人免费电影 | 国产福利免费看 | 亚洲精品男人天堂 | 黄污视频大全 | 国产福利不卡视频 | 中日韩在线 | 香蕉精品视频在线观看 | 人人射| 国产精品免费观看视频 | 成人在线黄色电影 | 亚洲成人黄| 久久精品99北条麻妃 | 亚洲区精品视频 | 波多野结衣综合网 | 国产精品久久久久久久久毛片 | 啪啪肉肉污av国网站 | 日韩色在线观看 | 欧美一区二区三区在线 | 日韩精品视频在线观看网址 | 精品少妇一区二区三区在线 | 免费看三级网站 | 999久久国精品免费观看网站 | 精品a级片| 国产午夜免费视频 | 黄污网站在线观看 | 国产黄色美女 | 香蕉一区 | 亚洲精品在线播放视频 | 国产精品日韩精品 | 91精品黄色| 欧美成人a在线 | 日韩免费一区二区三区 | 精品主播网红福利资源观看 | 91精品国产91 | 久久久国产一区二区三区 | 欧美精品一区二区在线播放 | 天天操夜夜做 | 亚洲日本在线一区 | 高清一区二区三区 | 久久一区二| 2023年中文无字幕文字 | 麻豆免费视频观看 | 精品超碰 | 成人xxxx| 国产成人综合精品 | 色婷婷久久久 | 91综合久久一区二区 | 精品国产一区二区三区久久久 | 日韩一区二区三区在线观看 | 人人澡超碰碰97碰碰碰软件 | 精品婷婷| 欧美三级高清 | 国产精品嫩草影院123 | 中文字幕在线观看完整版电影 | 天天人人 | 国产不卡视频在线播放 | 久久午夜影院 | 午夜影院一级 | 欧美精品视 | 国产精品理论视频 | 日韩av专区| 成人app在线免费观看 | 成x99人av在线www | 亚洲天堂精品 | 国产一区二区精品在线 | 成人黄在线 | 成人午夜剧场在线观看 | 在线电影91 | 日韩av综合网站 | 国产成人一区三区 | 国产免费又粗又猛又爽 | 国产又粗又硬又爽的视频 | 日韩有码中文字幕在线 | 欧美另类交在线观看 | 国产精品99久久久久久有的能看 | 99热精品免费观看 | 在线观看免费av网 | www.天天干| 国产欧美日韩一区 | 一区二区三区 中文字幕 | 麻豆91视频 | 免费看一级黄色大全 | 免费观看一级一片 | 九月婷婷色 | 欧美性视频网站 | 人人操日日干 | 人人干免费 | 国产黄网在线 | 狠狠狠色丁香综合久久天下网 | 天天射天天操天天色 | av电影免费在线看 | 一本一本久久a久久精品综合小说 | 中文字幕日韩国产 | 狠狠狠干 | 综合色在线观看 | 国产精品久久久久久久久久久久午 | 女人18精品一区二区三区 | 午夜视频在线观看一区二区三区 | 国产91探花| 日韩网站免费观看 | 色偷偷男人的天堂av | 亚洲 欧美 精品 | 91中文字幕在线 | 国产精品18久久久久久久 | 91欧美视频网站 | 精品一区在线看 | 欧美va天堂在线电影 | 亚洲精品中文在线资源 | 深夜免费福利 | 免费在线观看的av网站 | 成人一区二区在线观看 | 久久高清片 | 午夜美女福利 | 天天干天天天 | 在线 你懂 | 国产在线观看免费av | 极品美女被弄高潮视频网站 | 国产成人精品一区二区三区免费 | 91麻豆精品国产午夜天堂 | 免费在线观看黄网站 | 91精品啪在线观看国产81旧版 | 成人禁用看黄a在线 | 偷拍精品一区二区三区 | 国产又粗又硬又爽视频 | 在线观看视频一区二区三区 | 国产精品久久久久aaaa | 久久精品视频观看 | 国产精品国产三级在线专区 | 成人片在线播放 | 人成午夜视频 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 在线高清一区 | 国产精品www| 免费黄色看片 | 伊人www22综合色 | 四虎海外影库www4hu | 国产婷婷| 欧美另类视频 | 97视频免费观看 | 69视频在线 | 婷婷激情网站 | 91精品国| 日韩免费看片 | 九九久久久 | 婷婷五月情 | 欧美黄色特级片 | 香蕉在线影院 | 成人免费看电影 | 欧美大片在线观看一区 | 欧美精品乱码久久久久 | 99r在线播放 | 久草在线免费在线观看 | 久久精品一区二区三区中文字幕 | 国产精品美女久久久久久久久久久 | 国产精品久久久久久a | 国产美女无遮挡永久免费 | 久久激情视频网 | 在线观看久久 | 99精品免费观看 | 丁香九月婷婷综合 | 日本在线观看视频一区 | 久久久免费播放 | 国产97视频 | 亚洲欧美视频网站 | 黄色影院在线免费观看 | 中文字幕国产视频 | www.久久免费| 91黄色在线视频 | 久久亚洲视频 | 国产在线观看91 | 特级黄色视频毛片 | 一区二区三区在线视频111 | 久久久夜色 | 日本少妇高清做爰视频 | 久久久久在线观看 | 99久久毛片 | 麻豆影视在线免费观看 | 欧美精品久久天天躁 | 日韩免费网站 | 日韩午夜av | 久草在线视频中文 | 欧美一级高清片 | 国产亚洲婷婷 | 亚洲一区日韩在线 | 久久综合久久八八 | 91精品中文字幕 | 人人精久 | 视频一区二区视频 | 日韩精品一区二区在线观看视频 | 国产精品私人影院 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 日韩欧美在线观看一区 | 色播六月天 | 国产在线毛片 | 奇米影音四色 | 亚洲一区二区精品在线 | 国产亚洲精品久久久久久电影 | 成人午夜剧场在线观看 | 91中文在线观看 | 国产精品亚洲a | 三上悠亚一区二区在线观看 | 91精品在线观看视频 | 亚洲精品午夜一区人人爽 | 成人黄色片免费 | 国产精品久久久久影院 | 99免费在线播放99久久免费 | 美女视频黄是免费的 | 午夜精品一区二区三区可下载 | 美女久久久久久久 | 久久久久女人精品毛片九一 | 美女网站色 | 日韩免费一区二区在线观看 | 美女免费电影 | 国产精品亚洲片在线播放 | 激情狠狠干 | 日日操日日操 | 蜜臀久久99精品久久久酒店新书 | 亚洲精品在线观看视频 | 亚洲激情婷婷 | 少妇自拍av | 亚洲精品自拍 | 99精品在线视频播放 | 丁香六月五月婷婷 | 婷婷六月天丁香 | 久久久一本精品99久久精品 | 午夜精品一区二区三区在线 | 免费人成网 | 亚洲精品国产区 | 国产一区精品在线观看 | 国产一区二区手机在线观看 | 午夜av在线免费 | 精品久久久久久国产 | 国产一级精品绿帽视频 | 美女免费视频黄 | 中文字幕在线视频第一页 | 激情五月婷婷激情 | 色综合久久久久综合体 | 久久九九精品久久 | 日韩精品一区二区在线观看视频 | 日韩综合第一页 | 国产小视频免费观看 | 91视频亚洲 | 最新国产精品视频 | 国产一区二区三区免费在线 | 欧美精品一区二区三区四区在线 | 色欧美88888久久久久久影院 | 日韩av电影手机在线观看 | 国产不卡在线观看视频 | 婷婷午夜激情 | 美女激情影院 | 黄色av播放 | 色综合久久中文字幕综合网 | www.色的| 亚洲爱av| 久久久免费观看 | 色综合天天综合在线视频 | 香蕉视频91 | 91精品久久久久久久99蜜桃 | 久久综合偷偷噜噜噜色 | 日韩午夜在线观看 | 在线免费高清一区二区三区 | 嫩小bbbb摸bbb摸bbb | 精品久久久久久久久久岛国gif | 欧美另类交人妖 | 日日夜夜人人天天 | 日本中文乱码卡一卡二新区 | 27xxoo无遮挡动态视频 | 十八岁以下禁止观看的1000个网站 | 99国产一区二区三精品乱码 | 久久美女高清视频 | 日韩一级片网址 | 人人干人人超 | 日韩久久精品一区 | 免费观看黄 | 一级片免费在线 | 久久久精品免费看 | av电影在线播放 | 久久精品9| 91热这里只有精品 | 色婷婷av一区 | 久久精品久久精品 | 91高清在线 | 91久久久久久久 | 人人看人人草 | 欧美久久综合 | 中文字幕日韩高清 | 精品国产一区二区三区av性色 | 国产成人99av超碰超爽 | 福利电影一区二区 | 国产一区电影在线观看 | 91黄色免费看| 欧美日韩国产精品一区二区 | 久久久 激情| 国产高清视频免费 | 亚洲午夜激情网 | 久久久久久麻豆 | 日本夜夜草视频网站 | 欧美精品做受xxx性少妇 | 在线观看91视频 | 综合伊人av | 国产成人精品一区二区 | 一区二区三区免费在线观看视频 | 日韩一区二区三区高清在线观看 | 人人擦 | 丁香免费视频 | 毛片视频电影 | 亚洲一区日韩 | 欧美在线视频免费 | 免费精品视频在线 | 色婷婷av国产精品 | 亚州精品天堂中文字幕 | 深爱开心激情网 | 天天干一干 | 免费在线观看av网站 | 激情视频在线观看网址 | av 一区二区三区四区 | 伊人导航 | 91精品国产自产在线观看永久 | 中文超碰字幕 | 成人一级视频在线观看 | 日韩欧美在线第一页 | 国产亚洲激情视频在线 | 一区二区中文字幕在线 | 久久这里 | www.日日日.com | 最新在线你懂的 | 天天色棕合合合合合合 | 丁香综合 | 国产黄色在线看 | 五月婷婷在线视频 | 狠狠色婷婷丁香六月 | 九九九免费视频 | 国产伦精品一区二区三区… | 国产精品毛片一区视频播不卡 | 五月综合网| 国产精品久久电影网 | 日韩一区二区三区免费电影 | 综合黄色网 | 色噜噜狠狠色综合中国 | 久久成人在线视频 | 三级av网站| 免费的国产精品 | 久久久久久国产精品999 | 精品在线观看视频 | 亚洲 欧美 91| 中文字幕888 | 操一草 | 日韩久久久久久久久久 | 在线91色| 五月天综合婷婷 | 欧美激情视频一区二区三区 | 99re8这里有精品热视频免费 | 特级黄色电影 | 91资源在线 | 久久国内精品视频 | 久久久国产精品成人免费 | 亚洲一区在线看 | 久久99热精品这里久久精品 | 免费精品在线视频 | 91精品久久久久久综合五月天 | 成人蜜桃视频 | 韩国三级在线一区 | 夜色资源站国产www在线视频 | 亚洲 综合 激情 | 国产精品亚洲人在线观看 | 一区二区三区国产欧美 | 久久久久亚洲国产 | 中文在线免费看视频 | 亚洲三级毛片 | 国产视频1区2区3区 久久夜视频 | 亚洲黄色免费在线看 | 精品国产成人在线影院 | 97超碰国产精品女人人人爽 | 欧美一区二区三区免费看 | 天躁狠狠躁 | 蜜臀av一区二区 | 天天干天天做天天爱 | 91精品国产网站 | 亚洲理论电影网 | 国产资源精品在线观看 | 青草草在线 | 免费看精品久久片 | 欧美日韩国产综合一区二区 | 欧美日产一区 | 丁香久久久 | 国产91九色蝌蚪 | 99精品乱码国产在线观看 | a√天堂资源 | 成人毛片100免费观看 | 亚洲精品永久免费视频 | 六月丁香综合 | 九九免费精品 | 国产剧情在线一区 | 69国产精品成人在线播放 | 亚洲精品中文在线资源 | 国产一区欧美日韩 | 久久综合狠狠综合久久狠狠色综合 | 日韩精品一卡 | 国产一级片毛片 | 国产精品成人一区二区三区 | 精品在线小视频 | 亚洲午夜精品一区二区三区电影院 | 黄网站www| 福利一区在线视频 | 成年人在线免费视频观看 | 欧美国产不卡 | 日韩欧美综合在线视频 | 国产不卡片 | 亚洲女人天堂成人av在线 | 韩国三级av在线 | 主播av在线 | 黄网站色视频 | 亚洲精品女人久久久 | 黄色免费大片 | 久久久久久久久久久国产精品 | 久久综合亚洲鲁鲁五月久久 | 高潮久久久久久 | 婷婷久久国产 | 日韩精品一区二区在线观看视频 | 六月色丁| 99精品国产在热久久下载 | 九九热免费在线视频 | 草久电影| 久久婷婷精品 | 日韩精品在线视频免费观看 | 国产又粗又猛又色又黄网站 | 国产美女视频一区 | 91九色成人蝌蚪首页 | 91在线播| 欧美在线资源 | 99精品视频一区二区 | 日本激情动作片免费看 | 天天操夜夜操 | 亚洲精品中文在线观看 | 草久在线观看视频 | 成人资源网 | 国产精品久久久久久久久久99 | 国产精品99免视看9 国产精品毛片一区视频 | 在线成人性视频 | 国产一区在线免费观看视频 | 免费久久精品视频 | 日韩在线大片 | 中文字幕乱码日本亚洲一区二区 | 超碰97国产在线 | 日韩国产精品一区 | 国产日产精品一区二区三区四区的观看方式 | 奇米网网址 | 欧美色图亚洲图片 | 天天艹天天 | 日韩欧美视频免费看 | 黄污网站在线 | 成人在线网站观看 | 在线观看成人网 | 国产黄色片免费观看 | 最新亚洲视频 | 久久精品亚洲综合专区 | 国产精品 亚洲精品 | 欧美久久成人 | 丝袜制服综合网 | 日女人免费视频 | 欧美日在线观看 | 91视频88av| 国产精品美女在线观看 | 福利视频入口 | 日韩欧美国产视频 | 奇米先锋 | 天天精品视频 | 天天插天天爱 | 久久99九九99精品 | 黄色av网站在线免费观看 | 99国产情侣在线播放 | 国产一区二区在线免费播放 | 亚洲三级视频 | 黄色av免费电影 | www.99久久.com| 69精品 | 色a在线观看 | 91在线最新 | 国产日本在线播放 | 亚洲精品在线观看免费 | av天天在线观看 | 涩涩网站在线看 | 五月天激情电影 | 国产精品久久久影视 | 亚洲va欧美va人人爽春色影视 | 国产美腿白丝袜足在线av | 日韩精品免费一区二区 | 日韩69av | 最新av观看 | 日韩精选在线观看 | 日韩影视大全 | 日韩欧美视频免费在线观看 | 国产一级淫片免费看 | 欧美一级黄大片 | 91精品国产三级a在线观看 | 婷婷开心久久网 | 九九视频热 | av中文在线影视 | 日日草夜夜操 | 亚洲午夜久久久久 | 久草免费色站 | 国产精品一区一区三区 | 精品国偷自产国产一区 | 日韩高清毛片 | 日韩欧美精品在线 | 精品美女在线视频 | 97人人超 | 免费一级黄色 | av大全在线观看 | 天天久久夜夜 | 亚洲精品系列 | 97碰在线 | 国产精品区一区 | 成人网页在线免费观看 | 久久综合精品国产一区二区三区 | 久久视频这里有精品 | 国产福利资源 | 欧美日韩国产二区 | 亚洲狠狠婷婷 | 色婷婷视频 | 国产在线播放不卡 | 久热香蕉视频 | 色在线观看网站 | 高清中文字幕av | 波多野结衣动态图 | 99精品视频免费在线观看 | 国产精品18久久久久久久久久久久 | 日韩欧美在线观看一区二区三区 | 国产精品涩涩屋www在线观看 | 国产五月色婷婷六月丁香视频 | 成人av免费播放 | 国产99爱 | 狠狠干中文字幕 | av资源中文字幕 | 欧美黄色高清 | 婷婷丁香久久五月婷婷 | 国产精品国产三级国产专区53 | 欧美激情视频一区二区三区 | 五月婷婷视频在线 | 亚洲精品视频免费在线观看 | 日本中文字幕一二区观 | 日本性久久 | 婷婷 中文字幕 | 射射色| 99热99热 | 一区二区三区 亚洲 | 国产精品亚洲精品 | 色综合久久88色综合天天 | 久久av网址| 久久久91精品国产一区二区精品 | 欧美性性网 | 日韩国产欧美在线视频 | 国产黄视频在线观看 | 91av视频在线免费观看 | 韩国精品福利一区二区三区 | 成人久久 | 中文字幕综合在线 | 97色综合 | 欧美在线视频日韩 | 国产主播大尺度精品福利免费 | 日韩黄色在线电影 | 在线播放视频一区 | 99精品视频99| 成片免费 | 久久精品中文字幕一区二区三区 | 一级片在线| 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 四虎影视www | 人人爽人人爽人人爽人人爽 | 99操视频| 99视频在线免费播放 | 欧美精品一区在线 | 国产精品成人自产拍在线观看 | 国产精品电影一区 | 91在线在线观看 | 国产成人61精品免费看片 | 美女网站色免费 | 日本三级全黄少妇三2023 | 免费看三级黄色片 | 日韩精品一区二区在线 | 色综合久久久久综合 | 亚洲国产日韩一区 | 成人欧美在线 | 五月激情在线 | 国产原创中文在线 | 日韩av在线免费播放 | 麻豆国产视频 | 91av网址| 国产高清第一页 | 色网站中文字幕 | 91porny九色91啦中文 | 成人黄色av免费在线观看 | 一区二区不卡视频在线观看 | 亚洲三级网站 | 午夜久久成人 | 激情欧美网 | 狠狠色狠狠综合久久 | 男女全黄一级一级高潮免费看 | 91色欧美| 蜜臀精品久久久久久蜜臀 | 日本大片免费观看在线 | 国产一级免费观看 | 日本久久久久久久久久 | 国产精品欧美在线 | 天天干天天天天 | 麻豆传媒电影在线观看 | 探花国产在线 | 天天射天天做 | 成人国产网址 | 国产一级一级国产 | 欧美日韩一区二区久久 | 亚洲精品网址在线观看 | 欧美日韩视频在线观看免费 | 久久精品一二三区白丝高潮 | 999视频网站 | 国产色一区| 欧美韩日视频 | 久久99爱视频 | 精品久久综合 | 成年人在线免费看 | 深夜免费福利网站 | 综合久久2023 | 亚洲三级国产 | 91伊人影院 | 日韩成人免费电影 | 一区二区三区在线免费观看视频 | 色插综合 | 美女黄网站视频免费 | 夜色资源网 | 996久久国产精品线观看 | 五月天六月丁香 | 日本中文字幕在线观看 | 久久久天堂 | 人人爽人人看 | 久久综合九色综合网站 | 天天干天天操天天入 | 亚洲日本在线视频观看 | 九九免费精品 | 色在线国产| 久久精品视频3 | 久草com| 欧美大片www | 91麻豆视频 | 99福利影院 | av一区二区三区在线 | 免费在线观看av电影 | 又色又爽又黄 | 狠狠干网站 | 亚洲一级影院 | 国产女人免费看a级丨片 | 狠狠狠狠狠狠天天爱 | 特级片免费看 | 黄色精品久久久 | 一区 二区电影免费在线观看 | 欧美日韩性视频 | 狠狠狠色丁香婷婷综合久久五月 | 中文在线字幕免费观看 | 福利视频一区二区 | 亚洲高清在线精品 | 91在线看 | 日韩欧美一区二区三区在线 | 超碰精品在线 | 成人av一级片 | 欧美激情精品久久久久久变态 | 久久99在线 | 国色天香在线观看 | 久久综合丁香 | 91精品视频免费看 | 亚洲最大的av网站 | 国产在线超碰 | 日本激情视频中文字幕 | 日韩精品一区二区三区不卡 | 国产一级91 | 国产剧情一区在线 | 日本深夜福利视频 | 久久91网| 日本在线观看一区二区 | 亚洲日本在线视频观看 | 91九色视频网站 | 精品免费视频123区 午夜久久成人 | av在线直接看 | 中文字幕欧美日韩va免费视频 | 激情文学丁香 | 日韩精品久久一区二区 | 欧美一区二区三区激情视频 | 久久综合九色综合97婷婷女人 | 久久视精品 | 伊人网av| 免费久久99精品国产婷婷六月 | 狠狠狠狠狠狠干 | 国产精品一区二区三区四区在线观看 | 久久久久久久电影 | 欧美日韩不卡在线视频 | 一个色综合网站 | 日韩高清免费无专码区 | 国产一级一级国产 | 久草视频在线新免费 | 2022中文字幕在线观看 | 一级α片 | 久久久久久久国产精品影院 | 国产精品日韩欧美 | 天天插狠狠插 | 亚洲aⅴ在线观看 | 美女精品 | 精品一区精品二区高清 | 欧美一区二区三区免费看 | 国内精品视频在线 | 丁香 婷婷 激情 | 日韩国产欧美视频 | 最近高清中文在线字幕在线观看 | 欧美人人| 久草精品视频在线看网站免费 | 欧美狠狠操 | 激情网在线观看 | 91精品啪| 美女视频免费一区二区 | 国产中文字幕在线观看 | 日本精品在线视频 | 久久久久久久久久久高潮一区二区 | 国产午夜精品一区 | 婷婷在线网站 | 精品视频免费播放 | 久久综合久久鬼 | 亚洲天天综合 | 精品久久久久久亚洲 | 四虎在线免费视频 | 992tv在线成人免费观看 | 欧美日韩免费观看一区=区三区 | 狠狠色伊人亚洲综合网站色 | 久久精品欧美一区二区三区麻豆 | 国产成人福利在线观看 | 欧美日韩二三区 | 91视频免费看网站 | av在线a | 中文字幕在线观看视频免费 | 成人免费视频免费观看 | 国产色视频 | www在线观看国产 | 91精品久久久久久综合乱菊 | 久久尤物电影视频在线观看 | 国产在线精品一区二区三区 | 色婷婷国产精品 | 国语精品久久 | 精品一区 在线 | 久久国产精品一区二区三区 | 亚洲精品久久久久999中文字幕 | 国产在线一卡 | 91豆花在线观看 | 国产一区二区高清不卡 | 亚洲欧美视频在线 | 婷婷夜夜 | 一本一道久久a久久精品 | 午夜日b视频 |