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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld

發(fā)布時(shí)間:2024/6/21 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明:本文出自Bin的專(zhuān)欄http://t.zoukankan.com/blog.csdn.net/xbinworld。 技術(shù)交流QQ群:433250724,歡迎對(duì)算法、技術(shù)、應(yīng)用感興趣的同學(xué)加入。

OpenCL安裝

安裝我不打算花篇幅寫(xiě),原因是OpenCL實(shí)在是可以太多的平臺(tái)+環(huán)境下實(shí)現(xiàn)了,包括GPU和FPGA,以及不同的器件支持,在這里我主要把網(wǎng)上可以找到比較不錯(cuò)的經(jīng)驗(yàn)貼列一下,方便大家,我主要關(guān)注了FPGA的,其他GPU的大家網(wǎng)上搜搜吧:

altera opencl sdk下載:
https://www.altera.com.cn/products/design-software/embedded-software-developers/opencl/overview.html

alter的安裝指南,《Altera SDK for OpenCL
Getting Started Guide》

理論上看上面兩個(gè)就夠了,你需要做的事情包括:
下載opencl SDK,或者quatuars II軟件(含SDK),下載相應(yīng)開(kāi)發(fā)板的支持(altera上面有一些,但是其他的可能就需要你從相應(yīng)的供應(yīng)商那邊找了);還需要opencl的license,不然是不能編譯的。

中文的一些經(jīng)驗(yàn)貼可以看:
《Altera OpenCL入門(mén)(beta版)》http://wenku.baidu.com/link?url=bkIyo01jXeWfdGsrA_M0J1zomx6f0lYk0NPf-9-MNaC0OkWRmukDwY5yFz0I3Wrctqi5qD3jC8BhQQzjoqw1HXpUgIM68_blz5Cr3vxpaZC

【Altera SoC體驗(yàn)之旅】+ 正式開(kāi)啟OpenCL模式
http://home.eeworld.com.cn/my/space-uid-169743-blogid-247647.html

OpenCL編程簡(jiǎn)介

下面的圖簡(jiǎn)單說(shuō)明了OpenCL的編程框架,圖是用的GPU,其他類(lèi)似;

從圖中可以看出(參考《OpenCL 編程入門(mén)》):
1. 異構(gòu)計(jì)算設(shè)備,可以是CPU或GPU。現(xiàn)在也有支持OpenCL的FPGA設(shè)備和至強(qiáng)融核協(xié)處理設(shè)備(MIC)。
2. OpenCL的API通過(guò)Context(環(huán)境上下文)聯(lián)系在一起。
3. 運(yùn)行設(shè)備端的程序,經(jīng)過(guò)了編譯->設(shè)置參數(shù)->運(yùn)行等步驟。

名詞的概念:
Platform (平臺(tái)):主機(jī)加上OpenCL框架管理下的若干設(shè)備構(gòu)成了這個(gè)平臺(tái),通過(guò)這個(gè)平臺(tái),應(yīng)用程序可以與設(shè)備共享資源并在設(shè)備上執(zhí)行kernel。實(shí)際使用中基本上一個(gè)廠商對(duì)應(yīng)一個(gè)Platform,比如Intel, AMD都是這樣。

Device(設(shè)備):官方的解釋是計(jì)算單元(Compute Units)的集合。舉例來(lái)說(shuō),GPU是典型的device。Intel和AMD的多核CPU也提供OpenCL接口,所以也可以作為Device。

Context(上下文):OpenCL的Platform上共享和使用資源的環(huán)境,包括kernel、device、memory objects、command queue等。使用中一般一個(gè)Platform對(duì)應(yīng)一個(gè)Context。

Program:OpenCL程序,由kernel函數(shù)、其他函數(shù)和聲明等組成。
Kernel(核函數(shù)):可以從主機(jī)端調(diào)用,運(yùn)行在設(shè)備端的函數(shù)。

Memory Object(內(nèi)存對(duì)象):在主機(jī)和設(shè)備之間傳遞數(shù)據(jù)的對(duì)象,一般映射到OpenCL程序中的global memory。有兩種具體的類(lèi)型:Buffer Object(緩存對(duì)象)和Image Object(圖像對(duì)象)。

Command Queue(指令隊(duì)列):在指定設(shè)備上管理多個(gè)指令(Command)。隊(duì)列里指令執(zhí)行可以順序也可以亂序。一個(gè)設(shè)備可以對(duì)應(yīng)多個(gè)指令隊(duì)列。

NDRange:主機(jī)端運(yùn)行設(shè)備端kernel函數(shù)的主要接口。實(shí)際上還有其他的,NDRange是非常常見(jiàn)的,用于分組運(yùn)算,以后具體用到的時(shí)候就知道區(qū)別了。

Host端來(lái)看,OpenCL的組要執(zhí)行流程是這樣的:

其實(shí)基本上大部分簡(jiǎn)單的程序HOST部分都是差不多的,不用改很多,具體下面看一個(gè)例子就知道了。

第一個(gè)程序
這里貼一個(gè)altera官方的vector add的實(shí)例code,基本就是helloworld級(jí)別了,不過(guò)它的host寫(xiě)的很通用(考慮到對(duì)多個(gè)device統(tǒng)一編程),可以過(guò)一遍看看是不是和上面的圖對(duì)的上。其實(shí)看過(guò)這個(gè)基本其他的也就差不多了。

Host部分:(Kernel在最后)

// Copyright (C) 2013-2014 Altera Corporation, San Jose, California, USA. All rights reserved. 
// Permission is hereby granted, free of charge, to any person obtaining a copy of this 
// software and associated documentation files (the "Software"), to deal in the Software 
// without restriction, including without limitation the rights to use, copy, modify, merge, 
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to 
// whom the Software is furnished to do so, subject to the following conditions: 
// The above copyright notice and this permission notice shall be included in all copies or 
// substantial portions of the Software. 
//  
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
// OTHER DEALINGS IN THE SOFTWARE. 
//  
// This agreement shall be governed in all respects by the laws of the State of California and 
// by the laws of the United States of America. 

