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

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

?? oxccai.c

?? OXCC is a multipass, interpreting C compiler with several language extensions. It generates an Archi
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*
	oxccai.c -- v1.430 ANF to intel asmcode generator

	Copyright (c) 1995
	Norman D. Culver dba
	Oxbow Software
	1323 S.E. 17th Street #662
	Ft. Lauderdale, FL 33316
	(954) 463-4754
	ndc@icanect.net
	All rights reserved.

 * Redistribution and use in source and binary forms are permitted
 * provided that: (1) source distributions retain this entire copyright
 * notice and comment, and (2) distributions including binaries display
 * the following acknowledgement:  ``This product includes software
 * developed by Norman D. Culver dba Oxbow Software''
 * in the documentation or other materials provided with the distribution
 * and in all advertising materials mentioning features or use of this
 * software.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

*/
#define MAJOR_VERSION 1
#define MINOR_VERSION 433

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <setjmp.h>
#include <time.h>

#define SUPPORT_LONG_DOUBLE 0
#define SUPPORT_LONG_LONG 1

#define NEED_FUNCTHUNK 1
#define NEED_ANFDEFS 1
#include "oxanf.h"
	
#define PROG oxccai
#define USING_FRAMEWORK 1
#define HOST_IS_LITTLE_ENDIAN 1
#define REALLY_NEED_OFFSETS 0
#define FUNCDATA (iv->category+1)

#define VFPRINTF(a,b) vfprintf(stderr,a,b)
#define PERROR prerror
#define PWARN prwarn
#define PRINTF info
static void prerror(const char *, ...);
static void prwarn(const char *, ...);
static void info(const char *, ...);
int cfeprintf(const char *, ...);

#define FILEWRITE(buf, cnt)\
{if(!iv->errors){if(fwrite(buf, 1, cnt, iv->outfile) != cnt)iv->errors = 12;}}

#define ROUNDING(a,b) ((a+(b-1))&~(b-1))
#define ROUNDUP(a,b) a += ROUNDING(a,b)

#define KEYEQ(a,b) ((a)[0] == (b)[0] && (a)[1] == (b)[1])
#define KEYLT(a,b) (((a)[1] < (b)[1]) || ((a)[1] == (b)[1] && (a)[0] < (b)[0]))
#define MIN(a,b) (((a) < (b)) ? (a) : (b))

/* ======================== CONCATENIZATION MACROS ==================== */

#define	_cat2_(a, b)	a##b
#define _cat_(a, b)	_cat2_(a, b)
#define Global(a) _cat_(PROG, a)

#define _pname2_(x)	#x
#define _pname1_(x)	_pname2_(x)
#define pName		_pname1_(PROG)


/* ============== ENDIAN MACROS (input format is litle endian) ==== */

#if HOST_IS_LITTLE_ENDIAN
#define GL(a) a
#define GS(a) a
#define PL(a) a
#define PS(a) a
#else
#endif

/* =================== INPUT DATA FORMATS ========================== */

#define INFILE_SYMNUM 1
#define OUTFILE_SYMNUM 2

/* ====================== STRUCTURES AND TYPEDEFS ======================== */
typedef struct _jl {
	struct _jl *next;
	void *p;
	char *q;
	long *plabelval;
	long offset;
} *PJL;

typedef struct _el {
	struct _el *next;
	long spot;
	short symnum;
} *PEL;

typedef struct _afile {
	unsigned char *file_p;
	PopI header_p;
	PopI size_p;
	unsigned char *symtext_p;
	unsigned char *prog_p;
	unsigned char *data_p;
	unsigned char *switch_p;
	unsigned char *decl_p;
	unsigned char *maxtemp_p;
	unsigned char *seg_p;
	unsigned char **symaddr;
	unsigned char **decladdr;
	unsigned long thunk_offset;
	unsigned long bss_offset;
	int maxtemp;
	int maxtempclass;
	void *datatbl;
	short *symtran;
	unsigned short *decltran;
	int filenum;
	int numsyms;
	int numdecls;
	int numrelocs;
	int numsegs;
} *Pafile;

