亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? entry.s

?? ARM 嵌入式 系統 設計與實例開發 實驗教材 二源碼
?? S
?? 第 1 頁 / 共 3 頁
字號:
/* $Id: entry.S,v 1.141 2001/12/05 23:56:32 davem Exp $ * arch/sparc64/kernel/entry.S:  Sparc64 trap low-level entry points. * * Copyright (C) 1995,1997 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 1996 Eddie C. Dost        (ecd@skynet.be) * Copyright (C) 1996 Miguel de Icaza      (miguel@nuclecu.unam.mx) * Copyright (C) 1996,98,99 Jakub Jelinek  (jj@sunsite.mff.cuni.cz) */#include <linux/config.h>#include <linux/errno.h>#include <asm/head.h>#include <asm/asi.h>#include <asm/smp.h>#include <asm/ptrace.h>#include <asm/page.h>#include <asm/signal.h>#include <asm/pgtable.h>#include <asm/processor.h>#include <asm/visasm.h>#include <asm/estate.h>/* #define SYSCALL_TRACING	1 */#define curptr      g6#define NR_SYSCALLS 256      /* Each OS is different... */	.text	.align		32	.globl		sparc64_vpte_patchme1	.globl		sparc64_vpte_patchme2/* * On a second level vpte miss, check whether the original fault is to the OBP  * range (note that this is only possible for instruction miss, data misses to * obp range do not use vpte). If so, go back directly to the faulting address. * This is because we want to read the tpc, otherwise we have no way of knowing * the 8k aligned faulting address if we are using >8k kernel pagesize. This also * ensures no vpte range addresses are dropped into tlb while obp is executing * (see inherit_locked_prom_mappings() rant). */sparc64_vpte_nucleus:	mov		0xf, %g5	sllx		%g5, 28, %g5			! Load 0xf0000000	cmp		%g4, %g5			! Is addr >= LOW_OBP_ADDRESS?	blu,pn		%xcc, sparc64_vpte_patchme1	 mov		0x1, %g5	sllx		%g5, 32, %g5			! Load 0x100000000	cmp		%g4, %g5			! Is addr < HI_OBP_ADDRESS?	blu,pn		%xcc, obp_iaddr_patch	 nopsparc64_vpte_patchme1:	sethi		%hi(0), %g5			! This has to be patchedsparc64_vpte_patchme2:	or		%g5, %lo(0), %g5		! This is patched too	ba,pt		%xcc, sparc64_kpte_continue	! Part of dtlb_backend	 add		%g1, %g1, %g1			! Finish PMD offset adjustmentvpte_noent:	mov		TLB_SFSR, %g1			! Restore %g1 value	stxa		%g4, [%g1 + %g1] ASI_DMMU	! Restore previous TAG_ACCESS	done						! Slick trick	.globl		obp_iaddr_patch	.globl		obp_daddr_patchobp_iaddr_patch:	sethi		%hi(0), %g5			! This and following is patched	or		%g5, %lo(0), %g5		! g5 now holds obp pmd base physaddr	wrpr		%g0, 1, %tl			! Behave as if we are at TL0	rdpr		%tpc, %g4			! Find original faulting iaddr	srlx		%g4, 13, %g4			! Throw out context bits	sllx		%g4, 13, %g4			! g4 has vpn + ctx0 now	mov		TLB_SFSR, %g1			! Restore %g1 value	stxa		%g4, [%g1 + %g1] ASI_IMMU	! Restore previous TAG_ACCESS	srlx		%g4, 23, %g6			! Find pmd number	and		%g6, 0x7ff, %g6			! Find pmd number	sllx		%g6, 2, %g6			! Find pmd offset	lduwa		[%g5 + %g6] ASI_PHYS_USE_EC, %g5! Load pmd, ie pagetable physaddr	brz,pn		%g5, longpath			! Kill the PROM ? :-)	 sllx		%g5, 11, %g5			! Shift into place	srlx		%g4, 13, %g6			! find pte number in pagetable	and		%g6, 0x3ff, %g6			! find pte number in pagetable	sllx		%g6, 3, %g6			! find pte offset in pagetable	ldxa		[%g5 + %g6] ASI_PHYS_USE_EC, %g5! Load pte	brgez,pn	%g5, longpath			! Kill the PROM ? :-)	 nop	stxa		%g5, [%g0] ASI_ITLB_DATA_IN	! put into tlb	retry						! go back to original faultobp_daddr_patch:	sethi		%hi(0), %g5			! This and following is patched	or		%g5, %lo(0), %g5		! g5 now holds obp pmd base physaddr	srlx		%g4, 23, %g6			! Find pmd number	and		%g6, 0x7ff, %g6			! Find pmd number	sllx		%g6, 2, %g6			! Find pmd offset	lduwa		[%g5 + %g6] ASI_PHYS_USE_EC, %g5! Load pmd, ie pagetable physaddr	brz,pn		%g5, longpath	 sllx		%g5, 11, %g5			! Shift into place	srlx		%g4, 13, %g6			! find pte number in pagetable	and		%g6, 0x3ff, %g6			! find pte number in pagetable	sllx		%g6, 3, %g6			! find pte offset in pagetable	ldxa		[%g5 + %g6] ASI_PHYS_USE_EC, %g5! Load pte	brgez,pn	%g5, longpath	 nop	stxa		%g5, [%g0] ASI_DTLB_DATA_IN	! put into tlb	retry/* * On a first level data miss, check whether this is to the OBP range (note that * such accesses can be made by prom, as well as by kernel using prom_getproperty * on "address"), and if so, do not use vpte access ... rather, use information * saved during inherit_prom_mappings() using 8k pagesize. */kvmap:	mov		0xf, %g5	sllx		%g5, 28, %g5			! Load 0xf0000000	cmp		%g4, %g5			! Is addr >= LOW_OBP_ADDRESS?	blu,pn		%xcc, vmalloc_addr	 mov		0x1, %g5	sllx		%g5, 32, %g5			! Load 0x100000000	cmp		%g4, %g5			! Is addr < HI_OBP_ADDRESS?	blu,pn		%xcc, obp_daddr_patch	 nopvmalloc_addr:						! vmalloc addr accessed	ldxa		[%g3 + %g6] ASI_N, %g5		! Yep, load k-vpte	brgez,pn	%g5, longpath			! Valid, load into TLB	 nop	stxa		%g5, [%g0] ASI_DTLB_DATA_IN	! Reload TLB	retry	/* This is trivial with the new code... */	.globl		do_fpdisdo_fpdis:	sethi		%hi(TSTATE_PEF), %g4					! IEU0	rdpr		%tstate, %g5	andcc		%g5, %g4, %g0	be,pt		%xcc, 1f	 nop	rd		%fprs, %g5	andcc		%g5, FPRS_FEF, %g0	be,pt		%xcc, 1f	 nop	/* Legal state when DCR_IFPOE is set in Cheetah %dcr. */	sethi		%hi(109f), %g7	ba,pt		%xcc, etrap109:	 or		%g7, %lo(109b), %g7	add		%g0, %g0, %g0	ba,a,pt		%xcc, rtrap_clr_l61:	ldub		[%g6 + AOFF_task_thread + AOFF_thread_fpsaved], %g5	! Load	Group	wr		%g0, FPRS_FEF, %fprs					! LSU	Group+4bubbles	andcc		%g5, FPRS_FEF, %g0					! IEU1	Group	be,a,pt		%icc, 1f						! CTI	 clr		%g7							! IEU0	ldx		[%g6 + AOFF_task_thread + AOFF_thread_gsr], %g7		! Load	Group1:	andcc		%g5, FPRS_DL, %g0					! IEU1	bne,pn		%icc, 2f						! CTI	 fzero		%f0							! FPA	andcc		%g5, FPRS_DU, %g0					! IEU1  Group	bne,pn		%icc, 1f						! CTI	 fzero		%f2							! FPA	faddd		%f0, %f2, %f4	fmuld		%f0, %f2, %f6	faddd		%f0, %f2, %f8	fmuld		%f0, %f2, %f10	faddd		%f0, %f2, %f12	fmuld		%f0, %f2, %f14	faddd		%f0, %f2, %f16	fmuld		%f0, %f2, %f18	faddd		%f0, %f2, %f20	fmuld		%f0, %f2, %f22	faddd		%f0, %f2, %f24	fmuld		%f0, %f2, %f26	faddd		%f0, %f2, %f28	fmuld		%f0, %f2, %f30	faddd		%f0, %f2, %f32	fmuld		%f0, %f2, %f34	faddd		%f0, %f2, %f36	fmuld		%f0, %f2, %f38	faddd		%f0, %f2, %f40	fmuld		%f0, %f2, %f42	faddd		%f0, %f2, %f44	fmuld		%f0, %f2, %f46	faddd		%f0, %f2, %f48	fmuld		%f0, %f2, %f50	faddd		%f0, %f2, %f52	fmuld		%f0, %f2, %f54	faddd		%f0, %f2, %f56	fmuld		%f0, %f2, %f58	b,pt		%xcc, fpdis_exit2	 faddd		%f0, %f2, %f601:	mov		SECONDARY_CONTEXT, %g3	add		%g6, AOFF_task_fpregs + 0x80, %g1	faddd		%f0, %f2, %f4	fmuld		%f0, %f2, %f6	ldxa		[%g3] ASI_DMMU, %g5	add		%g6, AOFF_task_fpregs + 0xc0, %g2	stxa		%g0, [%g3] ASI_DMMU	membar		#Sync	faddd		%f0, %f2, %f8	fmuld		%f0, %f2, %f10	ldda		[%g1] ASI_BLK_S, %f32	! grrr, where is ASI_BLK_NUCLEUS 8-(	ldda		[%g2] ASI_BLK_S, %f48	faddd		%f0, %f2, %f12	fmuld		%f0, %f2, %f14	faddd		%f0, %f2, %f16	fmuld		%f0, %f2, %f18	faddd		%f0, %f2, %f20	fmuld		%f0, %f2, %f22	faddd		%f0, %f2, %f24	fmuld		%f0, %f2, %f26	faddd		%f0, %f2, %f28	fmuld		%f0, %f2, %f30	b,pt		%xcc, fpdis_exit	 membar		#Sync2:	andcc		%g5, FPRS_DU, %g0	bne,pt		%icc, 3f	 fzero		%f32	mov		SECONDARY_CONTEXT, %g3	fzero		%f34	ldxa		[%g3] ASI_DMMU, %g5	add		%g6, AOFF_task_fpregs, %g1	stxa		%g0, [%g3] ASI_DMMU	membar		#Sync	add		%g6, AOFF_task_fpregs + 0x40, %g2	faddd		%f32, %f34, %f36	fmuld		%f32, %f34, %f38	ldda		[%g1] ASI_BLK_S, %f0	! grrr, where is ASI_BLK_NUCLEUS 8-(	ldda		[%g2] ASI_BLK_S, %f16	faddd		%f32, %f34, %f40	fmuld		%f32, %f34, %f42	faddd		%f32, %f34, %f44	fmuld		%f32, %f34, %f46	faddd		%f32, %f34, %f48	fmuld		%f32, %f34, %f50	faddd		%f32, %f34, %f52	fmuld		%f32, %f34, %f54	faddd		%f32, %f34, %f56	fmuld		%f32, %f34, %f58	faddd		%f32, %f34, %f60	fmuld		%f32, %f34, %f62	ba,pt		%xcc, fpdis_exit	 membar		#Sync3:	mov		SECONDARY_CONTEXT, %g3	add		%g6, AOFF_task_fpregs, %g1	ldxa		[%g3] ASI_DMMU, %g5	mov		0x40, %g2	stxa		%g0, [%g3] ASI_DMMU	membar		#Sync	ldda		[%g1] ASI_BLK_S, %f0		! grrr, where is ASI_BLK_NUCLEUS 8-(	ldda		[%g1 + %g2] ASI_BLK_S, %f16	add		%g1, 0x80, %g1	ldda		[%g1] ASI_BLK_S, %f32	ldda		[%g1 + %g2] ASI_BLK_S, %f48	membar		#Syncfpdis_exit:	stxa		%g5, [%g3] ASI_DMMU	membar		#Syncfpdis_exit2:	wr		%g7, 0, %gsr	ldx		[%g6 + AOFF_task_thread + AOFF_thread_xfsr], %fsr	rdpr		%tstate, %g3	or		%g3, %g4, %g3		! anal...	wrpr		%g3, %tstate	wr		%g0, FPRS_FEF, %fprs	! clean DU/DL bits	retry	.align		32fp_other_bounce:	call		do_fpother	 add		%sp, STACK_BIAS + REGWIN_SZ, %o0	ba,pt		%xcc, rtrap	 clr		%l6	.globl		do_fpother_check_fitos	.align		32do_fpother_check_fitos:	sethi		%hi(fp_other_bounce - 4), %g7	or		%g7, %lo(fp_other_bounce - 4), %g7	/* NOTE: Need to preserve %g7 until we fully commit	 *       to the fitos fixup.	 */	stx		%fsr, [%g6 + AOFF_task_thread + AOFF_thread_xfsr]	rdpr		%tstate, %g3	andcc		%g3, TSTATE_PRIV, %g0	bne,pn		%xcc, do_fptrap_after_fsr	 nop	ldx		[%g6 + AOFF_task_thread + AOFF_thread_xfsr], %g3	srlx		%g3, 14, %g1	and		%g1, 7, %g1	cmp		%g1, 2			! Unfinished FP-OP	bne,pn		%xcc, do_fptrap_after_fsr	 sethi		%hi(1 << 23), %g1	! Inexact	andcc		%g3, %g1, %g0	bne,pn		%xcc, do_fptrap_after_fsr	 rdpr		%tpc, %g1	lduwa		[%g1] ASI_AIUP, %g3	! This cannot ever fail#define FITOS_MASK	0xc1f83fe0#define FITOS_COMPARE	0x81a01880	sethi		%hi(FITOS_MASK), %g1	or		%g1, %lo(FITOS_MASK), %g1	and		%g3, %g1, %g1	sethi		%hi(FITOS_COMPARE), %g2	or		%g2, %lo(FITOS_COMPARE), %g2	cmp		%g1, %g2	bne,pn		%xcc, do_fptrap_after_fsr	 nop	std		%f62, [%g6 + AOFF_task_fpregs + (62 * 4)]	sethi		%hi(fitos_table_1), %g1	and		%g3, 0x1f, %g2	or		%g1, %lo(fitos_table_1),  %g1	sllx		%g2, 2, %g2	jmpl		%g1 + %g2, %g0	 ba,pt		%xcc, fitos_emul_continuefitos_table_1:	fitod		%f0, %f62	fitod		%f1, %f62	fitod		%f2, %f62	fitod		%f3, %f62	fitod		%f4, %f62	fitod		%f5, %f62	fitod		%f6, %f62	fitod		%f7, %f62	fitod		%f8, %f62	fitod		%f9, %f62	fitod		%f10, %f62	fitod		%f11, %f62	fitod		%f12, %f62	fitod		%f13, %f62	fitod		%f14, %f62	fitod		%f15, %f62	fitod		%f16, %f62	fitod		%f17, %f62	fitod		%f18, %f62	fitod		%f19, %f62	fitod		%f20, %f62	fitod		%f21, %f62	fitod		%f22, %f62	fitod		%f23, %f62	fitod		%f24, %f62	fitod		%f25, %f62	fitod		%f26, %f62	fitod		%f27, %f62	fitod		%f28, %f62	fitod		%f29, %f62	fitod		%f30, %f62	fitod		%f31, %f62fitos_emul_continue:	sethi		%hi(fitos_table_2), %g1	srl		%g3, 25, %g2	or		%g1, %lo(fitos_table_2), %g1	and		%g2, 0x1f, %g2	sllx		%g2, 2, %g2	jmpl		%g1 + %g2, %g0	 ba,pt		%xcc, fitos_emul_finifitos_table_2:	fdtos		%f62, %f0	fdtos		%f62, %f1	fdtos		%f62, %f2	fdtos		%f62, %f3	fdtos		%f62, %f4	fdtos		%f62, %f5	fdtos		%f62, %f6	fdtos		%f62, %f7	fdtos		%f62, %f8	fdtos		%f62, %f9	fdtos		%f62, %f10	fdtos		%f62, %f11	fdtos		%f62, %f12	fdtos		%f62, %f13	fdtos		%f62, %f14	fdtos		%f62, %f15	fdtos		%f62, %f16	fdtos		%f62, %f17	fdtos		%f62, %f18	fdtos		%f62, %f19	fdtos		%f62, %f20	fdtos		%f62, %f21	fdtos		%f62, %f22	fdtos		%f62, %f23	fdtos		%f62, %f24	fdtos		%f62, %f25	fdtos		%f62, %f26	fdtos		%f62, %f27	fdtos		%f62, %f28	fdtos		%f62, %f29	fdtos		%f62, %f30	fdtos		%f62, %f31fitos_emul_fini:	ldd		[%g6 + AOFF_task_fpregs + (62 * 4)], %f62	done	.globl		do_fptrap	.align		32do_fptrap:	stx		%fsr, [%g6 + AOFF_task_thread + AOFF_thread_xfsr]do_fptrap_after_fsr:	ldub		[%g6 + AOFF_task_thread + AOFF_thread_fpsaved], %g3	rd		%fprs, %g1	or		%g3, %g1, %g3	stb		%g3, [%g6 + AOFF_task_thread + AOFF_thread_fpsaved]	rd		%gsr, %g3	stx		%g3, [%g6 + AOFF_task_thread + AOFF_thread_gsr]	mov		SECONDARY_CONTEXT, %g3	add		%g6, AOFF_task_fpregs, %g2	ldxa		[%g3] ASI_DMMU, %g5	stxa		%g0, [%g3] ASI_DMMU	membar		#Sync	andcc		%g1, FPRS_DL, %g0	be,pn		%icc, 4f	 mov		0x40, %g3	stda		%f0, [%g2] ASI_BLK_S	stda		%f16, [%g2 + %g3] ASI_BLK_S	andcc		%g1, FPRS_DU, %g0	be,pn		%icc, 5f4:       add		%g2, 128, %g2	stda		%f32, [%g2] ASI_BLK_S	stda		%f48, [%g2 + %g3] ASI_BLK_S5:	mov		SECONDARY_CONTEXT, %g1	membar		#Sync	stxa		%g5, [%g1] ASI_DMMU	membar		#Sync	ba,pt		%xcc, etrap	 wr		%g0, 0, %fprs	/* The registers for cross calls will be:	 *	 * DATA 0: [low 32-bits]  Address of function to call, jmp to this	 *         [high 32-bits] MMU Context Argument 0, place in %g5	 * DATA 1: Address Argument 1, place in %g6	 * DATA 2: Address Argument 2, place in %g7	 *	 * With this method we can do most of the cross-call tlb/cache	 * flushing very quickly.	 *	 * Current CPU's IRQ worklist table is locked into %g1,	 * don't touch.	 */	.text	.align		32	.globl		do_ivecdo_ivec:	mov		0x40, %g3	ldxa		[%g3 + %g0] ASI_INTR_R, %g3	sethi		%hi(KERNBASE), %g4	cmp		%g3, %g4	bgeu,pn		%xcc, do_ivec_xcall	 srlx		%g3, 32, %g5	stxa		%g0, [%g0] ASI_INTR_RECEIVE	membar		#Sync	sethi		%hi(ivector_table), %g2	sllx		%g3, 5, %g3	or		%g2, %lo(ivector_table), %g2	add		%g2, %g3, %g3	ldx		[%g3 + 0x08], %g2	/* irq_info */	ldub		[%g3 + 0x04], %g4	/* pil */	brz,pn		%g2, do_ivec_spurious	 mov		1, %g2	sllx		%g2, %g4, %g2	sllx		%g4, 2, %g4	lduw		[%g6 + %g4], %g5	/* g5 = irq_work(cpu, pil) */	stw		%g5, [%g3 + 0x00]	/* bucket->irq_chain = g5 */	stw		%g3, [%g6 + %g4]	/* irq_work(cpu, pil) = bucket */	wr		%g2, 0x0, %set_softint	retrydo_ivec_xcall:	mov		0x50, %g1	ldxa		[%g1 + %g0] ASI_INTR_R, %g1	srl		%g3, 0, %g3	mov		0x60, %g7	ldxa		[%g7 + %g0] ASI_INTR_R, %g7	stxa		%g0, [%g0] ASI_INTR_RECEIVE	membar		#Sync	ba,pt		%xcc, 1f	 nop	.align		321:	jmpl		%g3, %g0	 nopdo_ivec_spurious:	stw		%g3, [%g6 + 0x00]	/* irq_work(cpu, 0) = bucket */	rdpr		%pstate, %g5	wrpr		%g5, PSTATE_IG | PSTATE_AG, %pstate	sethi		%hi(109f), %g7	ba,pt		%xcc, etrap109:	 or		%g7, %lo(109b), %g7	call		catch_disabled_ivec	 add		%sp, STACK_BIAS + REGWIN_SZ, %o0	ba,pt		%xcc, rtrap	 clr		%l6	.globl		save_alternate_globalssave_alternate_globals: /* %o0 = save_area */	rdpr		%pstate, %o5	andn		%o5, PSTATE_IE, %o1	wrpr		%o1, PSTATE_AG, %pstate	stx		%g0, [%o0 + 0x00]	stx		%g1, [%o0 + 0x08]	stx		%g2, [%o0 + 0x10]	stx		%g3, [%o0 + 0x18]	stx		%g4, [%o0 + 0x20]	stx		%g5, [%o0 + 0x28]	stx		%g6, [%o0 + 0x30]	stx		%g7, [%o0 + 0x38]	wrpr		%o1, PSTATE_IG, %pstate	stx		%g0, [%o0 + 0x40]	stx		%g1, [%o0 + 0x48]	stx		%g2, [%o0 + 0x50]	stx		%g3, [%o0 + 0x58]	stx		%g4, [%o0 + 0x60]	stx		%g5, [%o0 + 0x68]	stx		%g6, [%o0 + 0x70]	stx		%g7, [%o0 + 0x78]	wrpr		%o1, PSTATE_MG, %pstate	stx		%g0, [%o0 + 0x80]	stx		%g1, [%o0 + 0x88]	stx		%g2, [%o0 + 0x90]	stx		%g3, [%o0 + 0x98]	stx		%g4, [%o0 + 0xa0]	stx		%g5, [%o0 + 0xa8]	stx		%g6, [%o0 + 0xb0]	stx		%g7, [%o0 + 0xb8]	wrpr		%o5, 0x0, %pstate	retl	 nop	.globl		restore_alternate_globalsrestore_alternate_globals: /* %o0 = save_area */	rdpr		%pstate, %o5	andn		%o5, PSTATE_IE, %o1	wrpr		%o1, PSTATE_AG, %pstate	ldx		[%o0 + 0x00], %g0	ldx		[%o0 + 0x08], %g1	ldx		[%o0 + 0x10], %g2	ldx		[%o0 + 0x18], %g3	ldx		[%o0 + 0x20], %g4	ldx		[%o0 + 0x28], %g5	ldx		[%o0 + 0x30], %g6	ldx		[%o0 + 0x38], %g7	wrpr		%o1, PSTATE_IG, %pstate	ldx		[%o0 + 0x40], %g0	ldx		[%o0 + 0x48], %g1	ldx		[%o0 + 0x50], %g2	ldx		[%o0 + 0x58], %g3	ldx		[%o0 + 0x60], %g4	ldx		[%o0 + 0x68], %g5	ldx		[%o0 + 0x70], %g6	ldx		[%o0 + 0x78], %g7

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
春色校园综合激情亚洲| 一区二区三区丝袜| 黄页网站大全一区二区| 欧美一二三在线| 美女视频黄 久久| 精品国产乱码久久久久久免费| 精品写真视频在线观看| 久久色.com| 91亚洲精品久久久蜜桃网站| 一区二区三区四区在线播放| 欧美三级一区二区| 日韩福利视频网| 精品播放一区二区| caoporm超碰国产精品| 亚洲欧美日韩国产另类专区| 欧美撒尿777hd撒尿| 奇米影视一区二区三区小说| 久久婷婷综合激情| 99久久精品免费看| 午夜精品免费在线观看| 精品福利一区二区三区免费视频| 成人网页在线观看| 亚洲成人1区2区| 久久久久久亚洲综合| 波多野结衣亚洲| 日本午夜精品一区二区三区电影| 国产视频一区不卡| 欧美日韩在线不卡| 国产999精品久久| 亚洲成人黄色影院| 久久久99免费| 在线电影国产精品| 成人午夜激情视频| 亚洲成在线观看| 国产区在线观看成人精品| 91国偷自产一区二区三区成为亚洲经典| 天堂蜜桃91精品| 国产精品久久久久婷婷| 91精品国产欧美一区二区成人| 波多野结衣中文字幕一区| 日韩精品电影在线观看| 中文字幕亚洲综合久久菠萝蜜| 91精品国产入口| 99re视频这里只有精品| 国产又黄又大久久| 五月激情综合网| 国产精品久久99| 日韩一级成人av| 日本乱人伦一区| 成a人片亚洲日本久久| 九九精品视频在线看| 亚洲国产欧美在线| 欧美视频一区二区在线观看| 精品美女一区二区三区| 成人黄色软件下载| 九九精品一区二区| 亚洲成人激情综合网| 日韩毛片在线免费观看| 久久久久综合网| 日韩欧美一区二区免费| 欧美精品九九99久久| 91久久精品午夜一区二区| 成人黄色电影在线| 国产精品一区在线观看乱码| 免费在线观看成人| 午夜不卡av在线| 亚洲老司机在线| 亚洲欧美日韩国产一区二区三区 | 欧美另类变人与禽xxxxx| av在线播放不卡| 成人爽a毛片一区二区免费| 国产综合色视频| 精一区二区三区| 久久超碰97中文字幕| 亚洲18影院在线观看| 亚洲成人av一区二区| 亚洲国产视频网站| 亚洲自拍欧美精品| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品视频自拍| 亚洲精品成人a在线观看| 亚洲精品午夜久久久| 亚洲影院免费观看| 亚洲一区二区三区影院| 亚洲自拍偷拍网站| 亚洲午夜电影网| 欧美一区二区三区视频免费播放 | 粉嫩av一区二区三区在线播放| 欧美日韩视频专区在线播放| 亚洲日本青草视频在线怡红院| av中文字幕在线不卡| 国产精品成人在线观看| 色伊人久久综合中文字幕| 亚洲bdsm女犯bdsm网站| 日韩一区二区三区视频在线观看| 美女国产一区二区| 国产精品无人区| 色狠狠色狠狠综合| 视频一区二区三区入口| 欧美一级夜夜爽| 国产经典欧美精品| 亚洲精品免费播放| 91精品国产综合久久蜜臀| 精品中文av资源站在线观看| 日本一区二区动态图| 91日韩精品一区| 亚洲v中文字幕| 久久无码av三级| 97久久超碰国产精品| 国产91精品欧美| 欧美国产成人精品| 在线不卡a资源高清| 国产在线一区观看| 亚洲人吸女人奶水| 制服丝袜国产精品| 成人网男人的天堂| 无码av免费一区二区三区试看| 精品国产精品网麻豆系列 | 26uuu国产日韩综合| 一本久久精品一区二区| 另类人妖一区二区av| 亚洲欧美日韩国产另类专区| 欧美videossexotv100| 色天天综合色天天久久| 久久成人综合网| 亚洲午夜久久久久久久久电影网| 欧美tickling挠脚心丨vk| 色老汉一区二区三区| 国产精品一二三| 亚洲一区二区三区中文字幕在线 | 国产精品久久久久影院老司| 欧美一区二区三区色| 9i在线看片成人免费| 久草热8精品视频在线观看| 一区二区三区在线视频播放| 精品电影一区二区| 欧美精品色综合| 在线观看av不卡| 99视频在线精品| 国产成人午夜精品5599 | 成人免费高清视频| 青草国产精品久久久久久| 亚洲色图欧美在线| 国产精品传媒在线| 日本一区二区综合亚洲| www国产亚洲精品久久麻豆| 欧美日韩国产一级片| 欧美日韩在线精品一区二区三区激情 | 玉米视频成人免费看| 最近日韩中文字幕| 亚洲三级在线免费观看| 午夜精品久久久久久久久久久| 亚洲国产综合91精品麻豆| 亚洲一区免费视频| 亚洲成av人在线观看| 香蕉加勒比综合久久| 天堂一区二区在线| 男女激情视频一区| 蜜臀av一区二区在线免费观看| 另类小说欧美激情| 国产精品一二三在| 福利电影一区二区| gogogo免费视频观看亚洲一| 91在线视频免费观看| 91网站在线播放| 色婷婷综合久久| 7777精品伊人久久久大香线蕉最新版| 在线成人高清不卡| 日韩欧美国产综合在线一区二区三区| 精品免费日韩av| 亚洲国产高清在线| 亚洲免费观看视频| 首页国产欧美日韩丝袜| 精品一区二区三区免费视频| 懂色av中文字幕一区二区三区| 91小视频免费观看| 日韩av电影天堂| 国内精品不卡在线| 99久久精品一区| 欧美日韩免费一区二区三区视频| 在线播放国产精品二区一二区四区| 日韩午夜av一区| 国产三级一区二区| 亚洲一区影音先锋| 韩国三级电影一区二区| 91年精品国产| 欧美一区二区国产| 国产精品日韩精品欧美在线| 亚洲国产视频在线| 国产成人午夜片在线观看高清观看| 在线日韩一区二区| 精品日韩在线观看| 亚洲乱码国产乱码精品精的特点| 麻豆精品一区二区三区| 97久久精品人人做人人爽50路| 欧美一区二区三区影视| 亚洲欧美另类小说视频| 久久精品99国产精品| 色域天天综合网| 国产欧美精品在线观看|