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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Eigen向量化内存对齐/Eigen的SSE兼容,内存分配/EIGEN_MAKE_ALIGNED_OPERATOR_NEW

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Eigen向量化内存对齐/Eigen的SSE兼容,内存分配/EIGEN_MAKE_ALIGNED_OPERATOR_NEW 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.總結

對于基本數據類型和自定義類型,我們需要用預編譯指令來保證棧內存的對齊,用重寫operator new的方式保證堆內存對齊。對于嵌套的自定義類型,申請棧內存時會自動保證其內部數據類型的對齊,而申請堆內存時仍然需要重寫operator new。

有一種特殊情況本文并未提到,如果使用std::vector ,需要傳入自定義內存申請器,即std::vector<Vector4d, AlignedAllocator>,其中AlignedAllocator是我們自定義的內存申請器。這是因為,std::vector中使用了動態申請的空間保存數據,因此默認的operator new是無法讓其內存對齊的。在無法重寫std::vector類的operator new的情況下,標準庫提供了自定義內存申請器的機制,讓用戶可以以自己的方式申請內存。具體做法本文就不再展開了,理解了前面的內容,這個問題應該很容易解決。

2. EIGEN_MAKE_ALIGNED_OPERATOR_NEW

SSE支持128bit的多指令并行,但是有個要求是處理的對象必須要在內存地址以16byte整數倍的地方開始。不過這些細節Eigen在做并行化的時候會自己處理。

但是,如果把一些Eigen的結構放到std的容器里面,比如vector,map。這些容器會把一個一個的Eigen結構在內存里面連續排放。

可以想象,如果這些Eigen的結構本身不是16byte大小,一連續排放后,自然有很多對象就不是在16byte整數倍的地方開始了。

Eigen提供了兩種方法來解決:

使用特別的內存分配對象

std::map<int, Eigen::Vector4f, std::less<int>, Eigen::aligned_allocator<std::pair<const int, Eigen::Vector4f> > >
std::vector<Eigen::Vector4f,Eigen::aligned_allocator<Eigen::Vector4f> >

針對vector的時候,還需要額外添加頭文件#include<Eigen/StdVector>

在對象定義的時候,使用特殊的宏

EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(Matrix2d)

注意必須在所有Eigen對象出現前使用這個宏

有這個問題的Eigen結構包括:

Eigen::Vector2d
Eigen::Vector4d
Eigen::Vector4f
Eigen::Matrix2d
Eigen::Matrix2f
Eigen::Matrix4d
Eigen::Matrix4f
Eigen::Affine3d
Eigen::Affine3f
Eigen::Quaterniond
Eigen::Quaternionf

另外如果上面提到的這些結構作為一個對象的成員,比如:

class Foo
{...Eigen::Vector2d v;...
};
...
Foo *foo = new Foo;

這個時候需要在類定義里面使用另外一個宏:

class Foo
{...Eigen::Vector2d v;...
public:EIGEN_MAKE_ALIGNED_OPERATOR_NEW
};
...
Foo *foo = new Foo;

原因分析:對象內部的內存分配是相對與對象的地址的。如果對象的地址不是16byte對齊的,里面的成員并不會知道這個信息,所以沒有辦法分配16byte對其的地址。解決辦法就是強制讓分配對象的時候,就給一個16byte對齊的地址。

EIGEN_MAKE_ALIGNED_OPERATOR_NEW會重載new函數。

3. problem solver record

用valgrind檢查內存問題,發現種種線索都指向g2o。g2o是一個SLAM后端優化庫,里面封裝了大量SLAM相關的優化算法,內部使用了Eigen進行矩陣運算。
關閉-march=native這個編譯選項后就能正常運行,而這個編譯選項其實是告訴編譯器當前的處理器支持哪些SIMD指令集,Eigen中又恰好使用了SSE、AVX等指令集進行向量化加速。此時,機智的我發現Eigen文檔中有一章叫做Alignment issues,里面提到了某些情況下Eigen對象可能沒有內存對齊,從而導致程序崩潰。
現在,證據到齊,基本可以確定我遇到的真實問題了:編譯安裝g2o時,默認沒有使用-march=native,因此里面的Eigen代碼沒有使用向量化加速,所以它們并沒有內存對齊。而在我的程序中,啟用了向量化加速,所有的Eigen對象都是內存對齊的。兩個程序鏈接起來之后,g2o中未對齊的Eigen對象一旦傳遞到我的代碼中,向量化運算的指令就會觸發異常。解決方案很簡單,要么都用-march=native,要么都不用。

4. 這就來談談向量化和內存對齊里面的門道。

什么是向量化運算?
向量化運算就是用SSE、AVX等SIMD(Single Instruction Multiple Data)指令集,實現一條指令對多個操作數的運算,從而提高代碼的吞吐量,實現加速效果。SSE是一個系列,包括從最初的SSE到最新的SSE4.2,支持同時操作16 bytes的數據,即4個float或者2個double。AVX也是一個系列,它是SSE的升級版,支持同時操作32 bytes的數據,即8個float或者4個double。

但向量化運算是有前提的,那就是內存對齊。SSE的操作數,必須16 bytes對齊,而AVX的操作數,必須32 bytes對齊。也就是說,如果我們有4個float數,必須把它們放在連續的且首地址為16的倍數的內存空間中,才能調用SSE的指令進行運算。

A Simple Example
為了給沒接觸過向量化編程的同學一些直觀的感受,我寫了一個簡單的示例程序:

#include <immintrin.h>
#include <iostream>int main() {double input1[4] = {1, 1, 1, 1};double input2[4] = {1, 2, 3, 4};double result[4];std::cout << "address of input1: " << input1 << std::endl;std::cout << "address of input2: " << input2 << std::endl;__m256d a = _mm256_load_pd(input1);__m256d b = _mm256_load_pd(input2);__m256d c = _mm256_add_pd(a, b);_mm256_store_pd(result, c);std::cout << result[0] << " " << result[1] << " " << result[2] << " " << result[3] << std::endl;return 0;
}

這段代碼使用AVX中的向量化加法指令,同時計算4對double的和。這4對數保存在input1和input2中。 _mm256_load_pd指令用來加載操作數,_mm256_add_pd指令進行向量化運算,最后, _mm256_store_pd指令讀取運算結果到result中。可惜的是,程序運行到第一個_mm256_load_pd處就崩潰了。崩潰的原因正是因為輸入變量沒有內存對齊。我特意打印出了兩個輸入變量的地址,結果如下

