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

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

?? mmx.h

?? ac3的解碼程序
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*	mmx.h	MultiMedia eXtensions GCC interface library for IA32.	To use this library, simply include this header file	and compile with GCC.  You MUST have inlining enabled	in order for mmx_ok() to work; this can be done by	simply using -O on the GCC command line.	Compiling with -DMMX_TRACE will cause detailed trace	output to be sent to stderr for each mmx operation.	This adds lots of code, and obviously slows execution to	a crawl, but can be very useful for debugging.	THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY	EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT	LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY	AND FITNESS FOR ANY PARTICULAR PURPOSE.	1997-98 by H. Dietz and R. Fisher History:	97-98*	R.Fisher	Early versions	980501	R.Fisher	Original Release	980611*	H.Dietz		Rewrite, correctly implementing inlines, and		R.Fisher	 including direct register accesses.	980616	R.Fisher	Release of 980611 as 980616.	980714	R.Fisher	Minor corrections to Makefile, etc.	980715	R.Fisher	mmx_ok() now prevents optimizer from using				 clobbered values.				mmx_ok() now checks if cpuid instruction is				 available before trying to use it.	980726*	R.Fisher	mm_support() searches for AMD 3DNow, Cyrix				 Extended MMX, and standard MMX.  It returns a				 value which is positive if any of these are				 supported, and can be masked with constants to				 see which.  mmx_ok() is now a call to this	980726*	R.Fisher	Added i2r support for shift functions	980919	R.Fisher	Fixed AMD extended feature recognition bug.	980921	R.Fisher	Added definition/check for _MMX_H.				Added "float s[2]" to mmx_t for use with				  3DNow and EMMX.  So same mmx_t can be used.	981013	R.Fisher	Fixed cpuid function 1 bug (looked at wrong reg)				Fixed psllq_i2r error in mmxtest.c	* Unreleased (internal or interim) versions Notes:	It appears that the latest gas has the pand problem fixed, therefore	  I'll undefine BROKEN_PAND by default.	String compares may be quicker than the multiple test/jumps in vendor	  test sequence in mmx_ok(), but I'm not concerned with that right now. Acknowledgments:	Jussi Laako for pointing out the errors ultimately found to be	  connected to the failure to notify the optimizer of clobbered values.	Roger Hardiman for reminding us that CPUID isn't everywhere, and that	  someone may actually try to use this on a machine without CPUID.	  Also for suggesting code for checking this.	Robert Dale for pointing out the AMD recognition bug.	Jimmy Mayfield and Carl Witty for pointing out the Intel recognition	  bug.	Carl Witty for pointing out the psllq_i2r test bug.*/#ifndef _MMX_H#define _MMX_H/*	Warning:  at this writing, the version of GAS packaged	with most Linux distributions does not handle the	parallel AND operation mnemonic correctly.  If the	symbol BROKEN_PAND is defined, a slower alternative	coding will be used.  If execution of mmxtest results	in an illegal instruction fault, define this symbol.*/#undef	BROKEN_PAND/*	The type of an value that fits in an MMX register	(note that long long constant values MUST be suffixed	 by LL and unsigned long long values by ULL, lest	 they be truncated by the compiler)*/typedef	union {	long long		q;	/* Quadword (64-bit) value */	unsigned long long	uq;	/* Unsigned Quadword */	int			d[2];	/* 2 Doubleword (32-bit) values */	unsigned int		ud[2];	/* 2 Unsigned Doubleword */	short			w[4];	/* 4 Word (16-bit) values */	unsigned short		uw[4];	/* 4 Unsigned Word */	char			b[8];	/* 8 Byte (8-bit) values */	unsigned char		ub[8];	/* 8 Unsigned Byte */	float			s[2];	/* Single-precision (32-bit) value */} mmx_t;/*	Function to test if multimedia instructions are supported...*/inline extern intmm_support(void){	/* Returns 1 if MMX instructions are supported,	   3 if Cyrix MMX and Extended MMX instructions are supported	   5 if AMD MMX and 3DNow! instructions are supported	   0 if hardware does not support any of these	*/	register int rval = 0;	__asm__ __volatile__ (		/* See if CPUID instruction is supported ... */		/* ... Get copies of EFLAGS into eax and ecx */		"pushf\n\t"		"popl %%eax\n\t"		"movl %%eax, %%ecx\n\t"		/* ... Toggle the ID bit in one copy and store */		/*     to the EFLAGS reg */		"xorl $0x200000, %%eax\n\t"		"push %%eax\n\t"		"popf\n\t"		/* ... Get the (hopefully modified) EFLAGS */		"pushf\n\t"		"popl %%eax\n\t"		/* ... Compare and test result */		"xorl %%eax, %%ecx\n\t"		"testl $0x200000, %%ecx\n\t"		"jz NotSupported1\n\t"		/* Nothing supported */		/* Get standard CPUID information, and		       go to a specific vendor section */		"movl $0, %%eax\n\t"		"cpuid\n\t"		/* Check for Intel */		"cmpl $0x756e6547, %%ebx\n\t"		"jne TryAMD\n\t"		"cmpl $0x49656e69, %%edx\n\t"		"jne TryAMD\n\t"		"cmpl $0x6c65746e, %%ecx\n"		"jne TryAMD\n\t"		"jmp Intel\n\t"		/* Check for AMD */		"\nTryAMD:\n\t"		"cmpl $0x68747541, %%ebx\n\t"		"jne TryCyrix\n\t"		"cmpl $0x69746e65, %%edx\n\t"		"jne TryCyrix\n\t"		"cmpl $0x444d4163, %%ecx\n"		"jne TryCyrix\n\t"		"jmp AMD\n\t"		/* Check for Cyrix */		"\nTryCyrix:\n\t"		"cmpl $0x69727943, %%ebx\n\t"		"jne NotSupported2\n\t"		"cmpl $0x736e4978, %%edx\n\t"		"jne NotSupported3\n\t"		"cmpl $0x64616574, %%ecx\n\t"		"jne NotSupported4\n\t"		/* Drop through to Cyrix... */		/* Cyrix Section */		/* See if extended CPUID is supported */		"movl $0x80000000, %%eax\n\t"		"cpuid\n\t"		"cmpl $0x80000000, %%eax\n\t"		"jl MMXtest\n\t"	/* Try standard CPUID instead */		/* Extended CPUID supported, so get extended features */		"movl $0x80000001, %%eax\n\t"		"cpuid\n\t"		"testl $0x00800000, %%eax\n\t"	/* Test for MMX */		"jz NotSupported5\n\t"		/* MMX not supported */		"testl $0x01000000, %%eax\n\t"	/* Test for Ext'd MMX */		"jnz EMMXSupported\n\t"		"movl $1, %0:\n\n\t"		/* MMX Supported */		"jmp Return\n\n"		"EMMXSupported:\n\t"		"movl $3, %0:\n\n\t"		/* EMMX and MMX Supported */		"jmp Return\n\t"		/* AMD Section */		"AMD:\n\t"		/* See if extended CPUID is supported */		"movl $0x80000000, %%eax\n\t"		"cpuid\n\t"		"cmpl $0x80000000, %%eax\n\t"		"jl MMXtest\n\t"	/* Try standard CPUID instead */		/* Extended CPUID supported, so get extended features */		"movl $0x80000001, %%eax\n\t"		"cpuid\n\t"		"testl $0x00800000, %%edx\n\t"	/* Test for MMX */		"jz NotSupported6\n\t"		/* MMX not supported */		"testl $0x80000000, %%edx\n\t"	/* Test for 3DNow! */		"jnz ThreeDNowSupported\n\t"		"movl $1, %0:\n\n\t"		/* MMX Supported */		"jmp Return\n\n"		"ThreeDNowSupported:\n\t"		"movl $5, %0:\n\n\t"		/* 3DNow! and MMX Supported */		"jmp Return\n\t"		/* Intel Section */		"Intel:\n\t"		/* Check for MMX */		"MMXtest:\n\t"		"movl $1, %%eax\n\t"		"cpuid\n\t"		"testl $0x00800000, %%edx\n\t"	/* Test for MMX */		"jz NotSupported7\n\t"		/* MMX Not supported */		"movl $1, %0:\n\n\t"		/* MMX Supported */		"jmp Return\n\t"		/* Nothing supported */		"\nNotSupported1:\n\t"		"#movl $101, %0:\n\n\t"		"\nNotSupported2:\n\t"		"#movl $102, %0:\n\n\t"		"\nNotSupported3:\n\t"		"#movl $103, %0:\n\n\t"		"\nNotSupported4:\n\t"		"#movl $104, %0:\n\n\t"		"\nNotSupported5:\n\t"		"#movl $105, %0:\n\n\t"		"\nNotSupported6:\n\t"		"#movl $106, %0:\n\n\t"		"\nNotSupported7:\n\t"		"#movl $107, %0:\n\n\t"		"movl $0, %0:\n\n\t"		"Return:\n\t"		: "=a" (rval)		: /* no input */		: "eax", "ebx", "ecx", "edx"	);	/* Return */	return(rval);}/*	Function to test if mmx instructions are supported...*/inline extern intmmx_ok(void){	/* Returns 1 if MMX instructions are supported, 0 otherwise */	return ( mm_support() & 0x1 );}/*	Helper functions for the instruction macros that follow...	(note that memory-to-register, m2r, instructions are nearly	 as efficient as register-to-register, r2r, instructions;	 however, memory-to-memory instructions are really simulated	 as a convenience, and are only 1/3 as efficient)*/#ifdef	MMX_TRACE/*	Include the stuff for printing a trace to stderr...*/#include <stdio.h>#define	mmx_i2r(op, imm, reg) \	{ \		mmx_t mmx_trace; \		mmx_trace = (imm); \		fprintf(stderr, #op "_i2r(" #imm "=0x%016llx, ", mmx_trace.q); \		__asm__ __volatile__ ("movq %%" #reg ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #reg "=0x%016llx) => ", mmx_trace.q); \		__asm__ __volatile__ (#op " %0, %%" #reg \				      : /* nothing */ \				      : "X" (imm)); \		__asm__ __volatile__ ("movq %%" #reg ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #reg "=0x%016llx\n", mmx_trace.q); \	}#define	mmx_m2r(op, mem, reg) \	{ \		mmx_t mmx_trace; \		mmx_trace = (mem); \		fprintf(stderr, #op "_m2r(" #mem "=0x%016llx, ", mmx_trace.q); \		__asm__ __volatile__ ("movq %%" #reg ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #reg "=0x%016llx) => ", mmx_trace.q); \		__asm__ __volatile__ (#op " %0, %%" #reg \				      : /* nothing */ \				      : "X" (mem)); \		__asm__ __volatile__ ("movq %%" #reg ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #reg "=0x%016llx\n", mmx_trace.q); \	}#define	mmx_r2m(op, reg, mem) \	{ \		mmx_t mmx_trace; \		__asm__ __volatile__ ("movq %%" #reg ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #op "_r2m(" #reg "=0x%016llx, ", mmx_trace.q); \		mmx_trace = (mem); \		fprintf(stderr, #mem "=0x%016llx) => ", mmx_trace.q); \		__asm__ __volatile__ (#op " %%" #reg ", %0" \				      : "=X" (mem) \				      : /* nothing */ ); \		mmx_trace = (mem); \		fprintf(stderr, #mem "=0x%016llx\n", mmx_trace.q); \	}#define	mmx_r2r(op, regs, regd) \	{ \		mmx_t mmx_trace; \		__asm__ __volatile__ ("movq %%" #regs ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #op "_r2r(" #regs "=0x%016llx, ", mmx_trace.q); \		__asm__ __volatile__ ("movq %%" #regd ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #regd "=0x%016llx) => ", mmx_trace.q); \		__asm__ __volatile__ (#op " %" #regs ", %" #regd); \		__asm__ __volatile__ ("movq %%" #regd ", %0" \				      : "=X" (mmx_trace) \				      : /* nothing */ ); \		fprintf(stderr, #regd "=0x%016llx\n", mmx_trace.q); \	}#define	mmx_m2m(op, mems, memd) \	{ \		mmx_t mmx_trace; \		mmx_trace = (mems); \		fprintf(stderr, #op "_m2m(" #mems "=0x%016llx, ", mmx_trace.q); \		mmx_trace = (memd); \		fprintf(stderr, #memd "=0x%016llx) => ", mmx_trace.q); \		__asm__ __volatile__ ("movq %0, %%mm0\n\t" \				      #op " %1, %%mm0\n\t" \				      "movq %%mm0, %0" \				      : "=X" (memd) \				      : "X" (mems)); \		mmx_trace = (memd); \		fprintf(stderr, #memd "=0x%016llx\n", mmx_trace.q); \	}#else/*	These macros are a lot simpler without the tracing...

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色小视频| 日韩精品一区二区三区在线观看| 日韩一区二区在线播放| 日韩免费视频一区| 亚洲国产精品久久久男人的天堂 | 国产精品一二三四五| 欧美精品乱码久久久久久按摩| 国产精品女主播av| 成人综合在线视频| 国产精品你懂的在线欣赏| 国产麻豆精品视频| 欧美精品一区二区蜜臀亚洲| 另类小说欧美激情| 欧美不卡一区二区三区四区| 日本不卡视频在线| 欧美日韩电影一区| 石原莉奈一区二区三区在线观看| 欧美肥妇bbw| 免费不卡在线视频| 国产三级久久久| 欧美最新大片在线看| 天堂精品中文字幕在线| 一本大道久久a久久综合婷婷| 一区二区三区日韩精品| 欧美三电影在线| 国产在线视频精品一区| 中文字幕一区二区三区四区| 在线一区二区视频| 首页欧美精品中文字幕| 欧美精品免费视频| 久久精品国产一区二区| 亚洲欧洲韩国日本视频| 欧美日韩成人在线| 国产91丝袜在线播放0| 亚洲午夜激情网站| 国产婷婷一区二区| 日韩欧美一级片| 99国产精品99久久久久久| 日韩电影在线一区| 亚洲人成电影网站色mp4| 日韩女优毛片在线| 欧美日韩久久不卡| 91丨九色丨蝌蚪丨老版| 国产精品一区二区果冻传媒| 日本伊人精品一区二区三区观看方式| 中文字幕成人av| 久久久天堂av| 欧美福利视频一区| 欧美性色黄大片手机版| 日本大香伊一区二区三区| 国产成人亚洲综合色影视| 麻豆国产91在线播放| 亚洲图片欧美色图| 亚洲一区二区免费视频| 亚洲美女偷拍久久| 亚洲一区在线视频观看| 亚洲精品成人悠悠色影视| 亚洲人午夜精品天堂一二香蕉| 国产欧美视频在线观看| 国产午夜精品久久| 亚洲国产精品传媒在线观看| 精品国产91乱码一区二区三区| 日韩欧美色综合| 久久精品在这里| 亚洲欧美日韩综合aⅴ视频| 亚洲精品福利视频网站| 亚洲国产综合色| 青草国产精品久久久久久| 美女久久久精品| 成人一区二区在线观看| 在线一区二区观看| 欧美丰满嫩嫩电影| 国产欧美日韩亚州综合| 一区二区三区资源| 亚洲精品成人精品456| 日本va欧美va精品| 国产一区二区三区在线观看免费| 国产一区二区视频在线播放| 成人av网址在线| 欧美日韩一区三区| 欧美激情一区二区三区全黄| 亚洲天堂av老司机| 精品一区二区三区免费毛片爱| eeuss鲁片一区二区三区| 欧美老年两性高潮| 精品精品国产高清a毛片牛牛 | 成人看片黄a免费看在线| 91久久精品一区二区二区| 在线精品视频免费观看| 久久一留热品黄| 毛片不卡一区二区| 91福利国产精品| 国产天堂亚洲国产碰碰| 蜜桃91丨九色丨蝌蚪91桃色| 91玉足脚交白嫩脚丫在线播放| 精品久久国产老人久久综合| 亚洲制服丝袜av| 色诱视频网站一区| 欧美激情一区二区三区全黄| 另类中文字幕网| 97超碰欧美中文字幕| 91精品国产福利| 亚洲国产精品一区二区久久| 乱中年女人伦av一区二区| 91精品国产色综合久久不卡蜜臀| 视频在线观看一区| 欧美一级二级三级蜜桃| 精东粉嫩av免费一区二区三区 | 亚洲成av人片在线观看| 欧美人与禽zozo性伦| 日本一不卡视频| 日韩视频免费观看高清完整版| 国产一区二区三区四区五区入口| 7777精品伊人久久久大香线蕉| 免费高清成人在线| 中文字幕第一页久久| 欧美高清视频不卡网| 国产剧情一区二区| 婷婷综合另类小说色区| 国产欧美一区二区三区沐欲| 色综合亚洲欧洲| 麻豆精品蜜桃视频网站| 久久久国产精品午夜一区ai换脸| 一本大道av一区二区在线播放 | 国产精品嫩草99a| 6080国产精品一区二区| 成人免费毛片嘿嘿连载视频| 亚洲国产aⅴ天堂久久| 国产精品久久久久影视| 精品日韩一区二区三区免费视频| 91在线观看一区二区| 成人一区在线观看| 国模娜娜一区二区三区| 久久爱另类一区二区小说| 一区二区不卡在线视频 午夜欧美不卡在 | 91精品在线观看入口| 91国产福利在线| 一本色道久久加勒比精品| 国产不卡免费视频| 九九视频精品免费| 国产乱人伦偷精品视频不卡| 免费在线观看日韩欧美| 日日欢夜夜爽一区| 亚洲国产精品一区二区www| 亚洲激情欧美激情| 一区二区三区影院| 亚洲黄色小说网站| 一区二区成人在线| 日韩电影网1区2区| 久久不见久久见中文字幕免费| 久久99精品一区二区三区| 久久精品国产99国产| 美女视频第一区二区三区免费观看网站 | 不卡一区二区三区四区| www.亚洲精品| 欧美亚洲日本一区| 欧美一级黄色大片| 久久久.com| 一区二区三区加勒比av| 美腿丝袜一区二区三区| 国产精品一区久久久久| 成人av电影在线观看| 在线观看不卡一区| 久久免费看少妇高潮| 亚洲激情成人在线| 国产麻豆精品在线观看| 一本一道久久a久久精品综合蜜臀| 欧美精品久久天天躁| 国产亚洲欧美色| 午夜影视日本亚洲欧洲精品| 国产专区欧美精品| 欧美日韩免费观看一区三区| 国产日本一区二区| 六月丁香综合在线视频| 一本大道av一区二区在线播放 | 51精品秘密在线观看| 中文字幕av不卡| 国内不卡的二区三区中文字幕 | 国产麻豆精品95视频| 欧洲精品中文字幕| 中文字幕精品一区二区三区精品 | 国产欧美日韩亚州综合 | 精品无码三级在线观看视频 | 成人av小说网| 久久久www成人免费无遮挡大片| 日韩激情视频网站| 欧美伊人久久久久久久久影院 | 欧美精品丝袜中出| 亚洲国产va精品久久久不卡综合 | 成人av在线网| 国产精品久久看| a亚洲天堂av| 国产精品国产自产拍在线| 懂色av一区二区夜夜嗨| 久久精品亚洲乱码伦伦中文| 国产v日产∨综合v精品视频| www精品美女久久久tv| 国产传媒日韩欧美成人| 久久九九全国免费| 99精品欧美一区二区蜜桃免费|