///////////////////////////////////////////////////////////////////////////////////
// This host program executes a vector addition kernel to perform:
//  C = A + B
// where A, B and C are vectors with N elements.
//
// This host program supports partitioning the problem across multiple OpenCL
// devices if available. If there are M available devices, the problem is
// divided so that each device operates on N/M points. The host program
// assumes that all devices are of the same type (that is, the same binary can
// be used), but the code can be generalized to support different device types
// easily.
//
// Verification is performed against the same computation on the host CPU.
///////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "CL/opencl.h"
#include "AOCL_Utils.h"

using namespace aocl_utils;

// OpenCL runtime configuration
cl_platform_id platform = NULL;
unsigned num_devices = 0;
scoped_array<cl_device_id> device; // num_devices elements
cl_context context = NULL;
scoped_array<cl_command_queue> queue; // num_devices elements
cl_program program = NULL;
scoped_array<cl_kernel> kernel; // num_devices elements
scoped_array<cl_mem> input_a_buf; // num_devices elements
scoped_array<cl_mem> input_b_buf; // num_devices elements
scoped_array<cl_mem> output_buf; // num_devices elements

// Problem data.
const unsigned N = 1000000; // problem size
scoped_array<scoped_aligned_ptr<float> > input_a, input_b; // num_devices elements
scoped_array<scoped_aligned_ptr<float> > output; // num_devices elements
scoped_array<scoped_array<float> > ref_output; // num_devices elements
scoped_array<unsigned> n_per_device; // num_devices elements

// Function prototypes
float rand_float();
bool init_opencl();
void init_problem();
void run();
void cleanup();

// Entry point.
int main() {
  // Initialize OpenCL.
  if(!init_opencl()) {
    return -1;
  }

  // Initialize the problem data.
  // Requires the number of devices to be known.
  init_problem();

  // Run the kernel.
  run();

  // Free the resources allocated
  cleanup();

  return 0;
}

/////// HELPER FUNCTIONS ///////

// Randomly generate a floating-point number between -10 and 10.
float rand_float() {
  return float(rand()) / float(RAND_MAX) * 20.0f - 10.0f;
}