address of input1: 0x7ffeef431ef0
address of input2: 0x7ffeef431f10 

上一節提到了AVX要求32字節對齊,我們可以把這兩個輸入變量的地址除以32,看是否能夠整除。結果發現0x7ffeef431ef0和 0x7ffeef431f10都不能整除。當然,其實直接看倒數第二位是否是偶數即可,是偶數就可以被32整除,是奇數則不能被32整除。

如何讓輸入變量內存對齊呢?我們知道,對于局部變量來說,它們的內存地址是在編譯期確定的,也就是由編譯器決定。所以我們只需要告訴編譯器,給input1和input2申請空間時請讓首地址32字節對齊,這需要通過預編譯指令來實現。不同編譯器的預編譯指令是不一樣的,比如gcc的語法為__attribute__((aligned(32))),MSVC的語法為 __declspec(align(32)) 。以gcc語法為例,做少量修改,就可以得到正確的代碼

#include <immintrin.h>
#include <iostream>int main() {__attribute__ ((aligned (32))) double input1[4] = {1, 1, 1, 1};__attribute__ ((aligned (32))) double input2[4] = {1, 2, 3, 4};__attribute__ ((aligned (32))) double result[4];std::cout << "address of input1: " << input1 << std::endl;std::cout << "address of input2: " << input2 << std::endl;__m256d a = _mm256_load_pd(input1);__m256d b = _mm256_load_pd(input2);__m256d c = _mm256_add_pd(a, b);_mm256_store_pd(result, c);std::cout << result[0] << " " << result[1] << " " << result[2] << " " << result[3] << std::endl;return 0;
}

輸出結果為

address of input1: 0x7ffc5ca2e640
address of input2: 0x7ffc5ca2e660
2 3 4 5

可以看到,這次的兩個地址都是32的倍數,而且最終的運算結果也完全正確。

雖然上面的代碼正確實現了向量化運算,但實現方式未免過于粗糙。每個變量聲明前面都加上一長串預編譯指令看起來就不舒服。我們嘗試重構一下這段代碼。

5. 重構

首先,最容易想到的是,把內存對齊的double數組聲明成一種自定義數據類型,如下所示

  using aligned_double4 = __attribute__ ((aligned (32))) double[4];aligned_double4 input1 = {1, 1, 1, 1};aligned_double4 input2 = {1, 2, 3, 4};aligned_double4 result;

這樣看起來清爽多了。更進一步,如果4個double是一種經常使用的數據類型的話,我們就可以把它封裝為一個Vector4d類,這樣,用戶就完全看不到內存對齊的具體實現了,像下面這樣。

#include <immintrin.h>
#include <iostream>class Vector4d {using aligned_double4 = __attribute__ ((aligned (32))) double[4];
public:Vector4d() {}Vector4d(double d1, double d2, double d3, double d4) {data[0] = d1;data[1] = d2;data[2] = d3;data[3] = d4;}aligned_double4 data;
};Vector4d operator+ (const Vector4d& v1, const Vector4d& v2) {__m256d data1 = _mm256_load_pd(v1.data);__m256d data2 = _mm256_load_pd(v2.data);__m256d data3 = _mm256_add_pd(data1, data2);Vector4d result;_mm256_store_pd(result.data, data3);return result;
}std::ostream& operator<< (std::ostream& o, const Vector4d& v) {o << "(" << v.data[0] << ", " << v.data[1] << ", " << v.data[2] << ", " << v.data[3] << ")";return o;
}int main() {Vector4d input1 = {1, 1, 1, 1};Vector4d input2 = {1, 2, 3, 4};Vector4d result = input1 + input2;std::cout << result << std::endl;return 0;
}

這段代碼實現了Vector4d類,并把向量化運算放在了operator+中,主函數變得非常簡單。

但不要高興得太早,這個Vector4d其實有著嚴重的漏洞,如果我們動態創建對象,程序仍然會崩潰,比如這段代碼

int main() {Vector4d* input1 = new Vector4d{1, 1, 1, 1};Vector4d* input2 = new Vector4d{1, 2, 3, 4};std::cout << "address of input1: " << input1->data << std::endl;std::cout << "address of input2: " << input2->data << std::endl;Vector4d result = *input1 + *input2;std::cout << result << std::endl;delete input1;delete input2;return 0;
}

崩潰前的輸出為

address of input1: 0x1ceae70
address of input2: 0x1ceaea0

很詭異吧,似乎剛才我們設置的內存對齊都失效了,這兩個輸入變量的內存首地址又不是32的倍數了。

6.Heap vs Stack

問題的根源在于不同的對象創建方式。直接聲明的對象是存儲在棧上的,其內存地址由編譯器在編譯時確定,因此預編譯指令會生效。但用new動態創建的對象則存儲在堆中,其地址在運行時確定。C++的運行時庫并不會關心預編譯指令聲明的對齊方式,我們需要更強有力的手段來確保內存對齊。

C++提供的new關鍵字是個好東西,它避免了C語言中丑陋的malloc操作,但同時也隱藏了實現細節。如果我們翻看C++官方文檔,可以發現new Vector4d實際上做了兩件事情,第一步申請sizeof(Vector4d)大小的空間,第二步調用Vector4d的構造函數。要想實現內存對齊,我們必須修改第一步申請空間的方式才行。好在第一步其實調用了operator new這個函數,我們只需要重寫這個函數,就可以實現自定義的內存申請,下面是添加了該函數后的Vector4d類。

class Vector4d {using aligned_double4 = __attribute__ ((aligned (32))) double[4];
public:Vector4d() {}Vector4d(double d1, double d2, double d3, double d4) {data[0] = d1;data[1] = d2;data[2] = d3;data[3] = d4;}void* operator new (std::size_t count) {void* original = ::operator new(count + 32);void* aligned = reinterpret_cast<void*>((reinterpret_cast<size_t>(original) & ~size_t(32 - 1)) + 32);*(reinterpret_cast<void**>(aligned) - 1) = original;return aligned;}void operator delete (void* ptr) {::operator delete(*(reinterpret_cast<void**>(ptr) - 1));}aligned_double4 data;
};