typedef struct _iv {
	int category;
	FILE *outfile;
	char *outname;
	char *infile_name;
	int remove_infile;
	int argc;
	char **argv;

	unsigned char **symaddr;
	unsigned char **decladdr;

	struct _nodeO *ob_usedhead;
	struct _nodeO *ob_usedtail;
	struct _nodeO *ob;
	unsigned char *ob_buf;
	int ob_bufcnt;
	int ob_nodecnt;
	struct _nodeO *first_ob;

	struct _nodeC *cod_usedhead;
	struct _nodeC *cod_usedtail;
	struct _nodeC *cod;
	unsigned char *cod_buf;
	int cod_nodecnt;
	int cod_bufcnt;
	struct _nodeC *first_cod;
	struct _nodeC *regcode;
	long regsave;
	long stksiz;

	int numfiles;
	int lastlabel;
	int labelnum;
	int botlabel;
	int errors;
	int numsyms;
	int numdecls;
	int numsegs;
	int maxtemp;
	int maxtempclass;
	unsigned long total_size;
	unsigned long thunk_offset;
	unsigned long bss_offset;
	long first_temp;
	long killop;
	long numnested;
	long lastline;
	void *reloctbl;
	void *newreloctbl;
	void *extrntbl;
	void *gbltbl;
	void *symtbl;
	void *labeltbl;
	void *newlabeltbl;
	void *tmptbl;
	void *segtbl;
	void *functbl;
	void *finalsymtbl;
	void *finalstringpack;
	long finalpacksize;
	void *datatbl;
	void *builtintbl;
	int in_builtin;
	int has_structret;
	int temps_written;

	PJL jbuf;
	void *jbufstart;
	int jmpcnt;
	int jbufcnt;
	long out_offset;
	long func_offset;
	int extmark;
	short markedsym[10];
	char *markedbuf[10];
	int filenum;
	Pafile files[1024];
	char debug;
	char only_debug;
	char strip;
	char listing_wanted;
	char target_assembler;
	char target_hardware;
	char target_debugger;
	char target_os;
	char memory_model;
	char obj_format;
} *Piv;

struct _gloval {
	char *symname;
	int symnum;
	unsigned char *p;
	Pafile pf;
};
struct _dkey {
	unsigned long offset;
	long pad;
};
struct _dval {
unsigned long size;
unsigned char *p;
unsigned char *prevp;
long locid;
short fileno;
};
struct _rkey {/* key area of reloctbl node */
	unsigned long spot;
	long fileno;
};
struct _rval {/* value area of reloctbl node */
	unsigned char *p;
	unsigned long base;
	long offset;
	short rsym;
	unsigned char opcode;
	char rsize;
	short fileno;
};


/* Internal User API */
static void *Cmalloc(int category, unsigned amount);
static void *Ccalloc(int category, unsigned nelems, unsigned elemsize);
static void *Crealloc(int category, void* buf, unsigned newsize);
static void Cfree(int category, void* buf);
static void Cfreecat(int category);
static int Cmemrange(int category, unsigned* minp, unsigned* maxp);
static int Cusedrange(int category, unsigned* minp, unsigned* maxp);
static void Ctotrange(unsigned* minp,unsigned* maxp);
static int Cnewcat(void);
static void Cguard(int category);
static void* NewSymTable(int category, int nbins);
static int SymFind(void *tbl, void *key, void *result);
static int SymFindRange(void *tbl, void *key, void *result);
static void *SymInsert(void *tbl, void *key, void *value, int datsiz);
static int StringInsert(void *tbl, char *string, void *result);
static int StringFind(void *tbl, char *string, void *result);
static void SymDelete(void *tbl, void *key);
static int SymHead(void *tbl);
static int SymNext(void *tbl);
static void SymGetMark(void *tbl, void *markptr);
static int SymMarkNext(void *tbl, void *mark);
static void SymSetMark(void *tbl, void *markptr);
static void SymKey(void *tbl, void *keyptr);
static void SymValue(void *tbl, void *datptr);
static void *seg_find(Piv iv, int id);
static char *filenameof(char *path);
static char *propernameof(Piv iv, char *name);