// Initializes the OpenCL objects.
bool init_opencl() {
  cl_int status;

  printf("Initializing OpenCL
");

  if(!setCwdToExeDir()) {
    return false;
  }

  // Get the OpenCL platform.
  platform = findPlatform("Altera");
  if(platform == NULL) {
    printf("ERROR: Unable to find Altera OpenCL platform.
");
    return false;
  }

  // Query the available OpenCL device.
  device.reset(getDevices(platform, CL_DEVICE_TYPE_ALL, &num_devices));
  printf("Platform: %s
", getPlatformName(platform).c_str());
  printf("Using %d device(s)
", num_devices);
  for(unsigned i = 0; i < num_devices; ++i) {
    printf("  %s
", getDeviceName(device[i]).c_str());
  }

  // Create the context.
  context = clCreateContext(NULL, num_devices, device, NULL, NULL, &status);
  checkError(status, "Failed to create context");

  // Create the program for all device. Use the first device as the
  // representative device (assuming all device are of the same type).
  std::string binary_file = getBoardBinaryFile("vectorAdd", device[0]);
  printf("Using AOCX: %s
", binary_file.c_str());
  program = createProgramFromBinary(context, binary_file.c_str(), device, num_devices);

  // Build the program that was just created.
  status = clBuildProgram(program, 0, NULL, "", NULL, NULL);
  checkError(status, "Failed to build program");

  // Create per-device objects.
  queue.reset(num_devices);
  kernel.reset(num_devices);
  n_per_device.reset(num_devices);
  input_a_buf.reset(num_devices);
  input_b_buf.reset(num_devices);
  output_buf.reset(num_devices);

  for(unsigned i = 0; i < num_devices; ++i) {
    // Command queue.
    queue[i] = clCreateCommandQueue(context, device[i], CL_QUEUE_PROFILING_ENABLE, &status);
    checkError(status, "Failed to create command queue");

    // Kernel.
    const char *kernel_name = "vectorAdd";
    kernel[i] = clCreateKernel(program, kernel_name, &status);
    checkError(status, "Failed to create kernel");

    // Determine the number of elements processed by this device.
    n_per_device[i] = N / num_devices; // number of elements handled by this device

    // Spread out the remainder of the elements over the first
    // N % num_devices.
    if(i < (N % num_devices)) {
      n_per_device[i]++;
    }

    // Input buffers.
    input_a_buf[i] = clCreateBuffer(context, CL_MEM_READ_ONLY, 
        n_per_device[i] * sizeof(float), NULL, &status);
    checkError(status, "Failed to create buffer for input A");

    input_b_buf[i] = clCreateBuffer(context, CL_MEM_READ_ONLY, 
        n_per_device[i] * sizeof(float), NULL, &status);
    checkError(status, "Failed to create buffer for input B");

    // Output buffer.
    output_buf[i] = clCreateBuffer(context, CL_MEM_WRITE_ONLY, 
        n_per_device[i] * sizeof(float), NULL, &status);
    checkError(status, "Failed to create buffer for output");
  }

  return true;
}

// Initialize the data for the problem. Requires num_devices to be known.
void init_problem() {
  if(num_devices == 0) {
    checkError(-1, "No devices");
  }

  input_a.reset(num_devices);
  input_b.reset(num_devices);
  output.reset(num_devices);
  ref_output.reset(num_devices);

  // Generate input vectors A and B and the reference output consisting
  // of a total of N elements.
  // We create separate arrays for each device so that each device has an
  // aligned buffer. 
  for(unsigned i = 0; i < num_devices; ++i) {
    input_a[i].reset(n_per_device[i]);
    input_b[i].reset(n_per_device[i]);
    output[i].reset(n_per_device[i]);
    ref_output[i].reset(n_per_device[i]);

    for(unsigned j = 0; j < n_per_device[i]; ++j) {
      input_a[i][j] = rand_float();
      input_b[i][j] = rand_float();
      ref_output[i][j] = input_a[i][j] + input_b[i][j];
    }
  }
}

void run() {
  cl_int status;

  const double start_time = getCurrentTimestamp();

  // Launch the problem for each device.
  scoped_array<cl_event> kernel_event(num_devices);
  scoped_array<cl_event> finish_event(num_devices);

  for(unsigned i = 0; i < num_devices; ++i) {

    // Transfer inputs to each device. Each of the host buffers supplied to
    // clEnqueueWriteBuffer here is already aligned to ensure that DMA is used
    // for the host-to-device transfer.
    cl_event write_event[2];
    status = clEnqueueWriteBuffer(queue[i], input_a_buf[i], CL_FALSE,
        0, n_per_device[i] * sizeof(float), input_a[i], 0, NULL, &write_event[0]);
    checkError(status, "Failed to transfer input A");

    status = clEnqueueWriteBuffer(queue[i], input_b_buf[i], CL_FALSE,
        0, n_per_device[i] * sizeof(float), input_b[i], 0, NULL, &write_event[1]);
    checkError(status, "Failed to transfer input B");

    // Set kernel arguments.
    unsigned argi = 0;

    status = clSetKernelArg(kernel[i], argi++, sizeof(cl_mem), &input_a_buf[i]);
    checkError(status, "Failed to set argument %d", argi - 1);

    status = clSetKernelArg(kernel[i], argi++, sizeof(cl_mem), &input_b_buf[i]);
    checkError(status, "Failed to set argument %d", argi - 1);

    status = clSetKernelArg(kernel[i], argi++, sizeof(cl_mem), &output_buf[i]);
    checkError(status, "Failed to set argument %d", argi - 1);

    // Enqueue kernel.
    // Use a global work size corresponding to the number of elements to add
    // for this device.
    // 
    // We don't specify a local work size and let the runtime choose
    // (it'll choose to use one work-group with the same size as the global
    // work-size).
    //
    // Events are used to ensure that the kernel is not launched until
    // the writes to the input buffers have completed.
    const size_t global_work_size = n_per_device[i];
    printf("Launching for device %d (%d elements)
", i, global_work_size);

    status = clEnqueueNDRangeKernel(queue[i], kernel[i], 1, NULL,
        &global_work_size, NULL, 2, write_event, &kernel_event[i]);
    checkError(status, "Failed to launch kernel");

    // Read the result. This the final operation.
    status = clEnqueueReadBuffer(queue[i], output_buf[i], CL_FALSE,
        0, n_per_device[i] * sizeof(float), output[i], 1, &kernel_event[i], &finish_event[i]);

    // Release local events.
    clReleaseEvent(write_event[0]);
    clReleaseEvent(write_event[1]);
  }

  // Wait for all devices to finish.
  clWaitForEvents(num_devices, finish_event);

  const double end_time = getCurrentTimestamp();

  // Wall-clock time taken.
  printf("
Time: %0.3f ms
", (end_time - start_time) * 1e3);

  // Get kernel times using the OpenCL event profiling API.
  for(unsigned i = 0; i < num_devices; ++i) {
    cl_ulong time_ns = getStartEndTime(kernel_event[i]);
    printf("Kernel time (device %d): %0.3f ms
", i, double(time_ns) * 1e-6);
  }

  // Release all events.
  for(unsigned i = 0; i < num_devices; ++i) {
    clReleaseEvent(kernel_event[i]);
    clReleaseEvent(finish_event[i]);
  }

  // Verify results.
  bool pass = true;
  for(unsigned i = 0; i < num_devices && pass; ++i) {
    for(unsigned j = 0; j < n_per_device[i] && pass; ++j) {
      if(fabsf(output[i][j] - ref_output[i][j]) > 1.0e-5f) {
        printf("Failed verification @ device %d, index %d
Output: %f
Reference: %f
",
            i, j, output[i][j], ref_output[i][j]);
        pass = false;
      }
    }
  }

  printf("
Verification: %s
", pass ? "PASS" : "FAIL");
}

// Free the resources allocated during initialization
void cleanup() {
  for(unsigned i = 0; i < num_devices; ++i) {
    if(kernel && kernel[i]) {
      clReleaseKernel(kernel[i]);
    }
    if(queue && queue[i]) {
      clReleaseCommandQueue(queue[i]);
    }
    if(input_a_buf && input_a_buf[i]) {
      clReleaseMemObject(input_a_buf[i]);
    }
    if(input_b_buf && input_b_buf[i]) {
      clReleaseMemObject(input_b_buf[i]);
    }
    if(output_buf && output_buf[i]) {
      clReleaseMemObject(output_buf[i]);
    }
  }

  if(program) {
    clReleaseProgram(program);
  }
  if(context) {
    clReleaseContext(context);
  }
}

Kernel部分:

// ACL kernel for adding two input vectors
__kernel void vectorAdd(__global const float *x, 
                        __global const float *y, 
                        __global float *restrict z)
{
    // get index of the work item
    int index = get_global_id(0);

    // add the vector elements
    z[index] = x[index] + y[index];
}

kernel部分代碼就這幾行,__global是一個(gè)限定符,表示用外部存儲(chǔ)(比如DDR)來(lái)存儲(chǔ),其他語(yǔ)法和標(biāo)準(zhǔn)C語(yǔ)言是一樣的,就不多說(shuō)了。
代碼中最重要的就是get_global_id,這個(gè)是在多work-item工作模式下的常用手段,通過(guò)id確定work-item然后進(jìn)行操作,所有的item都是一樣的,因此就add的函數(shù)里面就沒(méi)有習(xí)慣的for()的寫(xiě)法了。可以對(duì)kernel的設(shè)置進(jìn)行定制,包括compute unit,SIMD模式等,這樣來(lái)控制程序的并行性,更大的并行往往性能高,但是更耗資源。

具體的Kernel函數(shù)的內(nèi)容可以參考OpenCL的《The OpenCL Specification 1.0》以及altera的opencl編程指南,后面的筆記我會(huì)具體寫(xiě)一下。

內(nèi)存模型
最后寫(xiě)一下Opencl的內(nèi)存模型,看下面的示意圖:

用核函數(shù)中的內(nèi)存變量來(lái)簡(jiǎn)單地解釋?zhuān)河胏lCreateBuffer 創(chuàng)建、用clSetKernelArg 傳遞的數(shù)據(jù)在global memory 和constant memory中;核函數(shù)中的寄存器變量在private memory 中;核函數(shù)的內(nèi)部變量、緩存等,在local memory 中。圖例中可以看到Device 并不直接訪問(wèn)global memory,而是通過(guò)Cache 來(lái)訪問(wèn)。可以想象當(dāng)同時(shí)運(yùn)行的work-item,使用的內(nèi)存都在同一塊cache 中,則內(nèi)存吞吐的效率最高。對(duì)應(yīng)到work group 中,就是在程序設(shè)計(jì)上盡量使同一個(gè)work group 中的work item 操作連續(xù)的內(nèi)存,以提高訪存效率。

本篇就到這里。

總結(jié)

以上是生活随笔為你收集整理的OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

久久久毛片 | 国产精品视频免费在线观看 | 精品96久久久久久中文字幕无 | 久久成人在线 | 成人国产电影在线观看 | 色婷婷久久久综合中文字幕 | 99精品视频在线观看播放 | 国产婷婷色 | 2000xxx影视| 日本不卡久久 | 成人av高清在线观看 | 美女精品在线观看 | 欧美一级性生活视频 | 黄色免费看片网站 | 久草com| 一区二区三区精品在线视频 | 99热精品在线观看 | 超碰在线人人草 | 激情五月婷婷综合 | 蜜桃传媒一区二区 | 青春草免费视频 | 色操插| 粉嫩一二三区 | 在线观看你懂的网站 | 日韩专区av | 成人小视频在线观看免费 | 99r精品视频在线观看 | 国产精品久久久久久高潮 | 精品在线观| 永久黄网站色视频免费观看w | 国产精品第三页 | 在线观看中文 | 久久综合影院 | 久久国产片 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩理论在线视频 | av永久网址 | 麻花豆传媒mv在线观看网站 | 天天透天天插 | 国产亚洲精品久 | 最新真实国产在线视频 | 久久电影国产免费久久电影 | 免费精品 | 日日日天天天 | 91丨精品丨蝌蚪丨白丝jk | 久久精品精品电影网 | 美女网站在线免费观看 | 欧美日韩国产一区二区三区在线观看 | 99色国产 | 国产黄在线免费观看 | 4438全国亚洲精品观看视频 | 国产精品免费不 | 国产高清久久久久 | 黄色av免费看| 五月激情天 | 香蕉视频久久久 | 一区二区三区四区五区六区 | 日本在线h | 99 久久久久 | 操操操日日日干干干 | 国产91精品久久久久久 | 99精品电影 | 国产精品小视频网站 | 91自拍视频在线 | 国产视频一区二区在线播放 | 色a资源在线 | 日韩精品一区二区三区不卡 | 久久久久国产精品免费网站 | 成人免费在线播放视频 | 99久久精品国产一区二区三区 | 五月婷婷播播 | 久久99精品国产麻豆宅宅 | 99久久久久久久久久 | 天天狠狠 | 亚洲春色综合另类校园电影 | 免费一级毛毛片 | 97精品久久人人爽人人爽 | 日韩色在线| 欧美国产日韩一区 | 91精品视频免费 | 国产精品一级视频 | 99在线观看 | 中文字幕在线观看网 | 色噜噜狠狠狠狠色综合久不 | www.日本色| 一区二精品| 国产精品午夜免费福利视频 | 国语对白少妇爽91 | a黄色大片 | 国产黄色观看 | 午夜视频免费 | 亚洲欧美日韩国产精品一区午夜 | 免费观看午夜视频 | 免费在线一区二区 | 97超碰在| 男女日麻批 | 国产午夜精品福利视频 | 久久开心激情 | 操操操影院 | 亚洲精品国产精品99久久 | 精品在线视频一区二区三区 | 天天干天天干 | 亚洲九九九在线观看 | 久久国产日韩 | 亚洲国产黄色片 | 天堂av在线 | 中文字幕 国产专区 | 97精品超碰一区二区三区 | 日韩视频免费看 | 99久久精品无码一区二区毛片 | 在线va视频 | 激情五月在线视频 | 欧美一级免费片 | 久久久亚洲影院 | 精品黄色在线观看 | 激情久久一区二区三区 | 最新中文字幕在线资源 | 天天做天天爱天天综合网 | 性色大片在线观看 | 黄色免费在线视频 | 亚洲精品网站在线 | 国产性天天综合网 | 最新黄色av网址 | 欧美二区视频 | 欧美一区二区三区特黄 | 日韩乱理 | 丁香六月综合网 | 99热这里只有精品国产首页 | 亚洲午夜小视频 | 午夜美女av | 在线小视频 | 国产精品福利在线观看 | 四虎国产永久在线精品 | 成人一区电影 | 在线播放亚洲 | 成年人黄色免费视频 | 伊人www22综合色| 久久精品国产v日韩v亚洲 | 青青草视频精品 | av大全免费在线观看 | 久久久精品成人 | 一二三区视频在线 | 九色自拍视频 | 激情久久影院 | 国产手机视频在线播放 | 久久久久女人精品毛片 | 国产成人亚洲在线观看 | 婷婷综合激情 | 国产亚洲精品xxoo | 精品免费视频. | 免费精品在线视频 | 亚洲精品视频在线观看视频 | 欧美日韩一区二区在线观看 | 久久婷婷国产色一区二区三区 | 日韩免费一区二区三区 | 欧美亚洲国产日韩 | 色综合久久久久久久久五月 | 国内精品久久久久影院一蜜桃 | 久爱综合 | 国产精品激情在线观看 | 国产精品免费观看在线 | 久久视频在线观看 | 午夜av在线播放 | 免费黄av| 精品国产乱码一区二区三区在线 | 久久综合欧美精品亚洲一区 | 久草免费在线观看视频 | 久久久一本精品99久久精品66 | 亚洲欧洲国产视频 | 欧美日韩在线播放 | 久久综合九色综合97婷婷女人 | 99免费视频 | 欧美精品成人在线 | 日韩色在线 | 色国产精品 | 天天操比 | 在线观看黄av | 色婷婷五 | 日韩欧美精品一区二区三区经典 | 毛片一区二区 | 亚洲激情在线播放 | 日韩免费在线视频观看 | 92国产精品久久久久首页 | 欧美日视频 | 黄色性av| 天堂在线视频免费观看 | 在线成人小视频 | www.久久色| 国产久视频 | 国产精品美女久久久久久久 | 欧美性色黄大片在线观看 | 成人羞羞免费 | 蜜臀av夜夜澡人人爽人人桃色 | 91亚色在线观看 | 久久理论片 | 亚洲欧洲精品一区二区精品久久久 | 99色免费| 免费成人在线电影 | 婷婷精品国产一区二区三区日韩 | 国产精品video爽爽爽爽 | 六月丁香激情网 | av免费电影在线观看 | 亚洲三级av | 日韩av一区二区三区 | 九九精品在线观看 | 亚洲黄色免费网站 | 国产99久久久国产精品免费二区 | 91资源在线观看 | 四虎永久视频 | 国产一卡二卡四卡国 | www视频在线免费观看 | 91伊人久久大香线蕉蜜芽人口 | 国产成人精品在线 | av天天干 | 在线看黄网站 | 国产一区在线免费观看 | 国产精品正在播放 | 国产精品九九九九九九 | 国产成人精品综合 | 久久精品亚洲精品国产欧美 | 国产小视频在线免费观看视频 | 黄色大全免费网站 | 手机在线欧美 | 久久久精品网站 | 午夜在线资源 | 中文字幕一区二区三区乱码在线 | 免费av大全| 4438全国亚洲精品在线观看视频 | 看片一区二区三区 | 中文字幕亚洲综合久久五月天色无吗'' | 日韩r级在线| 欧美日韩视频在线 | 美女精品国产 | 99视频国产精品 | 丁香综合网 | 国产a级片免费观看 | 91免费日韩| 婷婷视频在线播放 | 91精品国产乱码在线观看 | 欧美一级黄大片 | 中文字幕综合在线 | 国内三级在线 | 国产成人99久久亚洲综合精品 | 欧美日韩精品二区第二页 | 亚洲最快最全在线视频 | 日本黄色黄网站 | 欧美9999| 黄色在线免费观看网址 | 婷婷播播网 | 国产一区国产精品 | 2023国产精品自产拍在线观看 | 国产一级免费av | 在线播放国产一区二区三区 | 国产精品免费视频一区二区 | 超碰人人干人人 | 久久久久久久久久久久久影院 | 区一区二在线 | 一级欧美一级日韩 | 国产美女搞久久 | 麻豆视传媒官网免费观看 | 午夜国产福利在线观看 | 91视频午夜 | 三级a毛片 | 国产91精品高清一区二区三区 | 九九热在线观看 | 国产成人免费 | 西西www4444大胆视频 | 中文在线 | 免费视频久久久久久久 | 射综合网| 国产精品久久久久久一区二区 | 久久国产视频网 | 久久久久这里只有精品 | 久久高清免费观看 | 国产亚洲成人精品 | 亚洲成人精品在线观看 | 三级在线国产 | 九月婷婷人人澡人人添人人爽 | 在线观看国产区 | 国产精品一区二区在线免费观看 | av在线直接看 | 99视频精品 | 成年人在线视频观看 | 久久久高清视频 | 国产精品美女久久久久久久久 | 免费在线播放视频 | 超碰日韩在线 | 激情深爱.com| 国产一级久久久 | av免费在线观看1 | 国产一级免费在线观看 | 日日草天天干 | 欧美精品免费视频 | 国产资源在线观看 | 9999精品免费视频 | 亚洲黄色在线观看 | 狠狠色丁香婷婷综合欧美 | 久久人人97超碰com | 夜夜嗨av色一区二区不卡 | 成年性视频| 国产精品久久久久久久久久尿 | 91av电影 | 狠狠网站| 狠狠色丁香婷婷综合基地 | 九九热在线精品视频 | 亚洲精品国产精品国自产 | 成人观看| 亚洲永久精品视频 | 成人黄色av网站 | 日韩网| 六月婷色 | 久久久久久麻豆 | 精品视频免费观看 | 欧美日bb| 在线a视频免费观看 | 久操中文字幕在线观看 | 91在线视频免费91 | 国产黄色精品在线 | 欧美视频99 | www黄色| 国产极品尤物在线 | 国产成人福利片 | 激情综合色综合久久综合 | 在线观看免费中文字幕 | 精品福利视频在线 | 日韩高清片 | 国产在线精| 国产精品二区在线 | 免费看搞黄视频网站 | 高清免费在线视频 | 精精国产xxxx视频在线播放 | 国产精品少妇 | 日本中文字幕网 | 92国产精品久久久久首页 | 五月婷婷,六月丁香 | 色99久久| av三级av | 亚洲精品小区久久久久久 | 亚洲精品国产精品乱码在线观看 | 日韩精品欧美精品 | 91亚色免费视频 | 黄色小网站免费看 | 成人av高清在线观看 | 国产成人av一区二区三区在线观看 | 久久久久久久久影视 | 国产黄色片久久 | 91精品国产高清自在线观看 | 91精品国产91久久久久 | 日韩黄在线观看 | 亚洲精品久久激情国产片 | 17婷婷久久www | 国产在线精品视频 | 特级黄色视频毛片 | 嫩草伊人久久精品少妇av | 三级在线国产 | 91tv国产成人福利 | 欧美一二三区在线观看 | 欧美三级免费 | 精品91视频| a黄色影院 | 国产美女主播精品一区二区三区 | 日韩国产欧美在线视频 | 免费国产在线精品 | 日韩在线视频不卡 | www..com黄色片 | 成人久久久久久久久 | 国产资源在线免费观看 | 精品国产视频在线观看 | 五月婷婷.com | 国产日产精品一区二区三区四区的观看方式 | 91在线免费播放 | 日韩在线观看a | 91完整版在线观看 | 国产精品岛国久久久久久久久红粉 | www.天天干| 在线观看麻豆av | 97色婷婷成人综合在线观看 | 中文字幕在线影视资源 | 中文字幕免费高清av | 欧美在线91 | 国产精品一区二区久久精品爱微奶 | 在线免费观看欧美日韩 | 亚洲一区黄色 | 狠狠的干狠狠的操 | 久久久天堂 | 毛片激情永久免费 | 91大神一区二区三区 | 日韩有色 | 色婷婷免费视频 | 美女黄色网在线播放 | 国产一二区精品 | 99精品在线观看视频 | 99在线视频精品 | 国产一区二区在线免费播放 | 91精品一区二区三区久久久久久 | 国产成人在线免费观看 | 91av综合 | 在线一区观看 | 日韩激情一二三区 | 97视频免费看| 99免费在线| 狠狠色丁香婷婷综合橹88 | 日韩视频www | 深爱激情久久 | 久久不卡国产精品一区二区 | 韩日精品中文字幕 | 99久久久国产精品免费观看 | 丁香免费视频 | 2019中文最近的2019中文在线 | 天天夜夜狠狠操 | 成人免费在线播放视频 | 亚州国产精品视频 | 中文字幕日韩精品有码视频 | 天天草天天插 | 97精产国品一二三产区在线 | 久久在线免费视频 | 中文字幕资源在线观看 | 久久专区| 精品免费观看 | 国产精品麻豆视频 | 久久国内视频 | 国产大陆亚洲精品国产 | 日韩欧美在线中文字幕 | 色停停五月天 | 国产成在线观看免费视频 | av成人在线看 | 亚洲 欧美 另类人妖 | 国产一区二区在线免费播放 | 国产精品一区二区果冻传媒 | 亚洲欧美日本国产 | 国产二区视频在线观看 | 亚洲精品国产拍在线 | 伊人五月天.com | 91人人爱 | 激情开心色 | 99久热在线精品视频 | 国产男女爽爽爽免费视频 | 日韩免费观看高清 | 成人免费看黄 | 欧美精品三级 | 欧美亚洲一级片 | 久操视频在线播放 | 国产无遮挡又黄又爽馒头漫画 | 天堂av在线网站 | 国产va在线| 久久午夜免费观看 | 女女av在线 | 国产免费中文字幕 | 夜夜操狠狠干 | 青草视频网 | 国产又粗又猛又色 | 国产精品一区二区 91 | 国产精品视频观看 | 久久高视频 | 超碰97免费观看 | 国内成人精品视频 | 很黄很色很污的网站 | 97人人射 | 日韩一区二区免费播放 | 五月天久久久 | 五月激情久久 | 9999精品免费视频 | 免费在线激情电影 | 99热这里精品 | 亚洲精品国产综合久久 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产精品一区二区三区电影 | 在线高清 | 久久99视频 | 成人99免费视频 | 日本激情视频中文字幕 | 久久福利小视频 | 亚洲综合激情五月 | 久草在线最新免费 | 色激情五月 | 日韩欧美在线观看 | 青青网视频 | 人人插人人看 | 9色在线视频 | 天天插天天 | 久久精品综合一区 | 91在线视频免费 | 精品美女久久久久久免费 | 日韩一区正在播放 | 亚洲激情视频在线 | 91丨九色丨国产在线 | 激情综合电影网 | 亚洲精品久久久久久久不卡四虎 | 国产精品资源在线 | 久久网址 | 天堂av最新网址 | 在线看片中文字幕 | 天天色成人网 | 久久精品99国产精品亚洲最刺激 | 最新av观看 | 久久久av免费 | 日韩免费b | 日韩av男人的天堂 | 91综合色| 日本最新中文字幕 | av大全在线| 99久热精品 | 一级黄色a视频 | 97福利在线 | 精品国产一区二区三区噜噜噜 | 久草五月 | 亚洲精品久久久久中文字幕二区 | 五月天视频网站 | 亚洲理论影院 | 超碰人人av | 日韩av影片在线观看 | 99久久久国产精品免费99 | 久久久久免费视频 | 黄色av一区二区三区 | 日韩精品一区二区三区高清免费 | 国产一区二区免费看 | 久久97超碰 | 欧美日韩国产一区二区三区 | 在线播放视频一区 | 精品亚洲视频在线观看 | 97超碰资源总站 | 91片黄在线观看动漫 | 天天干天天干 | 久久综合亚洲鲁鲁五月久久 | 在线成人av | 久久精品这里都是精品 | 6699私人影院 | www黄色| 麻豆视频在线 | 麻豆国产精品永久免费视频 | 在线观看av小说 | 国产系列精品av | 波多野结衣一区 | 啪啪凸凸 | 夜夜爽天天爽 | 四虎在线观看视频 | 色婷婷激情综合 | 天天射天天操天天色 | 日本中文字幕高清 | 伊人伊成久久人综合网站 | 国产一区视频免费在线观看 | 欧美在线观看视频一区二区 | 欧美国产日韩激情 | 激情久久一区二区三区 | 97人人澡人人添人人爽超碰 | 日韩成人精品一区二区 | 亚洲自拍偷拍色图 | 国产电影一区二区三区四区 | 日本夜夜草视频网站 | 精品国产伦一区二区三区观看说明 | 在线黄色国产电影 | 欧美日韩大片在线观看 | 久草在线99 | 欧美一级专区免费大片 | 一级理论片在线观看 | av福利在线免费观看 | 久久综合加勒比 | 丁香 婷婷 激情 | 黄色一级影院 | 午夜电影 电影 | 4438全国亚洲精品在线观看视频 | 欧美在线观看视频 | av中文在线观看 | 亚洲日韩中文字幕在线播放 | 午夜神马福利 | 国产精品亚洲精品 | 天堂v中文 | www.久久精品视频 | 亚洲高清91 | 免费v片| 亚洲视频在线播放 | av资源网在线播放 | 最近更新好看的中文字幕 | 国产黄色免费看 | 天天操天天插 | 麻豆传媒视频观看 | 成人av在线一区二区 | 日韩精品观看 | 亚洲综合成人专区片 | 婷婷国产在线观看 | 69久久99精品久久久久婷婷 | 操操操综合 | 五月激情丁香婷婷 | 亚洲网站在线看 | 亚洲国产黄色 | 在线视频 一区二区 | 国产精品成人久久久久 | 国产精品久久久久久久久久久免费看 | 国产午夜精品av一区二区 | 98超碰人人 | 天天爱天天舔 | 精品伦理一区二区三区 | 色黄视频免费观看 | 男女精品久久 | 国产香蕉视频在线观看 | 久久久久免费电影 | 四虎在线免费观看 | 国产高清日韩欧美 | 婷婷丁香导航 | 国产区免费在线 | 黄色精品一区 | 91色国产在线 | 久草在线免 | 欧美午夜一区二区福利视频 | 亚洲最大av网站 | 特级西西444www大胆高清无视频 | 91福利国产在线观看 | 五月花激情 | 国产中文字幕视频在线 | 中文字幕人成乱码在线观看 | 国产麻豆精品一区 | 国产免费看 | 国产精品美女久久久久久 | 久久国产精品99久久久久久丝袜 | 色射爱 | 丁香网婷婷 | 国产免费亚洲 | 国产精品一区二区在线免费观看 | 免费黄av | 婷色在线 | 精品美女视频 | av字幕在线 | 中文字幕高清有码 | 香蕉日日| 亚洲视屏一区 | 丁香婷婷社区 | 久久久www免费电影网 | 日韩欧美在线观看一区二区三区 | 日本护士撒尿xxxx18 | 黄色的视频| 五月婷婷中文网 | 国产成人免费av电影 | 91综合色 | 日本中文字幕视频 | 久草在线视频在线观看 | 国产品久精国精产拍 | 亚洲精品日韩一区二区电影 | 欧洲精品一区二区 | 91精品国自产在线 | 久香蕉| 国产一二区免费视频 | 很污的网站 | 色吊丝在线永久观看最新版本 | 一级性生活片 | 久久国产精品99国产 | 久久免费视频7 | 91成人在线视频 | 国产精品免费在线 | 69国产盗摄一区二区三区五区 | 日韩免费福利 | 国产一区二区在线免费观看 | 色五月色开心色婷婷色丁香 | 精品国产伦一区二区三区 | 日韩av线观看 | 天天看天天干天天操 | 欧美激情视频一二区 | 久久99精品热在线观看 | 97在线看 | 特黄特黄的视频 | 国产在线一区二区三区播放 | 久久看片网| 在线观看视频中文字幕 | 国产黄色精品在线观看 | 亚洲精品美女在线观看播放 | 五月婷婷欧美 | 中文字幕av影院 | 男女激情片在线观看 | 国产资源中文字幕 | 国产精品第三页 | 国产片免费在线观看视频 | 久久五月精品 | 日韩视频一区二区三区在线播放免费观看 | 亚洲免费成人 | 久草视频在线免费播放 | 国产亚洲精品久久久久秋 | 天天操天天操 | 久草a在线| 久草在线手机观看 | 99精品免费观看 | 91精品啪在线观看国产81旧版 | 毛片在线播放网址 | 二区视频在线观看 | 精久久久久 | 国产麻豆成人传媒免费观看 | 91福利在线导航 | 九九欧美 | 国产精品毛片久久久久久 | 日韩欧美在线综合网 | 色偷偷888欧美精品久久久 | 天天操天天干天天插 | 中文字幕中文字幕 | 国产欧美日韩精品一区二区免费 | 少妇18xxxx性xxxx片 | 伊人宗合网 | 午夜视频在线观看一区二区三区 | 精品久久久久久久久久久久久久久久 | 99在线观看精品 | 九草在线视频 | 9797在线看片亚洲精品 | 色婷婷综合成人av | 97视频亚洲 | 天堂网一区二区三区 | 婷婷色社区 | 在线观看成人一级片 | 最新日韩电影 | 激情综合色图 | 中文字幕电影高清在线观看 | 国产一区二区久久久久 | 青春草免费在线视频 | 五月婷婷开心 | 91日韩在线播放 | 久久综合成人 | 又爽又黄又无遮挡网站动态图 | 国产中文字幕视频在线观看 | 国产中文字幕三区 | 一区二区亚洲精品 | 四虎成人网 | 黄色片视频在线观看 | 国产九九九精品视频 | 99久久精品久久亚洲精品 | 色婷婷福利视频 | 欧美一级性 | 九色porny真实丨国产18 | 国产视频资源在线观看 | av片子在线观看 | 久久夜色精品国产欧美一区麻豆 | 九九免费观看全部免费视频 | 久久精品一区二区三区视频 | 色偷偷88888欧美精品久久 | 99久久999久久久精玫瑰 | 成人一级免费电影 | 亚洲女在线 | 成人午夜电影在线观看 | 欧美精品在线一区二区 | 色大片免费看 | 伊人国产视频 | 国产精品日韩在线观看 | 黄色小说免费在线观看 | 国产精品毛片久久久久久久 | 一区二区三区福利 | 国产在线观看你懂得 | 国产精品久久久久一区二区三区共 | 五月婷婷视频在线 | 制服丝袜天堂 | 久久久久久久久久国产精品 | 91麻豆精品国产91久久久无需广告 | 日本三级香港三级人妇99 | 99视频在线免费观看 | 美女精品久久 | 99精品免费视频 | 国产精品一区在线观看你懂的 | 国产探花视频在线播放 | 亚洲精品久久久久中文字幕二区 | 成人av电影网址 | 日韩精品免费专区 | 日韩一二区在线 | 国产精品涩涩屋www在线观看 | 国内精品久久天天躁人人爽 | 在线 视频 一区二区 | 国产亚洲婷婷免费 | 波多野结衣一区二区三区中文字幕 | 青青射 | www色综合 | 狠狠色丁香久久婷婷综合丁香 | 精品一区精品二区高清 | a国产精品| 99久热在线精品视频成人一区 | www五月| 久久天天躁狠狠躁夜夜不卡公司 | 久草视频资源 | 97人人澡人人添人人爽超碰 | 91在线色| 日日爽日日操 | 五月婷婷在线视频观看 | 五月婷婷.com| 中文字幕91| 美女视频永久黄网站免费观看国产 | 亚洲精品777 | 久久久精品国产一区二区 | 色99色| 日韩久久久久久久久久久久 | 亚洲区另类春色综合小说 | 黄色大全视频 | 久久国产精品二国产精品中国洋人 | 国产精品免费小视频 | 亚洲精品99 | 超碰人人舔 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 欧美日韩另类视频 | 欧美日视频 | 午夜久久电影网 | 正在播放一区二区 | 日韩有码欧美 | 在线黄色毛片 | 国产精品成人品 | 99久久婷婷国产精品综合 | 成人一区不卡 | 欧美日韩精品久久久 | 毛片视频电影 | 久久久精品一区二区 | 国产一区精品在线 | 欧美视频一区二 | 97夜夜澡人人双人人人喊 | 免费www视频| 精品国产成人在线影院 | 成人在线免费小视频 | 免费看搞黄视频网站 | 久久影院一区 | 麻豆一区二区三区视频 | 久久久久国产精品午夜一区 | 日韩精品在线视频 | 成人cosplay福利网站 | 99精品热视频只有精品10 | 久久婷婷影视 | 免费美女久久99 | 91亚洲精品国偷拍 | 国产午夜精品免费一区二区三区视频 | 国产麻豆成人传媒免费观看 | 国产黄色片免费 | 久草在线视频在线观看 | 在线а√天堂中文官网 | 久操中文字幕在线观看 | 亚洲精品在线观看的 | 国产成人精品av久久 | 日韩av电影中文字幕 | 国模精品在线 | 日韩视频免费观看高清完整版在线 | 五月天婷亚洲天综合网精品偷 | 久久九九影视网 | 99色| 五月婷婷狠狠 | 日韩一区二区久久 | 亚洲国产欧美一区二区三区丁香婷 | 狠狠色综合网站久久久久久久 | 在线播放亚洲 | 国产精品久久久久久久久搜平片 | 成人一区在线观看 | 天天干夜夜干 | 一区二区精品国产 | 丰满少妇在线观看网站 | 国产不卡精品 | 亚洲黄色大片 | 五月天综合婷婷 | 美女网站色免费 | 91xav| 99久久这里有精品 | 国产伦精品一区二区三区免费 | 免费国产在线精品 | 国产欧美日韩精品一区二区免费 | 视频 国产区 | 久久精品一二三区白丝高潮 | 97在线精品国自产拍中文 | 日韩在线免费观看视频 | 国产在线看| 亚洲欧美va | 亚洲视频一级 | 国产日韩av在线 | 久久久久久久国产精品影院 | 日本黄色免费播放 | 亚洲欧美日韩中文在线 | 精品久久久久久国产偷窥 | 色人久久 | 午夜视频在线观看欧美 | 亚洲黄电影| 天天色天天射综合网 | 国产又黄又爽无遮挡 | 午夜精品电影一区二区在线 | 91成人网在线观看 | 奇米影视8888在线观看大全免费 | 五月婷婷操 | 热re99久久精品国产66热 | 免费观看91视频大全 | 色综合久久88色综合天天6 | 人人插人人艹 | 国产精品18久久久 | 97香蕉视频 | 日本午夜免费福利视频 | 精品中文字幕视频 | 成人啪啪18免费游戏链接 | 久久久99久久| 人九九精品 | 超碰97免费观看 | 日韩精品一区二区在线观看 | 日韩性xxxx| 热久久电影 | 久草视频网 | 欧美性色19p | 亚洲无人区小视频 | 精品久久久久国产 | 国产人成一区二区三区影院 | 精品国产一区二区三区在线 | av免费在线免费观看 | 欧美午夜a| wwxxx日本| 国产二区视频在线 | 丁香六月天婷婷 | 日韩理论片中文字幕 | 人人舔人人插 | bbw av| 99精品视频网站 | 欧美性极品xxxx做受 | 亚洲成人精品在线 | 五月婷婷在线观看 | 五月天久久久 | 久久人操 | 九九精品久久久 | 玖玖在线资源 | 国产精品视频免费在线观看 | 日韩欧美一区二区三区在线观看 | 99热在线观看 | 99久久影视 | 在线免费性生活片 | 日日夜夜操av | 91传媒激情理伦片 | 黄色在线网站噜噜噜 | 中文字幕第一页在线播放 | 在线观看视频免费大全 | av蜜桃在线| 国产无限资源在线观看 | 91久久久久久国产精品 | 中文字幕av在线播放 | 麻豆91在线观看 | 69国产成人综合久久精品欧美 | 亚洲国产97在线精品一区 | 免费在线电影网址大全 | 九九视频精品免费 | 国产一区二区久久久久 | 一级a性色生活片久久毛片波多野 | a视频免费在线观看 | 美女久久久久久久久久久 | 99草在线视频 | 久久 国产一区 | 欧美视频99 | 毛片永久新网址首页 | 午夜少妇av | 精久久久久 | 婷婷九九 | 99免费看片| 欧美精品在线视频观看 | 国内精品视频免费 | 国产精品嫩草影视久久久 | 久草视频在线播放 | a在线播放 | 高清不卡一区二区三区 | 最近日本中文字幕a | 久久艹艹| 日韩av二区 | 中文字幕色网站 | 久久激五月天综合精品 | 日韩城人在线 | 我爱av激情网 | 久久久久美女 | 91精品国产综合久久久久久久 | 国产精品久久久久高潮 | 99精品免费久久久久久日本 | 国产一级免费在线观看 | 亚洲国产99| 国产午夜精品一区二区三区四区 | 黄色av一区二区 | 麻豆传媒视频在线免费观看 | 精品国偷自产在线 | 伊人婷婷综合 | 国产清纯在线 | 日本黄色免费看 | 97人人人人| 最新中文字幕在线播放 | 国产精品久久久久亚洲影视 | 区一区二区三区中文字幕 | 69夜色精品国产69乱 | 国产视频在线播放 | 久久久久女人精品毛片 | 国产中文字幕视频在线 | 久久9视频 | 国产在线精品福利 | 日韩精品亚洲专区在线观看 | 色婷婷五| 国产尤物视频在线 | 国偷自产中文字幕亚洲手机在线 | 国产精品黄色 | a级成人毛片 | 91精品国产麻豆国产自产影视 | 欧美性生活久久 | 中文字幕在线不卡国产视频 | 国产精品电影一区二区 | 91完整版在线观看 | 国产色婷婷精品综合在线手机播放 | 91精品国自产在线观看欧美 | 人人爽人人av | 天天做日日爱夜夜爽 | 91在线产啪 | 久久精品久久久久久久 | 二区三区视频 | 五月婷婷影院 | 国产小视频你懂的在线 | 99在线观看视频 | 亚洲精品国产综合99久久夜夜嗨 | 999国产在线 | 国产黄色片一级 |