久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

聊一聊關于php源碼中refcount的疑問

瀏覽:191日期:2022-06-05 18:54:05

在瀏覽PHP源碼的時候,在眾多的*.stub.php中,發現了這樣的注釋,@refcount 1

通過翻看build/gen_stub.php源碼,發現了在解析*.stub.php文件時,關于返回信息的代碼。

<?php
class ReturnInfo {
    const REFCOUNT_0 = "0";
    const REFCOUNT_1 = "1";
    const REFCOUNT_N = "N";

    const REFCOUNTS = [
self::REFCOUNT_0,
self::REFCOUNT_1,
self::REFCOUNT_N,
    ];

    //...
    
    private function setRefcount(?string $refcount): void
    {
$type = $this->phpDocType ?? $this->type;
$isScalarType = $type !== null && $type->isScalar();

if ($refcount === null) {
    $this->refcount = $isScalarType ? self::REFCOUNT_0 : self::REFCOUNT_N;
    return;
}

if (!in_array($refcount, ReturnInfo::REFCOUNTS, true)) {
    throw new Exception("@refcount must have one of the following values: \"0\", \"1\", \"N\", $refcount given");
}

if ($isScalarType && $refcount !== self::REFCOUNT_0) {
    throw new Exception("A scalar return type of "" . $type->__toString() . "" must have a refcount of "" . self::REFCOUNT_0 . """);
}

if (!$isScalarType && $refcount === self::REFCOUNT_0) {
    throw new Exception("A non-scalar return type of "" . $type->__toString() . "" cannot have a refcount of "" . self::REFCOUNT_0 . """);
}

$this->refcount = $refcount;
    }

明顯,如果返回值類型是scalar,也就是標量(基本數據類型,整型、浮點型、字符串等),那么refcount指定為0,否則為N。如果設置了注釋,那么以注釋為最高優先級。

以函數ob_list_handlers為例:

/**
 * @return array<int, string>
 * @refcount 1
 */
function ob_list_handlers(): array {}

返回值是array,所以默認的refcount應該是N,但由于設置了注釋@refcount 1,所以返回值的引用計數被替換成1。

這些邏輯我能看懂,但設置返回值引用計數的目的是什么?我還是一頭霧水

我接著往下排查,發現通過返回值的引用計數,在生成func_info的時候,會有些不同。如果返回值引用計數為1或N,則會用對應的宏去初始化func_info結構體。如果是0,則不進入初始化列表。

以上的代碼邏輯依然可以在gen_stub.php中找到,1393行,getOptimizerInfo

public function getOptimizerInfo(): ?string {
if ($this->isMethod()) {
    return null;
}

if ($this->alias !== null) {
    return null;
}

if ($this->return->refcount !== ReturnInfo::REFCOUNT_1 && $this->return->phpDocType === null) {
    return null;
}

$type = $this->return->phpDocType ?? $this->return->type;
if ($type === null) {
    return null;
}

return "\tF" . $this->return->refcount . "("" . $this->name->__toString() . "", " . $type->toOptimizerTypeMask() . "),\n";
    }

獲取函數原型的refcount,生成諸如F1()FN()的代碼,生成的頭文件位置在Zend/Optimizer/zend_func_infos.h

static const func_info_t func_infos[] = {
    F1("zend_version", MAY_BE_STRING),
    FN("func_get_args", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_ANY),
    F1("get_class_vars", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF),
    F1("get_class_methods", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
    F1("get_included_files", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
    FN("set_error_handler", MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_OBJECT|MAY_BE_NULL),
    FN("set_exception_handler", MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_OBJECT|MAY_BE_NULL),
    F1("get_declared_classes", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
    F1("get_declared_traits", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
    F1("get_declared_interfaces", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
    F1("get_defined_functions", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_ARRAY),
    F1("get_defined_vars", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF),
    F1("get_resource_type", MAY_BE_STRING),
    F1("get_loaded_extensions", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
    F1("get_defined_constants", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_ANY),
    F1("debug_backtrace", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_ARRAY),
    F1("get_extension_funcs", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_FALSE),
    F1("gc_status", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_FALSE|MAY_BE_ARRAY_OF_TRUE),
    F1("bcadd", MAY_BE_STRING),
    F1("bcsub", MAY_BE_STRING),
    F1("bcmul", MAY_BE_STRING),
    F1("bcdiv", MAY_BE_STRING),
    F1("bcmod", MAY_BE_STRING),
    F1("bcpowmod", MAY_BE_STRING),
    F1("bcpow", MAY_BE_STRING),
    F1("bcsqrt", MAY_BE_STRING),
    FN("bzopen", MAY_BE_RESOURCE|MAY_BE_FALSE),
    F1("bzerror", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_STRING),
    F1("cal_from_jd", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_NULL),
    F1("cal_info", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY),
    F1("curl_copy_handle", MAY_BE_OBJECT|MAY_BE_FALSE),
    //...
};

再去看看F1FN的宏定義。

typedef struct _func_info_t {
    const char *name;
    unsigned    name_len;
    uint32_t    info;
    info_func_t info_func;
} func_info_t;

#define F0(name, info) \
    {name, sizeof(name)-1, (info), NULL}
#define F1(name, info) \
    {name, sizeof(name)-1, (MAY_BE_RC1 | (info)), NULL}
#define FN(name, info) \
    {name, sizeof(name)-1, (MAY_BE_RC1 | MAY_BE_RCN | (info)), NULL}
#define FC(name, callback) \
    {name, sizeof(name)-1, 0, callback}

僅僅是設置了不同的type maskF1設置了MAY_BE_RC1FN設置了MAY_BE_RCN | MAY_BE_RC1

依然一頭霧水,但是通過目錄名,我依稀能猜出這跟性能優化有關,跟JIT有關系。我決定繼續追查下去,看看這些初始化后的結構體在哪里使用過。

我們很清楚,設置位信息用|,那判斷有沒有設置肯定用&,全局搜索& MAY_BE_RCN,再看看哪些代碼跟優化有關,定位到了如下代碼,在zend_jit.c的530行:

#ifdef ZEND_JIT_USE_RC_INFERENCE
    /* Refcount may be increased by RETURN opcode */
    if ((info & MAY_BE_RC1) && !(info & MAY_BE_RCN)) {
for (j = 0; j < ssa->cfg.blocks_count; j++) {
    if ((ssa->cfg.blocks[j].flags & ZEND_BB_REACHABLE) &&
ssa->cfg.blocks[j].len > 0) {
const zend_op *opline = op_array->opcodes + ssa->cfg.blocks[j].start + ssa->cfg.blocks[j].len - 1;

if (opline->opcode == ZEND_RETURN) {
    if (opline->op1_type == IS_CV && opline->op1.var == EX_NUM_TO_VAR(var)) {
info |= MAY_BE_RCN;
break;
    }
}
    }
}
    }
#endif

如果返回值的引用計數是1,而不是N的時候,并且開啟了返回值引用計數推導功能,就走這段代碼。這段代碼又涉及到所謂SSA,靜態單賦值的編譯器設計方式。

在編譯器設計中,靜態單一賦值形式(通常縮寫為SSA形式或簡稱SSA)是中間表示(IR)的屬性,它要求每個變量只分配一次,并且每個變量在使用之前定義。原始IR中的現有變量被拆分為版本,在教科書中,新變量通常由原始名稱用下標表示,以便每次定義都有自己的版本。在SSA形式中,use-def鏈是顯式的,每個包含一個元素。

所以上面的代碼就是判斷SSA的cfg(control flow graph控制流圖)的塊是不是可達的,如果可達,執行條件中的代碼。

還是不太通透,雖然能推斷出設置refcount跟優化有關,跟靜態單一賦值有關,但在寫擴展的時候,什么時候該用@refcount 1,還是不太清楚。

 總結

到此這篇關于php源碼中refcount疑問的文章就介紹到這了,更多相關php源碼中refcount內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: PHP
主站蜘蛛池模板: www.国产精品 | 久久久艹| www国产网站| 久久精品国产一区二区三区不卡 | 成人免费一区二区三区视频网站 | 欧美日韩专区 | 国产精品成人久久久久 | 亚洲精品在线视频 | 一级一片免费视频 | 亚洲精品乱码久久久久久蜜糖图片 | 午夜久久久久 | 中文字幕网在线 | 男女羞羞视频免费看 | 久久精品中文字幕一区 | 国产精品久久9 | 九九久久精品 | 日韩成人中文字幕 | 国产精品久久久久久久久久10秀 | 欧美亚洲日本 | 97色婷婷成人综合在线观看 | 欧美久久一区二区三区 | 日韩喷潮 | 亚洲日本韩国在线观看 | 先锋av资源网| 视频在线一区 | 日本精品久久 | 午夜大片在线观看 | 精品久久久久久久久久久久久久 | 女人色网 | av国产精品| 午夜精品久久久久久久白皮肤 | 国产女人爽到高潮免费视频 | 欧美日韩精品一区二区三区蜜桃 | 99成人 | 亚洲国产精品一区二区久久 | 国产精品久久久久久久久久新婚 | 另类二区| 日韩精品一二三区 | 天天天综合网 | 中文字幕免费在线观看 | 日日日日日 | 亚洲乱码一区二区三区在线观看 | 久久精品国产亚洲一区二区三区 | av中文在线 | 国产成人精品一区二区三区四区 | 久久久一 | 欧美精品一区二区三区一线天视频 | 国产视频精品视频 | 综合久久综合久久 | 国内精品视频一区二区三区 | 人人种亚洲 | 手机看片369 | 亚洲精品自在在线观看 | 日日摸夜夜添夜夜添亚洲女人 | 福利视频三区 | a成人 | 亚洲视频 欧美视频 | 亚洲一区不卡在线 | 国产色视频网站 | 亚洲精品成人 | 日本黄色一级片免费看 | 日本不卡在线 | 日韩亚洲 | 欧美中文在线 | 99精品视频在线观看 | 久久成人国产精品 | 久久夫妻网| 欧美国产精品一区 | 天天干天天操天天爽 | 久久精品国产99国产精品 | 国精产品一区二区三区有限公司 | 日韩电影中文字幕 | 四虎成人免费电影 | www.成人久久 | 国产视频综合在线 | 久久成人av | 亚洲伊人久久网 | 成av在线| 国产在线一区二区三区 | 亚洲视频中文字幕 | 精国产品一区二区三区 | 成人一级电影在线观看 | 免费在线一区二区 | 久久久久久网站 | 国产在线一区二区 | 国产视频精品一区二区三区 | 亚洲免费视频一区 | 久久全国免费视频 | 876av国产精品电影 | 亚洲啊v在线 | 美女精品视频 | 久久韩国 | 国产精品999| 免费观看一级特黄欧美大片 | 午夜大片网 | 久久久国产精品 | 久久中文字幕一区 | 99精品欧美一区二区三区综合在线 | 日韩精品成人 | 欧美视频一二三区 | 日韩h视频 | 天堂中文视频在线观看 | 一级毛片免费播放 | 午夜精品久久 | 亚洲视频观看 | 欧美精品综合 | 91视频国产区 | 黄色一级在线播放 | 精品国产鲁一鲁一区二区三区 | 午夜影视av | 91资源在线观看 | 亚洲欧美日韩另类精品一区二区三区 | 噜噜噜噜狠狠狠7777视频 | 视频一区在线播放 | 久久伊人操 | 最新av片 | 久久久91精品国产一区二区 | 国产精品日韩欧美一区二区三区 | 91精彩视频在线观看 | 日韩不卡一区二区 | 久久久久久久久一区二区 | 亚洲三区视频 | 97人人做人人人难人人做 | 亚洲久久在线 | 欧美精品一区二区在线观看 | 欧美一区二区在线看 | 天天摸天天操 | www.久久.com| 亚洲精品日韩精品 | 精品在线一区 | 久久99精品久久久水蜜桃 | 久久中文字幕一区二区 | 免费的av网站 | 国产精品九九久久99视频 | 国产精品久久久久久久久大全 | 久久久成| www日批| 日韩欧美国产一区二区 | 国产偷国产偷精品高清尤物 | 美女久久 | 日韩精品一 | 亚洲欧美日韩另类精品一区二区三区 | 国产一级一级 | 天天干狠狠干 | 伊人网在线免费观看 | av中文字幕在线播放 | 精品一区二区在线播放 | 亚洲一区二区黄 | 日韩在线免费 | 欧美日韩中文在线观看 | 在线观看国产视频 | 国产激情免费 | 国产精品自产av一区二区三区 | 日韩中文字幕在线观看 | 国产久 | 国产一区影院 | 国产一级视频免费播放 | 亚洲国产日韩a在线播放性色 | 91精品国产综合久久久蜜臀粉嫩 | 中文字幕乱码一区二区三区 | 国产精品一区亚洲二区日本三区 | 日韩一级免费在线观看 | 成人a视频在线观看 | 国产激情视频网 | 噜噜噜天天躁狠狠躁夜夜精品 | 国产日韩欧美一区 | 亚洲精品久久久久久下一站 | 91大神免费在线观看 | 国产精品二区三区 | 日韩欧美国产一区二区三区 | 91亚洲国产成人久久精品网站 | 国产视频自拍一区 | 国产亚洲二区 | 久久1区 | 久久精品一区二区三区四区 | 精品日韩一区二区 | 久久黄网| 亚洲中国精品精华液 | 国产成人综合在线 | 国产h视频在线观看 | 久久一区 | 亚洲v日韩v综合v精品v | 国产精品11 | 国产欧美中文字幕 | 国产精品a久久久久 | 成人在线观看免费视频 | 日韩一区二 | 亚洲午夜精品在线观看 | 91嫩草在线 | 亚洲a视频 | 日韩视频在线一区二区 | 精品96久久久久久中文字幕无 | 国产一区二区在线看 | 欧美在线观看免费观看视频 | 久久成人免费 | 久久九 | 日韩美女av在线 | 羞羞视频网站在线免费观看 | 国产成人av在线 | 精品久久久一区二区 | 欧美亚洲三级 | 精品视频久久 | 91精品一区二区 | 91精品久久久久久久久 | 国产在线小视频 | 欧美一区二区三区精品 | 亚洲精品自拍视频 | 欧美精品成人一区二区三区四区 | 国产欧美精品一区二区 | 日韩视频一区二区 | 午夜激情在线免费观看 | 99中文视频| 成人亚洲视频 | 亚洲品质自拍视频网站 | 精品欧美激情在线观看 | 欧美日韩精品一区二区三区 | 亚洲人成一区 | 国产一区二区三区精品久久久 | 三级视频网站 | 日韩爽妇网 | 国产成人免费视频网站高清观看视频 | 久久久久国产精品一区二区三区 | 久久久国产精品x99av | 在线视频成人 | 国产美女久久久 | 日本高清精品 | www日韩 | 精品久久久久久久久久久久 | 精产国产伦理一二三区 | 国产高清视频在线观看 | 国产精品一二三区 | 欧美一区二区三区视频 | 999国内精品永久免费视频 | 欧美激情 在线 | 欧美区视频 | 国产精品99久久久久久久vr | 一区在线观看视频 | 亚洲国产精品一区二区三区 | 青娱乐国产精品视频 | 伊人网视频 | 在线观看日韩 | 欧美一区二区精品 | 亚洲国产精品一区二区三区 | 欧美日韩国产综合视频 | 国产精品无码永久免费888 | 久久久久国产亚洲日本 | 国产精品人人做人人爽 | 日韩中文字幕在线视频 | 国产精品久久久久久久午夜 | 久久久国产精品视频 | 国产精品久久久久久久久久99 | 国产视频大全 | 黄av在线| 欧美成人精品一区二区男人看 | 国产电影一区二区三区图片 | 欧美中文字幕一区二区 | 欧美一区二 | 情侣av | 蜜桃毛片 | 99视频在线免费观看 | 九一亚洲精品 | 99re6在线视频精品免费 | 成人福利在线观看 | 日本精品在线 | 综合精品久久久 | 日韩免费在线观看视频 | 日韩一级免费在线观看 | 国产精品极品美女在线观看免费 | 一区二区三区精品视频 | 中文字幕在线播放不卡 | 黄色精品视频 | 国产精品成人一区二区三区夜夜夜 | www成人精品 | 国产高清视频 | 人人干天天操 | 精品免费视频一区二区 | 毛片综合 | 人人干网站 | 一区二区三区国产视频 | 日韩亚洲视频在线观看 | 精品国产天堂 | 亚洲丶国产丶欧美一区二区三区 | 久久久久久亚洲一区二区三区蜜臀 | 天天看片天天操 | 亚洲一区二区中文 | 男女全黄一级一级高潮免费看 | 亚洲一区二区三区在线视频 | 国产人免费人成免费视频 | 久久精品一区二区三区四区 | 国产偷录视频叫床高潮对白 | 日本免费视频在线观看 | 国产福利在线观看 | 久久99国产伦子精品免费 | 91久久久久久久久久久 | 午夜国产精品成人 | 天天天堂 | 久草在线| 国产妇女乱码一区二区三区 | 日韩视频在线观看视频 | 精品日韩一区二区 | 日韩精品av一区二区三区 | 午夜影视在线观看 | 亚洲精选国产 | www.成人 | 成人午夜毛片 | 久久久久久久一区 | 久久91精品 | 国产精品久久久久久吹潮 | 一区二区三区有限公司 | 福利视频一区二区三区 | 成年人在线视频播放 | 国产噜噜噜噜噜久久久久久久久 | 日韩欧美二区 | 羞羞视频在线观看入口 | 日韩欧美三区 | 91午夜在线 | 亚洲高清视频在线 | 久久99精品久久久 | 日韩福利在线 | 国产在线播 | 国产一二区在线观看 | 欧美精品一区在线发布 | 日本一区二区不卡 | 亚洲一区 日韩精品 中文字幕 | 国产精品久久久久久久久久久久久久 | 亚洲国产精品久久 | 国产福利在线观看 | 国产美女啪啪 | 欧美在线一二三 | 久久精品国产99国产精品 | 91综合网| 成人精品在线视频 | 免费在线黄色电影 | 久草视频免费看 | 自拍偷拍亚洲欧美 | 国产成人免费视频网站高清观看视频 | a视频在线| 婷婷丁香五 | av超碰| 欧美性久久 | 综合五月激情 | 精品日韩av | 成人激情视频在线免费观看 | 国产精品久久久久久久久久久免费看 | 欧美日韩国产综合视频 | 成年人在线看 | 国产免费一区二区 | 日本午夜在线 | 日韩国产精品一区二区 | 99看| 一区二区三区视频在线 | 国产精品视频导航 | 97成人在线| 可以免费看的av | 欧美久久不卡 | 婷婷伊人 | 久久久久久久久久久久久av | 91中文在线观看 | 天天操夜夜爽 | 欧美色综合一区二区三区 | 97精品 | 日本电影www | 亚洲永久免费 | 99热成人在线 | 好姑娘影视在线观看高清 | 亚洲欧美视频在线 | 日韩av视屏| caoporn免费在线视频 | 国产在线观看一区二区 | 欧美人体一区二区三区 | 天堂中文网 | 亚洲高清视频一区 | 超碰一区二区三区 | а天堂中文最新一区二区三区 | 国产精品一区二区av | 国产精品资源在线 | 羞羞视频免费观看 | 亚洲精品毛片一区二区 | 日韩免费一级 | 久久不卡日韩美女 | 国产综合精品一区二区三区 | 91国内外精品自在线播放 | 亚洲成人二区 | 日韩精品一区二区在线观看 | 亚洲高清一区二区三区 | 久久久久中文字幕 | 在线视频亚洲 | 日韩视频网 | 欧美成人a | 欧美日韩中文字幕 | 91精品国产91久久久久久最新 | 久久久中文字幕 | 国产精成人 | 国产亚洲精品美女久久久久久久久久 | 夜夜天天操 | 日日摸天天爽天天爽视频 | 亚洲精品乱码久久久久久花季 | 亚洲精品在线视频观看 | 99热首页 | 久久网页| 国产91成人video | 日韩中文字幕在线 | 欧美日韩一区二区视频在线观看 | 99re视频在线观看 | 亚洲午夜精品一区二区三区 | 亚洲综合在 | 欧美亚洲专区 | 午夜资源 | 欧美日韩视频在线第一区 | 免费成人在线网站 | 国产综合av | 高清国产视频 | 在线欧美视频 | 国产成人在线一区二区 | 欧美自拍视频 | 久草成人 | 国产18av | 一区日韩 | 精品无码三级在线观看视频 | 精品av| 久久久99精品免费观看 | 国产日韩一区二区三区 | 一区二区三区在线播放 | 91亚洲国产成人久久精品网站 | 九九成人| 国产精品久久嫩一区二区 免费 | 午夜成人在线视频 | 欧美日韩一区二区三区在线观看 | 91精品国产91久久久久久密臀 | 男女视频在线看 | 在线一区二区三区做爰视频网站 | 国产精品亚洲一区 | 99看| 亚洲视频在线观看 | 国产最新视频在线 | 亚洲精品在线播放 | 伊人一区 | 欧美日韩在线免费 | 在线视频二区 | 日韩精品一区二区三区中文在线 | 精品亚洲成a人片在线观看 国产高清在线 | 国产www视频 | 国产乱码精品一区二区三区av | 91精品国产综合久久福利软件 | 久久精品久久久 | 国产男女做爰免费网站 | 国产精品夜夜爽 | 一区二区三区欧美在线 | 国内精品99 | 欧美一区二区三区视频 | 国产美女自拍视频 | 日韩视频在线视频 | 欧美黄色一区 | jizz在亚洲 | 不用播放器的免费av | 亚洲视频在线播放 | 懂色av一区二区三区在线播放 | 成人在线播放 | 国产亚洲视频在线观看 | 亚洲成人精品一区二区三区 | 欧洲精品一区 | 国产成人在线免费观看 | 超级乱淫片国语对白免费视频 | 玖玖精品在线 | 国产精品毛片无码 | av日韩一区| 久久国产精品一区 | 国产精品污www在线观看 | 日韩视频在线观看 | 日韩在线无| 国产性猛交xxxx免费看久久 | jizz18国产| 国产日韩精品在线观看 | 久久亚洲高清 | 国产精品久久久久久久免费大片 | 7878www免费看片 | 亚洲精品乱码久久久久久花季 | 国产成人精品av | 99久久久无码国产精品 | 老妇激情毛片免费 | 超黄视频在线观看 | 狠狠爱综合 | 欧美在线播放一区 | 亚洲一区国产精品 | 欧美色欧美亚洲另类七区 | 99资源| 国产精品三级久久久久久电影 | 在线一区视频 | 狠狠爱综合 | 性一交一乱一透一a级 | 久久久极品 | 在线视频国产一区 | 国产成人精品午夜视频免费 | 视频在线一区二区 | 正在播放国产一区 | 一区二区三区欧美在线 | 欧美国产日韩在线 | 人人干在线 | 中国电影黄色一级片免费观看 | 一区二区久久 | 精品成人av | 日韩成人在线观看 | 中文字幕亚洲区 | 国产成人一区二区 | 精久久 | 国产精品久久久久久久久久久久久 | 中文字幕在线视频免费观看 | 免费日韩精品 | 91社区在线高清 | 欧美精产国品一二三区 | 久久久久9999国产精品 | 亚洲一区二区三区四区五区中文 | 日韩一区二 | 欧美不卡视频 | 在线国产专区 | 黄视频网站免费观看 | 欧美日韩不卡在线 | 99草视频 | 高清av网站 | 久久青草国产 | 久久久久久久久久久网站 | 一级黄色录像毛片 | 国产精品久久久久婷婷二区次 | 成人国产精品久久 | 国产91久久精品一区二区 | 91精品久久久久久久久中文字幕 | 91p在线观看 | av一区在线观看 | 日韩欧美国产一区二区 | 国产成人精品无人区一区 | 99这里只有精品视频 | 精品日韩一区二区 | 男女午夜视频 | 国产在线一区不卡 | 亚洲一区高清 | 亚洲欧美日韩在线 | 亚洲精品美女久久 | 亚洲第一成年免费网站 | 欧美午夜一区 | 免费国产一区 | 日韩欧美国产成人一区二区 | 久久国产综合 | 亚洲精品乱码久久久久膏 | 欧美精品成人一区二区三区四区 | 国产色婷婷精品综合在线播放 | 美女毛片| 色婷婷亚洲一区二区三区 | 国产高清自拍 | 中文字幕一区在线观看视频 | 日韩av电影网 | 美女扒开内裤让男人桶 | 精品国产乱码久久久久久密桃99 | 中文字幕_第2页_高清免费在线 | 国产精品日韩一区二区 | 亚洲精品一区二区三区蜜桃下载 | 中文字幕精品一区 | 欧美精品免费在线观看 | 午夜精品一区二区三区在线视频 | 一本色道久久综合狠狠躁篇的优点 | 亚洲国产成人av | 久热久热| 久久久久久亚洲国产 | 成人高清av | 在线免费国产视频 | 亚洲美女视频 | 精品国产一区二区三区四 | 中文字幕亚洲一区二区va在线 | 西西做爰免费视频 | 欧美日韩在线看 | av中文字幕在线播放 | 国产区精品 | 日韩不卡一区 | 在线播放黄色片网站 | 99视频精品 | 亚洲电影一区二区 | 中文字幕乱码一区二区三区 | 涩涩视频在线看 | 在线欧美日韩 | 国产视频999 | 国产精品色婷婷久久58 | 国产免费av网站 | 日本天天操 | 成人精品免费视频 | 久久亚洲国产精品 | 奇米成人影视 | 日日干夜夜操 | 欧美一区二区三区免费视频 | 奇米色777欧美一区二区 | 伊人网综合视频 | 色综合久久久久 | 999精品在线 | 在线一区二区三区视频 | 正在播放欧美 | 亚洲美女在线视频 | 污视频在线免费观看 | 亚洲女人的天堂 | 色婷婷综合久久久中文字幕 | 国产高清视频 | 亚洲国产成人久久一区二区三区 | 日本精品一区二区三区在线观看视频 | 欧美一区二区视频 | 成人黄色电影小说 | 看一级黄色大片 | 日韩一二三区视频 | 亚洲精品午夜aaa久久久 | 91视频88av| 欧美日韩精品一区二区在线播放 | 久久三区 | 精品天堂 | 国产精品久久久久久久久久久久久久 | 女人夜夜春高潮爽av片 | 欧美日韩a | 国产精选一区二区三区不卡催乳 | 成人在线播放 | 成人av一区二区三区 |