operator new的實現還是有些技巧的,我們來詳細解釋一下。 首先,根據C++標準的規定,operator new的參數count是要開辟的空間的大小。 為了保證一定可以得到count大小且32字節對齊的內存空間,我們把實際申請的內存空間擴大到count + 32。可以想象,在這count + 32字節空間中, 一定存在首地址為32的倍數的連續count字節的空間。 所以,第二行代碼,我們通過對申請到的原始地址original做一些位運算,先找到比original小且是32的倍數的地址,然后加上32,就得到了我們想要的對齊后的地址,記作aligned。 接下來,第三行代碼很關鍵,它把原始地址的值保存在了aligned地址的前一個位置中,之所以要這樣做,是因為我們還需要自定義釋放內存的函數operator delete。畢竟aligned地址并非真實申請到的地址,所以在該地址上調用默認的delete 是會出錯的。可以看到,我們在代碼中也定義了一個operator delete,傳入的參數正是前面operator new返回的對齊的地址。這時候,保存在aligned前一個位置的原始地址就非常有用了,我們只需要把它取出來,然后用標準的delete釋放該內存即可。

為了方便大家理解這段代碼,有幾個細節需要特地強調一下。::operator new中的::代表全局命名空間,因此可以調用到標準的operator new。第三行需要先把aligned強制轉換為void類型,這是因為我們希望在aligned的前一個位置保存一個void*類型的地址,既然保存的元素是地址,那么該位置對應的地址就是地址的地址,也就是void

這是一個不大不小的trick,C++的很多內存管理方面的處理經常會有這樣的操作。但不知道細心的你是否發現了這里的一個問題:reinterpret_cast<void**>(aligned) - 1這個地址是否一定在我們申請的空間中呢?換句話說, 它是否一定大于original呢? 之所以存在這個質疑,是因為這里的-1其實是對指針減一。要知道,在64位計算機中,指針的長度是8字節,所以這里得到的地址其實是reinterpret_cast<size_t>(aligned) - 8。看出這里的區別了吧,對指針減1相當于對地址的值減8。所以仔細想想,如果original到aligned的距離小于8字節的話,這段代碼就會對申請的空間以外的內存賦值,可怕吧。

其實沒什么可怕的,為什么我敢這樣講,因為Eigen就是這樣實現的。這樣做依賴于現代編譯器的一個共識:所有的內存分配都默認16字節對齊。這個事實可以解釋很多問題,首先,永遠不用擔心original到aligned的距離會不會小于8了,它會穩定在16,這足夠保存一個指針。其次,為什么我們用AVX指令集舉例,而不是SSE?因為SSE要求16字節對齊,而現代編譯器已經默認16字節對齊了,那這篇文章就沒辦法展開了。 最后,為什么我的代碼在NVIDIA TX2上運行正常而在服務器上掛掉了?因為TX2中是ARM處理器,里面的向量化指令集NEON也只要求16字節對齊。

噩夢又現!
如果你以為到這里就圓滿結束了,那可是大錯特錯。還有個天坑沒展示給大家,下面的代碼中,我的自定義類Point包含了一個Vector4d的成員,這時候…

class Point {
public:Point(Vector4d position) : position(position) {}Vector4d position;
};int main() {Vector4d* input1 = new Vector4d{1, 1, 1, 1};Vector4d* input2 = new Vector4d{1, 2, 3, 4};Point* point1 = new Point{*input1};Point* point2 = new Point{*input2};std::cout << "address of point1: " << point1->position.data << std::endl;std::cout << "address of point2: " << point2->position.data << std::endl;Vector4d result = point1->position + point2->position;std::cout << result << std::endl;delete input1;delete input2;delete point1;delete point2;return 0;
}

輸出的地址又不再是32的倍數了,程序戛然而止。我們分析一下為什么會這樣。在主函數中,new Point動態創建了一個Point對象。前面提到過,這個過程分為兩步,第一步申請Point對象所需的空間,即sizeof(Point)大小的空間,第二步調用Point的構造函數。我們寄希望于第一步申請到的空間恰好讓內部的position對象對齊,這是不現實的。因為整個過程中并不會調用Vector4d的operator new,調用的只有Point的operator new,而這個函數我們并沒有重寫。

可惜的是,此處并沒有足夠優雅的解決方案,唯一的方案是在Point類中也添加自定義operator new,這就需要用戶的協助,類庫的作者已經無能為力了。 不過類庫的作者能做的,是盡量讓用戶更方便地添加operator new,比如封裝為一個宏定義,用戶只需要在Point類中添加一句宏即可。最后,完整的代碼如下。

#include <immintrin.h>
#include <iostream>#define ALIGNED_OPERATOR_NEW void* operator new (std::size_t count) { void* original = ::operator new(count + 32); void* aligned = reinterpret_cast<void*>((reinterpret_cast<size_t>(original) & ~size_t(32 - 1)) + 32); *(reinterpret_cast<void**>(aligned) - 1) = original; return aligned;} void operator delete (void* ptr) { ::operator delete(*(reinterpret_cast<void**>(ptr) - 1)); }class Vector4d {using aligned_double4 = __attribute__ ((aligned (32))) double[4];
public:Vector4d() {}Vector4d(double d1, double d2, double d3, double d4) {data[0] = d1;data[1] = d2;data[2] = d3;data[3] = d4;}ALIGNED_OPERATOR_NEWaligned_double4 data;
};Vector4d operator+ (const Vector4d& v1, const Vector4d& v2) {__m256d data1 = _mm256_load_pd(v1.data);__m256d data2 = _mm256_load_pd(v2.data);__m256d data3 = _mm256_add_pd(data1, data2);Vector4d result;_mm256_store_pd(result.data, data3);return result;
}std::ostream& operator<< (std::ostream& o, const Vector4d& v) {o << "(" << v.data[0] << ", " << v.data[1] << ", " << v.data[2] << ", " << v.data[3] << ")";return o;
}class Point {
public:Point(Vector4d position) : position(position) {}ALIGNED_OPERATOR_NEWVector4d position;
};int main() {Vector4d* input1 = new Vector4d{1, 1, 1, 1};Vector4d* input2 = new Vector4d{1, 2, 3, 4};Point* point1 = new Point{*input1};Point* point2 = new Point{*input2};std::cout << "address of point1: " << point1->position.data << std::endl;std::cout << "address of point2: " << point2->position.data << std::endl;Vector4d result = point1->position + point2->position;std::cout << result << std::endl;delete input1;delete input2;delete point1;delete point2;return 0;
}