/* END: User API */

/* ====================== PUT UNIQUE CODE HERE ========================= */
static void *do_stmt(Piv iv, unsigned char *p);
static void *do_expr(Piv iv, unsigned char *p);
static void do_bracket(Piv iv, unsigned char *p, unsigned char *q);
static void *do_something(Piv iv, unsigned char *p);
extern char *ctime();

/* ===================== ASMCODE OUTPUT GENERATOR ======================= */
#define DUMP(args...) fprintf(((Piv)iv)->outfile, ## args)
#define QDUMP(arg) fputs(arg, ((Piv)iv)->outfile)
#define QDUMPC(arg) fputc(arg, ((Piv)iv)->outfile)

#define SOURCE 0
#define DESTINATION 1
#define USE_ADDR (0x0001)
#define NEEDS_CONVERSION (0x0002)

#define BWORD (1)
#define SWORD (2)
#define LWORD (3)

#define INDIRECT (0x01)
#define INDEXED (0x02)

/* WARNING ONLY GCC WILL COMPILE THIS */
#define ENCODE(args...) \
{iv->cod->ee = (struct _nodeE){## args}; link_cod(iv);}

typedef struct _nodeE
{
	unsigned short inst;
	unsigned char size;
	unsigned char s1;
	unsigned char s1m;
	unsigned char s2;
	unsigned char s2m;
	unsigned char d1;
	unsigned char d1m;
	unsigned char d2;
	unsigned char d2m;
	unsigned char cdat;
	long dat;
	void *ptr;
} NODEE, *PNODEE;

typedef struct _nodeC
{
	struct _nodeC *next;
	struct _nodeE ee;
} NODEC, *PNODEC;

typedef struct _nodeO 
{
	struct _nodeO *next;
	unsigned char *p;
	ND d;
	ND l;
	ND r;
	PNODEC startinst;
	PNODEC endinst;
} NODEO, *PNODEO;

static char *notice = 
	"  Generated by Oxbow Software Asmcode Backend `oxccai' version %d.%d\n\n";

static char *opnames[] = {"",
  "aaa","aad","aam","aas","adc","add","and","arpl",
  "bound","bsf","bsr","bswap","bt","btc","btr","bts",
  "call","cbw","cdq","clc","cld","cli","clts",
  "cmc","cmp","cmps","cmpxchg","cwd","cwde",
  "daa","das","dec","div",
  "enter","esc",
  "hlt",
  "idiv","imul","in","inc","ins",
  "int","into","invd","invlpg","iret","iretd","iretdf","iretf",
  "ja","jae","jb","jbe","jc","jcxz","je","jecxz","jg","jge","jl","jle","jmp",
  "jna","jnae","jnb","jnbe","jnc","jne","jng","jnge","jnl","jnle","jno","jnp",
  "jns","jnz","jo","jp","jpe","jpo","js","jz",
  "lar","lds","lea","leave","les","lfs",
  "lgdt","lgs","lidt","lldt","lmsw","lock",
  "lods","loop","loope","loopne","loopnz","loopz",
  "lsl","lss","ltr",
  "mov","movs","movsx","movzx","mul",
  "neg","nop","not",
  "or","out","outs",
  "pop","popa","popf","push","pusha","pushf",
  "rcl","rcr","ret","retf","retn","rol","ror",
  "rep","repe","repne","repnz","repz",
  "sahf","sal","sar","sbb","scas","shl","shr",
  "seta","setae","setb","setbe","setc","sete","setg","setge","setl","setle",
  "setna","setnae","setnb","setnbe","setnc","setne","setng","setnge","setnl",
  "setnle","setno","setnp","setns","setnz","seto","setp","setpe","setpo",
  "sets","setz","sgdt","sidt","sldt","smsw",
  "stc","std","sti","stos","str","sub",
  "test",
  "verr","verw",
  "wait","wbinvd",
  "xadd","xchg","xlat","xlatb","xor",

  "fabs","fadd","faddp","fbld","fbstp","fchs","fclex",
  "fcom","fcomp","fcompp","fcos",
  "fdecstp","fdisi",
  "fdiv","fdivp","fdivr","fdivrp","feni","ffree","fiadd",
  "ficom","ficomp","fidiv","fidivr","fild","fimul","fincstp","finit",
  "fist","fistp","fisub","fisubr",
  "fld","fld1","fldcw","fldenv","fldlg2","fldln2","fldl2e","fldl2t","fldpi","fldz",
  "fmul","fmulp",
  "fnclex","fndisi","fneni","fninit","fnop","fnsave","fnstcw","fnstenv","fnsts",
  "fpatan","fprem","fprem1","fptan","frndint","frstor","fsave",
  "fscale","fsin","fsincos","fsqrt","fst","fstcw","fstenv",
  "fstp",
  "fstsw","fsub","fsubr",
  "ftst","fucom","fucomp","fucompp","fwait","fxam","fxch","fxtract",
  "fyl2x","fyl2xpi","f2xmi"
};
enum  {		
  aaa=1,aad,aam,aas,adc,add,and,arpl,
  bound,bsf,bsr,bswap,bt,btc,btr,bts,
  call,cbw,cdq,clc,cld,cli,clts,
  cmc,cmp,cmps,cmpxchg,cwd,cwde,
  daa,das,dec,DIV,
  enter,esc,
  hlt,
  idiv,imul,in,inc,ins,
  INT,into,invd,invlpg,iret,iretd,iretdf,iretf,
  ja,jae,jb,jbe,jc,jcxz,je,jecxz,jg,jge,jl,jle,jmp,
  jna,jnae,jnb,jnbe,jnc,jne,jng,jnge,jnl,jnle,jno,jnp,
  jns,jnz,jo,jp,jpe,jpo,js,jz,
  lar,lds,lea,leave,les,lfs,
  lgdt,lgs,lidt,lldt,lmsw,lock,
  lods,loop,loope,loopne,loopnz,loopz,
  lsl,lss,ltr,
  mov,movs,movsx,movzx,mul,
  neg,nop,not,
  or,out,outs,
  pop,popa,popf,push,pusha,pushf,
  rcl,rcr,ret,retf,retn,rol,ror,
  rep,repe,repne,repnz,repz,
  sahf,sal,sar,sbb,scas,shl,shr,
  seta,setae,setb,setbe,setc,sete,setg,setge,setl,setle,
  setna,setnae,setnb,setnbe,setnc,setne,setng,setnge,setnl,
  setnle,setno,setnp,setns,setnz,seto,setp,setpe,setpo,
  sets,setz,sgdt,sidt,sldt,smsw,
  stc,std,sti,stos,str,sub,
  test,
  verr,verw,
  WAIT,wbinvd,
  xadd,xchg,xlat,xlatb,xor,

  fabs,fadd,faddp,fbld,fbstp,fchs,fclex,
  fcom,fcomp,fcompp,fcos,
  fdecstp,fdisi,
  fdiv,fdivp,fdivr,fdivrp,feni,ffree,fiadd,
  ficom,ficomp,fidiv,fidivr,fild,fimul,fincstp,finit,
  fist,fistp,fisub,fisubr,
  fld,fld1,fldcw,fldenv,fldlg2,fldln2,fldl2e,fldl2t,fldpi,fldz,
  fmul,fmulp,
  fnclex,fndisi,fneni,fninit,fnop,fnsave,fnstcw,fnstenv,fnsts,
  fpatan,fprem,fprem1,fptan,frndint,frstor,fsave,
  fscale,fsin,fsincos,fsqrt,fst,fstcw,fstenv,
  fstp,
  fstsw,fsub,fsubr,
  ftst,fucom,fucomp,fucompp,fwait,fxam,fxch,fxtract,
  fyl2x,fyl2xpi,f2xmi,
  ENDCODES,
  ALIGN,PUSHREGS,POPREGS,LABEL,LINE,FUNCNAME,LINEFEED
};
static char *udatnames[] = {"",
"%al","%ah","%ax","%eax","%bl","%bh","%bx","%ebx","%cl","%ch","%cx","%ecx",
"%dl","%dh","%dx","%edx","%sp","%esp","%bp","%ebp",
"%si","%esi","%di","%edi","%ss","%ds","%es","%fs","%gs","","",""
};
static char *datnames[] = {"",
"al","ah","ax","eax","bl","bh","bx","ebx","cl","ch","cx","ecx",
"dl","dh","dx","edx","sp","esp","bp","ebp",
"si","esi","di","edi","ss","ds","es","fs","gs","","",""
};
enum {
AL=1,AH,AX,EAX,BL,BH,BX,EBX,CL,CH,CX,ECX,DL,DH,DX,EDX,SP,ESP,BP,EBP,
SI,ESI,DI,EDI,SS,DS,ES,FS,GS,CONST,VARNAME,LOCATION
};

static char uwordsize[] = {' ','b','w','l'};
static char dwordsize[] = {' ','b','w','d'};

static long
symnumof(Piv iv, char *symb)
{
struct _gloval *valp;

	if(StringFind(iv->gbltbl, symb, &valp))
		return (long)valp->pf->symtran[valp->symnum];
	return 0;

}
static void
buildin(Piv iv, char *symb, unsigned char code)
{
long key[2];

	if((key[0] = symnumof(iv, symb)))
	{
		key[1] = 0;
		SymInsert(iv->builtintbl, key, &code, 1);
	}
}


static void
install_builtins(Piv iv)
{/* USE THIS TO INSTALL WHATEVER BUILTINS ARE IN THE TARGET INTERPRETER */
#define BUILDIN(a,b) buildin(iv,#a,b)

	iv->builtintbl = NewSymTable(iv->category, 191);

	BUILDIN(alloca,0);

#undef BUILDIN
}
static long
final_strofs(Piv iv, char *string)
{
long *result;

	if(StringFind(iv->finalsymtbl, string, &result))
		return result[2];	
	return 0;
}
static short
final_symnum(Piv iv, short symnum)
{
long *result;

	if(StringFind(iv->finalsymtbl, iv->symaddr[symnum], &result))
		return result[1]-1;
	return 0;
}
static void
make_final_symtab(Piv iv)
{
int i;
	iv->finalsymtbl = NewSymTable(iv->category, 0);
	if(SymHead(iv->gbltbl))
	{
		i = 0;
		while(SymNext(iv->gbltbl))
		{
		long *result;
		struct _gloval *valp;

			SymValue(iv->gbltbl, &valp);
			if(*(valp->p))
			{
				if(!StringInsert(iv->finalsymtbl, valp->symname, &result))
				{/* New Entry */
					result[1] = ++i;
				}
			}
		}
	}
}
static void *
new_nodeO(Piv iv)
{
PNODEO p;

	if(iv->ob_bufcnt < sizeof(NODEO))
	{/* Allocate a new chunk of linked list space */
	  iv->ob_bufcnt = 4080;
	  iv->ob_buf = Ccalloc(FUNCDATA, 1, iv->ob_bufcnt);
	}
	p = (PNODEO)iv->ob_buf;
	iv->ob_buf += sizeof(NODEO);
	iv->ob_bufcnt -= sizeof(NODEO);
	++iv->ob_nodecnt;
	return p;	
}
static void
link_ob(Piv iv)
{/* Attach to the used list */

	if(!iv->ob_usedhead)
	{
		iv->ob_usedhead = iv->ob;
		iv->ob_usedtail = iv->ob;
	}
	else
	{
		iv->ob_usedtail->next = iv->ob;
		iv->ob_usedtail = iv->ob;
	}
	iv->ob = new_nodeO(iv);
}
static void *
new_nodeC(Piv iv)
{
PNODEC p;

	if(iv->cod_bufcnt < sizeof(NODEC))
	{/* Allocate a new chunk of linked list space */
	  iv->cod_bufcnt = 4080;
	  iv->cod_buf = Ccalloc(FUNCDATA, 1, iv->cod_bufcnt);
	}
	p = (PNODEC)iv->cod_buf;
	iv->cod_buf += sizeof(NODEC);
	iv->cod_bufcnt -= sizeof(NODEC);
	++iv->cod_nodecnt;
	return p;	
}
static void
link_cod(Piv iv)
{/* Attach to the used list */

	if(!iv->cod_usedhead)
	{
		iv->cod_usedhead = iv->cod;
		iv->cod_usedtail = iv->cod;
	}
	else
	{
		iv->cod_usedtail->next = iv->cod;
		iv->cod_usedtail = iv->cod;
	}
	iv->cod = new_nodeC(iv);
}
static PNODEC
gen_inst(Piv iv, PNODEO pnode)
{
unsigned char opcode;
unsigned char *p;
PND d,l,r;

		d = &pnode->d;
		l = &pnode->l;
		r = &pnode->r;
		p = pnode->p;
		opcode = *p;

		switch(opcode)
		{
			/* 0 ADDRESS MODE */
			case regainop:
			case grabop:
				break;
			case retvoidop:
				ENCODE(jmp, LWORD, s1: LOCATION, dat: iv->botlabel);
				break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人亚洲人成电影网站色| 欧美亚洲图片小说| 五月天视频一区| 亚洲最大成人网4388xx| 亚洲美女偷拍久久| 一区二区欧美国产| 亚洲精品一二三| 日韩一区在线免费观看| 国产精品私房写真福利视频| 中文字幕第一区二区| 日韩欧美电影在线| 欧美精品一区二区三区在线播放 | 成人黄色av电影| 高清beeg欧美| 91久久线看在观草草青青| 欧美日韩和欧美的一区二区| 欧美电影一区二区三区| 精品国产伦理网| 国产精品成人一区二区艾草 | 老司机一区二区| 风间由美性色一区二区三区| 91麻豆免费看片| 欧美精品丝袜久久久中文字幕| 69堂成人精品免费视频| 久久精品亚洲国产奇米99| 中文字幕在线观看一区二区| 亚洲另类在线一区| 蜜臀av性久久久久蜜臀aⅴ| 久久电影国产免费久久电影| 国产成人夜色高潮福利影视| 91免费视频大全| 91色.com| 久久在线免费观看| 亚洲在线成人精品| 国产电影一区在线| 欧美精品国产精品| 中文字幕一区二区三区在线不卡| 日韩中文字幕1| 国产很黄免费观看久久| 欧美三级电影在线看| 日韩欧美久久一区| 亚洲精品亚洲人成人网 | 日韩三区在线观看| 国产女人18毛片水真多成人如厕| 亚洲国产日韩一级| 97久久精品人人做人人爽| 日韩欧美国产一区二区三区| 亚洲精品国产a久久久久久 | 一本大道久久a久久综合婷婷| 日韩精品一区在线观看| 亚洲一区二区三区免费视频| 大桥未久av一区二区三区中文| 日韩欧美专区在线| 亚洲午夜久久久久中文字幕久| 成人性视频网站| 日韩精品中文字幕在线不卡尤物| 性久久久久久久| 色94色欧美sute亚洲线路二| 欧美高清在线精品一区| 国产一区在线精品| 亚洲精品一区二区精华| 免费观看在线综合色| 欧美性三三影院| 一区二区三区国产豹纹内裤在线| 国产福利一区二区三区| 国产婷婷精品av在线| 韩国一区二区在线观看| 日韩精品一区二区三区在线 | 国产天堂亚洲国产碰碰| 国产在线日韩欧美| 久久久噜噜噜久久人人看| 久久精品久久精品| 精品国产露脸精彩对白| 国产在线观看一区二区| 欧美精品一区二区三区在线 | 日韩区在线观看| 另类中文字幕网| 精品国产亚洲一区二区三区在线观看| 免费高清在线视频一区·| 69堂精品视频| 黑人精品欧美一区二区蜜桃| 国产亚洲视频系列| 成人18视频日本| 亚洲精品国产品国语在线app| 在线一区二区观看| 爽好久久久欧美精品| 日韩精品一区在线| 国产成人啪午夜精品网站男同| 国产精品久久久一本精品| 91免费看片在线观看| 日韩综合一区二区| 久久九九99视频| 91在线观看高清| 无吗不卡中文字幕| 久久久久久影视| 99久久er热在这里只有精品15 | 色88888久久久久久影院野外| 一区二区三区日韩欧美| 777亚洲妇女| 成人综合在线视频| 天堂av在线一区| 中文乱码免费一区二区| 欧亚洲嫩模精品一区三区| 免费观看在线综合色| 国产日产欧美一区二区视频| 在线亚洲免费视频| 狠狠色狠狠色综合系列| 亚洲欧洲综合另类在线| 日韩欧美精品在线| 91香蕉国产在线观看软件| 精品一区二区综合| 国产精品久久久久久妇女6080 | 国产日韩影视精品| 欧美日韩国产片| 岛国精品在线播放| 蜜桃久久精品一区二区| 国产精品久久久久久久久久久免费看 | 国产精品久久久久一区二区三区 | 婷婷成人综合网| 国产精品午夜久久| 欧美第一区第二区| 欧美亚洲动漫精品| 成人的网站免费观看| 久久精品国产久精国产| 亚洲狠狠爱一区二区三区| 国产三级一区二区| 精品少妇一区二区三区在线视频 | 国产乱子伦视频一区二区三区 | 免费观看一级特黄欧美大片| 日韩一区欧美小说| 国产视频一区在线观看 | 国产精品乱人伦| 久久综合色一综合色88| 51午夜精品国产| 欧美色综合网站| 色婷婷综合久久久久中文一区二区| 国内精品在线播放| 久久成人麻豆午夜电影| 午夜精品一区二区三区三上悠亚| 亚洲欧美综合另类在线卡通| 国产日产精品1区| 久久久青草青青国产亚洲免观| 日韩免费观看高清完整版在线观看| 欧美日韩国产一区二区三区地区| 91高清视频在线| 色综合色综合色综合| aaa欧美大片| 91毛片在线观看| 色悠悠亚洲一区二区| 91视视频在线观看入口直接观看www| 国产成人夜色高潮福利影视| 国产在线视频精品一区| 国产一区二区三区观看| 国产一本一道久久香蕉| 国产福利一区二区三区视频| 国产成人在线免费观看| 国产成人福利片| 不卡的看片网站| 色婷婷av一区二区三区软件| 欧洲一区在线电影| 欧美久久一二区| 欧美成人伊人久久综合网| 26uuu亚洲综合色| 国产精品久线在线观看| 一区二区三区日韩精品视频| 日本最新不卡在线| 久久激五月天综合精品| 国产999精品久久久久久绿帽| 成人av小说网| 欧美日韩成人高清| 欧美大胆人体bbbb| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 成人美女视频在线看| 91丨九色porny丨蝌蚪| 欧美日韩成人综合| 精品国产免费视频| 国产精品久久久久久久久免费樱桃| 亚洲美女一区二区三区| 免费观看一级欧美片| av中文字幕亚洲| 欧美精品在线观看一区二区| 久久综合九色综合97婷婷女人| 国产精品久久久久久久久果冻传媒| 一区二区三区日韩欧美精品| 麻豆一区二区99久久久久| 成人av在线影院| 日韩欧美一级二级三级久久久| 国产精品嫩草久久久久| 日韩极品在线观看| 日韩中文字幕不卡| caoporn国产一区二区| 欧美一区二区在线不卡| 中文字幕日韩一区二区| 久久精品国产第一区二区三区| 九九视频精品免费| 国产二区国产一区在线观看| 色综合天天天天做夜夜夜夜做| 欧美一区二区不卡视频| 亚洲精品少妇30p| 激情欧美一区二区三区在线观看|