這段代碼中,宏定義ALIGNED_OPERATOR_NEW 包含了operator new和operator delete,它們對所有需要內存對齊的類都適用。因此,無論是需要內存對齊的類,還是包含了這些類的類,都需要添加這個宏。

7.再談Eigen

在Eigen官方文檔中有這么一頁內容

有沒有覺得似曾相識?Eigen對該問題的解決方案與我們不謀而合。這當然不是巧合,事實上,本文的靈感正是來源于Eigen。但Eigen只告訴了我們應該怎么做,沒有詳細講解其原理。本文則從問題的提出,到具體的解決方案,一一剖析,希望可以給大家一些更深的理解。

8.參考資料

https://blog.csdn.net/ziliwangmoe/article/details/87563498
Eigen Memory Issues ethz-asl/eigen_catkin wiki
cmake怎么編譯 eigen c++_從Eigen向量化談內存對齊

總結

以上是生活随笔為你收集整理的Eigen向量化内存对齐/Eigen的SSE兼容,内存分配/EIGEN_MAKE_ALIGNED_OPERATOR_NEW的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产在线中文字幕 | 国产高清专区 | 最近中文字幕免费av | 免费三级骚 | 最近中文字幕免费av | 午夜精品福利影院 | 日韩精品视频免费专区在线播放 | 特级毛片爽www免费版 | 国产成人精品综合久久久 | 在线观看网站你懂的 | 久久只精品99品免费久23小说 | 国产色拍拍拍拍在线精品 | 色激情在线 | 成人免费 在线播放 | 国产亚洲精品久久久久久移动网络 | 欧美一级日韩三级 | 国产精品日韩在线观看 | 欧美一区二区三区不卡 | 亚洲高清精品在线 | 亚洲 欧洲 国产 日本 综合 | 超碰在线成人 | 激情视频免费在线 | 久久永久免费视频 | 五月色综合 | 免费av电影网站 | 91亚洲欧美激情 | 精品一区二区在线免费观看 | 国产一级黄色免费看 | 丁香免费视频 | 9999在线视频 | 麻豆一精品传二传媒短视频 | 99久久www| 亚洲激情视频 | 91视频免费网站 | a天堂中文在线 | www.av在线.com | 久久99精品波多结衣一区 | 国产中文字幕在线看 | 欧美一区二区日韩一区二区 | 日韩激情第一页 | 亚洲 欧美 另类人妖 | 九九久久久久久久久激情 | 久久视讯 | 337p西西人体大胆瓣开下部 | 欧美日韩视频一区二区三区 | 国产真实精品久久二三区 | www.操.com| 亚洲国产精品成人精品 | 中文在线字幕免费观 | 成人亚洲网 | 91精品对白一区国产伦 | 在线观看亚洲电影 | 成人在线视频在线观看 | 亚洲精品视频网站在线观看 | 天堂v中文 | 色婷婷国产精品一区在线观看 | 中文在线亚洲 | 欧美日韩在线视频一区 | 在线观看日本高清mv视频 | 日韩一二三在线 | 久久久久亚洲最大xxxx | 日韩在线视频在线观看 | 欧美韩日在线 | 久久婷婷视频 | 五月天婷婷狠狠 | 成片视频在线观看 | 国产真实在线 | 中文字幕首页 | 中文字幕人成乱码在线观看 | 久久久久高清毛片一级 | 天天色中文 | 成人亚洲精品久久久久 | 久久久久一区二区三区 | 成人黄色电影免费观看 | 黄色成年片 | 91亚色在线观看 | 91自拍成人| 五月开心激情 | 欧美成人黄色片 | 国产成人99av超碰超爽 | 国产黄色片在线 | 91成人亚洲 | 波多野结衣亚洲一区二区 | 欧美精品乱码久久久久久按摩 | 免费又黄又爽视频 | 在线观看va| 亚洲涩综合 | 美女网站色免费 | 午夜在线观看 | 欧美黑吊大战白妞欧美 | 久久久久国产精品免费免费搜索 | 久久一区二区免费视频 | 亚洲欧美视频在线 | 深爱开心激情 | 亚洲一级特黄 | 九九视频网 | 91色一区二区三区 | 天天天射 | 麻豆视频免费在线 | 色诱亚洲精品久久久久久 | 久久久国产一区二区三区四区小说 | 免费国产亚洲视频 | 成人av电影免费观看 | 精品国模一区二区三区 | 日韩视频在线观看视频 | 久久久久伊人 | 国产资源免费 | 久射网| 久久手机看片 | 日韩亚洲精品电影 | av日韩不卡 | 日韩欧美国产成人 | 亚洲小视频在线观看 | 国产1区2 | 欧美一区二区日韩一区二区 | 99视频99| www.五月天婷婷 | 操操操人人 | 美女啪啪图片 | 中文av一区二区 | 日日夜夜精品免费视频 | 精品久久久久久久久久久院品网 | 黄色成年网站 | 中文字幕在线观看你懂的 | 在线视频欧美精品 | 久草在线视频免赞 | 久久精品中文字幕一区二区三区 | 国产成人av福利 | 天天做夜夜做 | av最新资源 | 91精品国产麻豆国产自产影视 | 国产伦理精品一区二区 | 欧美va天堂va视频va在线 | 波多野结衣在线观看一区 | 日韩欧美精品在线视频 | 成人在线视频你懂的 | 最近中文字幕免费av | 亚州国产精品 | 午夜性生活片 | 久久免费黄色大片 | 一区二区三区电影在线播 | 日韩大片在线免费观看 | a级成人毛片 | 国产成人av电影在线 | 国产精品美女久久久久久久 | 在线一二三四区 | 亚洲一区视频免费观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国内精品久久天天躁人人爽 | 狠狠伊人 | 久久久国产精品一区二区三区 | 中文字幕在线看视频国产中文版 | 中文免费在线观看 | 一级久久精品 | av一区二区在线观看中文字幕 | 国产福利久久 | 91丨九色丨91啦蝌蚪老版 | 欧美亚洲国产一卡 | 久久视频精品 | 天天激情 | 2021国产视频 | 亚洲成年人av | 久久精品在线 | 五月婷婷综合在线视频 | 欧美激情精品久久久久久免费 | 蜜臀久久99静品久久久久久 | 国产精品自在欧美一区 | 久久理论影院 | 在线观看国产 | 九九久久精品视频 | 69av久久| 激情在线网址 | 亚洲成a人片77777kkkk1在线观看 | 在线观看激情av | 国产在线精品观看 | 日韩成片 | 视色网站 | 91成人在线网站 | 青青河边草免费观看 | 香蕉免费在线 | 91香蕉视频好色先生 | 99久久精品日本一区二区免费 | 91九色成人 | 天天插天天爱 | 麻豆视频免费网站 | 有码视频在线观看 | 中文字幕在线播放av | 在线观看国产成人av片 | 日韩精品第1页 | 天天操天操 | 97精品国自产拍在线观看 | 欧美激情亚洲综合 | 国产精品久久久毛片 | a色视频 | 天天爽夜夜爽人人爽曰av | 五月花丁香婷婷 | 国产无套视频 | 精品国产综合区久久久久久 | www.国产视频 | 一区二区三区电影大全 | 九九欧美 | 特级黄录像视频 | 操操色 | 五月婷婷激情 | 国产中文在线观看 | 日本在线观看视频一区 | 日日干天天插 | 视频在线观看99 | 国产视频在线观看一区二区 | 成人午夜精品福利免费 | 久久99精品波多结衣一区 | 成年人在线看片 | 九九日韩 | 久久免费视频在线观看6 | 亚洲天堂精品视频在线观看 | 中文字幕在线免费97 | 91福利影院在线观看 | 国产精品色婷婷视频 | 国产精品免费视频观看 | 色婷婷伊人| 国产午夜精品一区二区三区欧美 | 在线播放一区二区三区 | 日日躁你夜夜躁你av蜜 | 成人精品久久久 | 久久亚洲精品国产亚洲老地址 | 91视频亚洲 | 国产精品大片 | 天堂va欧美va亚洲va老司机 | avsex| 久久短视频 | 午夜在线看片 | 91av蜜桃| 亚洲v欧美v国产v在线观看 | 亚洲精品国偷自产在线91正片 | 久久精品中文字幕一区二区三区 | 国产精品久久久久久久99 | 国产精品观看视频 | 夜夜操天天摸 | 欧美精品一区二区免费 | 成人黄色在线看 | 一区二区三区四区免费视频 | 亚洲黄色成人 | 日韩三级视频在线观看 | 成在人线av| 久久久九九 | 亚洲精品国精品久久99热一 | 日韩aⅴ视频 | 最近中文字幕完整高清 | 婷婷激情欧美 | av在线播放一区二区三区 | 日韩激情视频在线 | 日本性久久 | 天天骚夜夜操 | 狠狠久久伊人 | 亚洲国内精品在线 | 亚洲精品美女在线 | 五月天久久狠狠 | 久久伊人热 | 国产va在线| 日本黄色大片免费看 | 91福利视频一区 | 成人高清在线 | 处女av在线 | 中文在线免费观看 | 午夜国产成人 | 国产精品免费人成网站 | 在线观看一区视频 | 午夜精品久久久久久久99热影院 | 一级性生活片 | 国产一区麻豆 | 中文字幕亚洲高清 | 欧美福利视频一区 | 色综合国产 | av电影在线观看 | 久久在线一区 | 在线看岛国av | 亚洲国产电影在线观看 | 亚洲久草在线视频 | 激情网五月婷婷 | 婷婷久久五月 | 久久精彩 | 视频一区二区在线 | 久久影视一区 | 狠狠色噜噜狠狠 | 成人国产精品入口 | 国产原创在线视频 | 精品国产一区二区三区av性色 | 精品网站999www | 免费三级影片 | 狠狠狠的干 | 中文在线免费一区三区 | 久久人人艹 | 国产第一福利网 | 少妇bbb| 亚洲精品国产精品国自产 | 日韩无在线 | 成人久久18免费网站 | 精品国产成人在线影院 | aaa亚洲精品一二三区 | 国产精品手机在线观看 | www.天天操 | 亚洲视频免费视频 | 97超碰在线视 | 97超碰在线资源 | 国产精品久久久影视 | 在线观看激情av | 欧美精品国产综合久久 | av一区二区三区在线播放 | 亚洲精品一区二区三区新线路 | 九九久久久 | 久草在线视频网站 | 精品国模一区二区 | 久久免费观看视频 | 久久精品资源 | 国产精品久久久久久超碰 | 日b视频在线观看网址 | 狠狠操导航| 中文字幕乱码电影 | 免费在线观看日韩 | 日韩久久一区二区 | 国产精品久久一区二区三区, | 国产午夜一区 | 国产一级视屏 | 国产精品免费视频一区二区 | 97碰在线| 成人97视频| 国内外成人在线视频 | 亚洲人成人天堂h久久 | 91精品国产一区二区在线观看 | 久久福利国产 | 182午夜在线观看 | 久久免费福利 | 探花在线观看 | 日日夜夜天天操 | 在线免费视频一区 | 国产精品 日韩精品 | 免费视频一二三区 | 日韩免费在线观看网站 | 丁香网婷婷 | 伊人天天操 | 国产区第一页 | 麻豆视频一区 | 成人一区二区三区在线观看 | 97视频在线 | 国产亚洲欧美精品久久久久久 | av在线一级 | 亚洲专区中文字幕 | 国产亚洲日本 | 天天草天天 | 一本色道久久精品 | 麻豆国产在线播放 | 久久成人久久 | 69视频在线 | 久久久免费视频播放 | 国产亚洲精品久久久久久久久久久久 | 一区二区三区在线免费观看 | 狠狠综合久久 | 天天干婷婷 | 激情开心 | 高清av在线免费观看 | 99精品在线观看视频 | 五月开心婷婷网 | 国产999免费视频 | aa一级片| 免费毛片一区二区三区久久久 | 黄色午夜网站 | v片在线播放 | 97在线观看视频免费 | 久一在线 | 亚洲第一中文字幕 | 伊人亚洲综合 | 日韩在线观看视频免费 | 国产精品2020| 天天做天天爱天天爽综合网 | 黄色av电影一级片 | 亚洲3级| 免费av看片 | 免费看片成年人 | 国产99久久久精品 | 午夜久久久久久久久 | 久久精品99久久久久久2456 | 综合在线观看色 | 精品久久国产精品 | 日本在线观看一区 | 精品自拍sae8—视频 | 91精品一区二区三区久久久久久 | 亚洲传媒在线 | 二区三区视频 | 亚洲欧洲av| 一区二区三区四区五区在线 | 麻豆免费视频观看 | 黄色免费大片 | 国产粉嫩在线观看 | 99精品视频在线观看播放 | 免费a v视频 | 久久黄色成人 | 999久久国产 | 最新婷婷色 | 天天射成人 | 91最新在线观看 | 97超碰人人爱| 国产成人精品av在线 | 欧洲色吧| 国产成人精品午夜在线播放 | 欧美激情精品久久久久久变态 | 欧美精品免费在线观看 | 国产精彩视频 | 91在线视频观看 | 国产一级做a爱片久久毛片a | 国产色在线视频 | 国产香蕉在线 | 国产精品视频你懂的 | 国产资源中文字幕 | 一级黄色片在线免费看 | 免费91麻豆精品国产自产在线观看 | 欧美91精品久久久久国产性生爱 | 久久tv| 久久激情五月丁香伊人 | 日韩精品久久久久久中文字幕8 | 久久情侣偷拍 | 97在线观看免费观看 | 精品国产一区二区三区四区在线观看 | 成人av免费| 五月天天色 | 久久这里只有精品视频99 | www.亚洲精品在线 | 国产五码一区 | 国产免费xvideos视频入口 | 在线观看视频一区二区三区 | 国产精品永久在线 | 国产精品福利在线观看 | 毛片激情永久免费 | 亚洲精品ww| 天天爱天天操 | 午夜精品福利在线 | 久久久久久影视 | 2019中文字幕网站 | 免费视频一区 | 不卡电影一区二区三区 | 日韩精品一区二区三区第95 | 国产精品久久久久久久久费观看 | 欧美污在线观看 | 国产精品一区二区三区久久久 | 99视频这里只有 | 日本九九视频 | 亚洲精品视频在线免费 | 久久精品高清 | 91精品在线视频观看 | 天天拍夜夜拍 | 四虎国产永久在线精品 | 在线色资源 | av网站在线免费观看 | 免费特级黄毛片 | 西西444www大胆高清视频 | 天天激情在线 | 亚洲欧洲精品在线 | 一区 二区 精品 | 久久夜夜爽 | 色综合狠狠干 | 国产自产在线视频 | 狠狠激情中文字幕 | 在线观看va | 亚洲午夜久久久久久久久 | 国产免费一区二区三区最新6 | 中文字幕免费观看 | av免费在线免费观看 | 国产精品毛片久久久久久 | 中文字幕精品一区二区三区电影 | 亚洲人成在线电影 | 成人日批视频 | 日韩久久一区 | 手机在线小视频 | 九九热在线视频免费观看 | 日本中文不卡 | 久久综合狠狠综合久久狠狠色综合 | 午夜久操| 欧美在线资源 | 国产黄色片免费看 | 亚洲精品中文字幕在线 | 97看片吧| 91视频午夜 | 97超级碰碰碰视频在线观看 | 91伊人影院 | 99精品热 | www.神马久久 | 国产精品99久久久精品 | 国产999免费视频 | 中文字幕在线国产精品 | 人人爽人人爽人人爽人人爽 | 国产精品视频99 | 91高清不卡| 黄色毛片观看 | 亚洲综合成人专区片 | 在线亚洲激情 | 免费日韩电影 | 亚洲欧美偷拍另类 | 国产女人18毛片水真多18精品 | 超碰在线天天 | 天天综合色网 | 精品欧美小视频在线观看 | 97在线视频观看 | www.夜夜操.com | av在线8 | 99色网站| 亚洲国产精品传媒在线观看 | 在线观看免费视频你懂的 | 久99久中文字幕在线 | 久久久高清一区二区三区 | 亚洲精品一区二区精华 | 成人在线一区二区三区 | 日本在线观看一区 | 亚洲激情国产精品 | 国产精品麻豆三级一区视频 | 狠狠躁天天躁 | 国产小视频免费观看 | 久久久999免费视频 日韩网站在线 | 欧美日韩综合在线观看 | 视频在线99re | 国产中文字幕网 | 免费a视频 | 天天在线视频色 | 国产亚洲精品久久久久久网站 | 国产中文在线字幕 | 91大神一区二区三区 | 色综合亚洲精品激情狠狠 | 亚洲另类xxxx | 一区二区三区免费在线观看视频 | 日韩精品最新在线观看 | 国产福利资源 | 草久中文字幕 | 国产九九九精品视频 | 99热99re6国产在线播放 | 久久精品久久99 | 国产视频一区二区在线观看 | 亚洲专区欧美专区 | 天天做日日做天天爽视频免费 | 丁香久久婷婷 | 亚洲高清视频在线观看免费 | 91漂亮少妇露脸在线播放 | 国产又粗又猛又色又黄网站 | 国产日韩视频在线 | 青青草在久久免费久久免费 | 97操操操| 在线观看av免费观看 | 三级黄色a | 久久久久久麻豆 | 成年人免费看片网站 | 成人小视频在线免费观看 | 丁香花中文在线免费观看 | 国产午夜剧场 | 午夜久久 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 成人资源在线观看 | 蜜桃av久久久亚洲精品 | 成全免费观看视频 | 日韩黄色在线电影 | 欧美性生活免费 | 亚洲国产成人在线 | 亚洲精品免费看 | 激情五月婷婷综合网 | 天天做天天爱夜夜爽 | 中文字幕高清有码 | 久草www| 国产片免费在线观看视频 | 亚洲 综合 国产 精品 | 五月婷婷激情六月 | 日本不卡一区二区三区在线观看 | 亚洲 中文 欧美 日韩vr 在线 | 狠狠狠狠狠狠干 | 久福利 | 国产精品综合av一区二区国产馆 | 国产在线高清 | 国产精品久久久久一区二区三区共 | 在线观看黄色av | 992tv在线观看 | 天天综合网天天 | 在线看一区二区 | www夜夜| 国产日韩精品一区二区在线观看播放 | 婷婷综合成人 | 97福利在线 | 久久超碰网 | 久久婷婷精品 | 九九九九精品 | 色91av | 亚洲视频久久久久 | 天天操天天操天天操天天操 | 色综合激情久久 | 精品一区二区免费在线观看 | 久久电影国产免费久久电影 | 精品久久一区二区三区 | 国产精品久久久久永久免费看 | 久久久网站 | 日韩免费在线观看视频 | 久久九九精品久久 | 欧美一级欧美一级 | 国产精品久久久久久电影 | 久久久麻豆视频 | 91插插插网站 | 日韩中文字幕电影 | 免费精品视频在线 | 丝袜足交在线 | 欧美精品中文在线免费观看 | av在线最新 | 国产美女被啪进深处喷白浆视频 | 国产又粗又硬又爽的视频 | 亚洲视频在线观看 | 香蕉视频在线看 | 四虎永久国产精品 | 亚洲黄色一级大片 | 超碰免费久久 | 国产视频精品久久 | 欧美a级片免费看 | 成人在线一区二区 | 国产精品久久久久久久久久久久午夜 | 成人看片 | 99热这里只有精品久久 | 韩国av免费看 | 中文字幕三区 | 欧美日韩电影在线播放 | 久草在线视频免费资源观看 | 69av视频在线 | 亚洲精品美女久久17c | 美女精品国产 | www日韩在线 | 中文字幕国产 | 天天综合久久综合 | 成人h动漫精品一区二 | 国产精品高清一区二区三区 | 日韩精品不卡在线 | 日本韩国中文字幕 | 黄网站免费久久 | 国产精品久久久久aaaa九色 | 网址你懂的在线观看 | 免费看黄色毛片 | 日韩精品久久久久久 | 天天色天天骑天天射 | 国产高清在线 | 天天操伊人 | 91丨精品丨蝌蚪丨白丝jk | a国产精品| 亚洲综合五月天 | 久久精品网站视频 | 香蕉视频久久久 | av888.com | 成年人网站免费观看 | 婷婷色婷婷 | 久久艹艹| 91亚洲欧美 | 美女视频一区二区 | 九九视频免费观看视频精品 | 免费观看黄 | 深爱激情五月婷婷 | 午夜狠狠干 | av免费线看 | 国产成人免费观看久久久 | 97色免费视频 | 国内精品久久久久影院一蜜桃 | 亚洲免费婷婷 | 亚欧洲精品视频在线观看 | 欧美 另类 交 | 欧美日韩精品在线免费观看 | 国产精品网址在线观看 | www.久热 | 久久成人欧美 | 四虎影视成人永久免费观看亚洲欧美 | 在线观看av黄色 | 丝袜美腿亚洲 | 99这里精品 | 亚洲精区二区三区四区麻豆 | 视频一区二区三区视频 | 蜜臀av.com | 爱av在线网 | 久久国产精品99国产 | av在线激情| 久久久久久久久久免费视频 | 久久超碰99 | 久热av在线 | 午夜成人免费电影 | 日本精品中文字幕 | 国产精品午夜av | 国产精品国产三级在线专区 | 国产精品麻豆99久久久久久 | 欧美黑人猛交 | 国产福利精品一区二区 | 91高清免费| 韩日色视频 | 欧美精品在线视频 | 精品一区二区视频 | 欧美日韩二区三区 | 久草在线一免费新视频 | 丁香九月婷婷综合 | 国产精久久久久久久 | 欧美在线视频一区二区三区 | 国产精品乱码一区二三区 | av观看久久久 | 四虎影视成人永久免费观看视频 | 丁香免费视频 | 国产手机在线精品 | 狠狠躁夜夜躁人人爽视频 | 国产xxxx性hd极品 | 日韩网站免费观看 | 久久精品在线 | 久久另类小说 | 深爱激情av | 精品一区二区三区电影 | 97精品在线视频 | 成人黄色小说视频 | 日日夜夜综合网 | 五月激情综合婷婷 | 亚洲毛片在线观看. | 欧美精品久 | 亚洲精品影视在线观看 | 日日摸日日碰 | 亚洲欧美精品在线 | 在线精品在线 | 国产手机视频在线 | 欧美aaaxxxx做受视频 | 久久国产免费视频 | 9草在线| 999久久久精品视频 日韩高清www | 精品国产成人av | 91在线日韩| 91精品办公室少妇高潮对白 | 久久精国产 | 亚洲电影网站 | 久久久福利影院 | 精品在线观看一区二区 | 国产精品久久久久久久99 | 久久久久久国产一区二区三区 | 日本黄色大片免费 | 久久调教视频 | 日韩丝袜在线观看 | 国产亚洲精品久久久久久大师 | 国产色拍 | 99精品视频免费观看视频 | 国产高清视频免费最新在线 | 在线观看免费日韩 | 91在线看黄| 日本乱视频 | 国产黄色片免费在线观看 | 91亚洲精品久久久蜜桃 | 免费在线国产精品 | 国产美女精品 | 人人爽人人爽 | 午夜视频一区二区三区 | 日韩经典一区二区三区 | 黄色免费观看网址 | 中文字幕久久精品一区 | 2018亚洲男人天堂 | 波多野结衣电影久久 | 久久久福利 | 一区二区中文字幕在线观看 | 久久在线视频在线 | 在线视频在线观看 | 国产精品videossex国产高清 | 国产成人高清av | 人人澡人人爱 | 欧美极品少妇xbxb性爽爽视频 | 91网在线观看 | 免费特级黄色片 | 久久免费视频网 | 在线一二区 | www.eeuss影院av撸| 久久视影| 美女黄频在线观看 | 久久都是精品 | 91毛片视频 | 欧美整片sss | 激情欧美丁香 | 久久在线视频精品 | 成年人免费看 | 亚洲精品av中文字幕在线在线 | 天天色综合1 | 六月天综合网 | 很黄很黄的网站免费的 | 日韩一二区在线 | av专区在线 | 91亚洲国产成人 | 国产精品9999久久久久仙踪林 | 日本不卡一区二区三区在线观看 | 国内精品一区二区 | 欧美一级性生活 | 在线视频黄 | 国产精品视频免费在线观看 | 久久精彩免费视频 | 久久丁香 | 国产精品久久99精品毛片三a | 欧美a级免费视频 | 天天草天天色 | 成年人在线观看视频免费 | 国产粉嫩在线观看 | 五月激情姐姐 | 日韩精品一区二区免费视频 | www.天天操| 狠狠色伊人亚洲综合网站野外 | 国产精品亚洲片夜色在线 | 激情综合久久 | 黄色99视频| 国产91九色蝌蚪 | 亚洲国产欧洲综合997久久, | 成人少妇影院yyyy | 99精品福利视频 | 婷婷亚洲激情 | 日本在线观看视频一区 | 久久夜靖品 | 国产日韩精品视频 | 国产一区二区三区视频在线 | 五月天天av | 久久国产精品99国产 | 激情综合网色播五月 | 日韩在线免费 | 91久久在线观看 | 亚洲精品欧美视频 | 欧美高清成人 | 欧美日韩国产精品一区 | 狠狠色综合网站久久久久久久 | 久久精品超碰 | 日韩网站一区 | 黄色免费网站下载 | 黄色小说18 | 一区二区欧美在线观看 | 久久国产精品久久久 | 亚洲资源网 | 国产va在线观看免费 | 亚洲韩国一区二区三区 | 日本精品一区二区三区在线观看 | 欧美色图狠狠干 | 国产精品 美女 | 婷婷激情网站 | 成人中文字幕在线观看 | 天天干天天操天天射 | 亚洲午夜精品一区 | 国产区免费| 免费在线激情视频 | 国产精品久久婷婷六月丁香 | 日本爱爱免费视频 | 成人免费在线播放视频 | 久久久久中文 | 欧美日韩精品在线观看视频 | 国产精品久久久久久久婷婷 | 91九色国产视频 | 亚洲免费专区 | 三级av网站| 日韩网站免费观看 | 欧美久久久一区二区三区 | 天天干天天草 | 在线观看电影av | 色香网| 日韩一二区在线观看 | www.成人精品| 精品美女在线视频 | 人人人爽 | 亚洲免费av网站 | 久久久久一区二区三区四区 | 亚洲精品男人天堂 | 成人黄大片 | www.com久久久 | 国产精品影音先锋 | 91av看片 | 99久久婷婷国产一区二区三区 | 91av欧美 | 超碰在线人人 | 国产精品观看视频 | 日日骑 | 综合久久网站 | 国产精品免费视频观看 | 夜添久久精品亚洲国产精品 | 综合天堂av久久久久久久 | 狠狠干狠狠艹 | 中文字幕在线影院 | 国产高清免费av | 欧美国产91 | 日韩中文字幕免费在线观看 | 中文字幕在线观看三区 | 久久免费99精品久久久久久 | www日韩高清| 久久黄色美女 | 国产精品久久久久久久久婷婷 | 欧美极度另类 | 国产99在线免费 | 亚洲黄色app| 日b视频国产 | 亚洲激情在线观看 | 欧美在线观看视频一区二区 | 婷婷久月 | 91精品久久久久久综合乱菊 | 日韩精品久久久久久久电影竹菊 | 国产精品一区二区美女视频免费看 | 久久y| 五月激情婷婷丁香 | 久久精品精品电影网 | 夜夜视频资源 | 久久黄色免费观看 | 特黄特色特刺激视频免费播放 | 亚洲欧洲av| 六月天色婷婷 | 亚洲日本欧美在线 | 久久综合加勒比 | 国产精品视频免费观看 | 久久久久亚洲精品男人的天堂 | 在线影院 国内精品 | 亚洲精品乱码久久久久久久久久 | 日韩91精品 | 久久久久久久久精 | 午夜精品久久久99热福利 | 久久系列 | 亚洲精品视频免费观看 | 国产精品久久久久久久久久免费看 | 国产精品久久久久久欧美 | 久久99国产精品久久99 | 国产精品k频道 | 国产麻豆精品免费视频 | 久久久久国产a免费观看rela | 视频在线国产 | 国产流白浆高潮在线观看 | 九九在线免费视频 | 久99热| 国产成人久久精品亚洲 | 亚洲一区二区三区四区精品 | 国产一级特黄毛片在线毛片 | 人人爽人人爽人人片av | 日韩激情中文字幕 | 91麻豆精品91久久久久同性 | 久久久综合香蕉尹人综合网 | 国产精品久久久久影院 | 精品产品国产在线不卡 | 人人澡人人草 | 久久精品91久久久久久再现 | 免费av看片 | 麻豆免费视频网站 | 最新av电影网站 | 曰韩在线 | 久久久久久久久久久久av | 在线观看日韩av | 欧美性受极品xxxx喷水 | 久久久久 免费视频 | 黄色一级网| 97操碰| 五月婷社区 | a视频在线看 | 成人一级片在线观看 | 超碰成人网 | 免费看一级黄色大全 | 国产综合精品一区二区三区 | 香蕉视频在线免费看 | 国产三级午夜理伦三级 | 精品国产欧美一区二区三区不卡 | 在线观看日韩精品视频 | 国产精品系列在线观看 | 成人国产网站 | 日韩免费一级电影 | 日韩理论影院 | 91精品国产三级a在线观看 | 天天射天天 | 欧美激情精品久久久久 | 久久ww | 亚洲伊人成综合网 | 国内偷拍精品视频 | 国产在线精品国自产拍影院 | 国产精品久久久久久久久蜜臀 | 欧美日韩一区二区免费在线观看 | 婷婷草 | 在线 国产一区 | 日韩xxxbbb | 国产精品99久久久久久武松影视 | 亚洲精品在线视频播放 | 日韩午夜小视频 | 高清av在线免费观看 | 久综合网 | 精品国产一区二区三区免费 | 99久久精品一区二区成人 | 天天久久夜夜 | 九九免费精品 | 色综合久久久久久中文网 | 国产小视频免费在线网址 | 91精品视频网站 | 国产精品第一页在线观看 | 亚洲黄色小说网 | 天堂黄色片| 国产免费又黄又爽 | 久久呀| 激情综合五月 | 日韩在线大片 | 国产精品免费一区二区 | 中文字幕美女免费在线 | 午夜国产一区 | 美女视频黄频大全免费 | 四虎在线观看 | 超碰97在线资源 | 国产精品免费小视频 | 91九色综合| 国产精品成人自产拍在线观看 | 中文字幕乱码视频 | 精品91视频 | 五月天伊人网 | 亚洲精品午夜视频 | 欧美国产视频在线 |