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

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

?? memcpy.c

?? ARM 嵌入式 系統 設計與實例開發 實驗教材 二源碼
?? C
字號:
/* *  linux/arch/alpha/lib/memcpy.c * *  Copyright (C) 1995  Linus Torvalds *//* * This is a reasonably optimized memcpy() routine. *//* * Note that the C code is written to be optimized into good assembly. However, * at this point gcc is unable to sanely compile "if (n >= 0)", resulting in a * explicit compare against 0 (instead of just using the proper "blt reg, xx" or * "bge reg, xx"). I hope alpha-gcc will be fixed to notice this eventually.. */#include <linux/types.h>/* * This should be done in one go with ldq_u*2/mask/stq_u. Do it * with a macro so that we can fix it up later.. */#define ALIGN_DEST_TO8_UP(d,s,n) \	while (d & 7) { \		if (n <= 0) return; \		n--; \		*(char *) d = *(char *) s; \		d++; s++; \	}#define ALIGN_DEST_TO8_DN(d,s,n) \	while (d & 7) { \		if (n <= 0) return; \		n--; \		d--; s--; \		*(char *) d = *(char *) s; \	}/* * This should similarly be done with ldq_u*2/mask/stq. The destination * is aligned, but we don't fill in a full quad-word */#define DO_REST_UP(d,s,n) \	while (n > 0) { \		n--; \		*(char *) d = *(char *) s; \		d++; s++; \	}#define DO_REST_DN(d,s,n) \	while (n > 0) { \		n--; \		d--; s--; \		*(char *) d = *(char *) s; \	}/* * This should be done with ldq/mask/stq. The source and destination are * aligned, but we don't fill in a full quad-word */#define DO_REST_ALIGNED_UP(d,s,n) DO_REST_UP(d,s,n)#define DO_REST_ALIGNED_DN(d,s,n) DO_REST_DN(d,s,n)/* * This does unaligned memory copies. We want to avoid storing to * an unaligned address, as that would do a read-modify-write cycle. * We also want to avoid double-reading the unaligned reads. * * Note the ordering to try to avoid load (and address generation) latencies. */static inline void __memcpy_unaligned_up (unsigned long d, unsigned long s,					  long n){	ALIGN_DEST_TO8_UP(d,s,n);	n -= 8;			/* to avoid compare against 8 in the loop */	if (n >= 0) {		unsigned long low_word, high_word;		__asm__("ldq_u %0,%1":"=r" (low_word):"m" (*(unsigned long *) s));		do {			unsigned long tmp;			__asm__("ldq_u %0,%1":"=r" (high_word):"m" (*(unsigned long *)(s+8)));			n -= 8;			__asm__("extql %1,%2,%0"				:"=r" (low_word)				:"r" (low_word), "r" (s));			__asm__("extqh %1,%2,%0"				:"=r" (tmp)				:"r" (high_word), "r" (s));			s += 8;			*(unsigned long *) d = low_word | tmp;			d += 8;			low_word = high_word;		} while (n >= 0);	}	n += 8;	DO_REST_UP(d,s,n);}static inline void __memcpy_unaligned_dn (unsigned long d, unsigned long s,					  long n){	/* I don't understand AXP assembler well enough for this. -Tim */	s += n;	d += n;	while (n--)		* (char *) --d = * (char *) --s;}/* * Hmm.. Strange. The __asm__ here is there to make gcc use an integer register * for the load-store. I don't know why, but it would seem that using a floating * point register for the move seems to slow things down (very small difference, * though). * * Note the ordering to try to avoid load (and address generation) latencies. */static inline void __memcpy_aligned_up (unsigned long d, unsigned long s,					long n){	ALIGN_DEST_TO8_UP(d,s,n);	n -= 8;	while (n >= 0) {		unsigned long tmp;		__asm__("ldq %0,%1":"=r" (tmp):"m" (*(unsigned long *) s));		n -= 8;		s += 8;		*(unsigned long *) d = tmp;		d += 8;	}	n += 8;	DO_REST_ALIGNED_UP(d,s,n);}static inline void __memcpy_aligned_dn (unsigned long d, unsigned long s,					long n){	s += n;	d += n;	ALIGN_DEST_TO8_DN(d,s,n);	n -= 8;	while (n >= 0) {		unsigned long tmp;		s -= 8;		__asm__("ldq %0,%1":"=r" (tmp):"m" (*(unsigned long *) s));		n -= 8;		d -= 8;		*(unsigned long *) d = tmp;	}	n += 8;	DO_REST_ALIGNED_DN(d,s,n);}void * memcpy(void * dest, const void *src, size_t n){	if (!(((unsigned long) dest ^ (unsigned long) src) & 7)) {		__memcpy_aligned_up ((unsigned long) dest, (unsigned long) src,				     n);		return dest;	}	__memcpy_unaligned_up ((unsigned long) dest, (unsigned long) src, n);	return dest;}/* For backward modules compatibility, define __memcpy.  */asm("__memcpy = memcpy; .globl __memcpy");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩1区2区| 日本午夜精品一区二区三区电影| 国产成人免费高清| 欧美激情自拍偷拍| 91亚洲男人天堂| 一区二区三区**美女毛片| 欧美性猛交xxxx乱大交退制版 | 韩国中文字幕2020精品| 欧美一二三区精品| 国产麻豆精品在线观看| 国产亚洲自拍一区| 一本久久a久久精品亚洲| 午夜久久福利影院| 久久亚洲精品国产精品紫薇| 成年人网站91| 亚洲成人免费电影| 国产色产综合色产在线视频| 日韩一区二区在线播放| 国产福利视频一区二区三区| 亚洲色图清纯唯美| 日韩欧美一二三| 99久久精品免费看国产| 视频在线观看一区| 久久久久久夜精品精品免费| 91久久精品一区二区三| 国内不卡的二区三区中文字幕| 亚洲欧洲99久久| 91精品国产综合久久香蕉的特点| 国产剧情一区二区三区| 亚洲一区二区综合| 国产午夜亚洲精品羞羞网站| 欧美性欧美巨大黑白大战| 国产精品一区二区你懂的| 亚洲成av人片一区二区梦乃| 欧美国产精品久久| 欧美一区二区三区在线观看| 91尤物视频在线观看| 九九精品一区二区| 亚洲综合激情另类小说区| 精品国产乱码久久久久久夜甘婷婷| www.欧美.com| 精品一区二区三区在线观看| 一区二区视频在线看| 久久久久久麻豆| 91精品国产综合久久久久久漫画| 97精品国产露脸对白| 国产一区二区在线视频| 日韩精品亚洲专区| 一区二区三区四区国产精品| 久久亚洲精品国产精品紫薇| 欧美一级片在线| 色琪琪一区二区三区亚洲区| 成人午夜精品在线| 激情综合网天天干| 蜜臀va亚洲va欧美va天堂| 一区二区三区在线观看欧美 | 欧美一区二区视频网站| 一本到一区二区三区| 成人一二三区视频| 国内精品久久久久影院薰衣草 | 日韩国产在线观看一区| 亚洲美女免费在线| 亚洲视频在线观看一区| 国产精品萝li| 国产精品天美传媒| 国产日韩在线不卡| 国产区在线观看成人精品| 久久久美女毛片| 久久一区二区三区四区| 欧美大片在线观看一区二区| 日韩一区二区高清| 日韩一区二区三区视频在线观看| 欧美疯狂做受xxxx富婆| 亚洲另类中文字| 亚洲区小说区图片区qvod| 亚洲欧美日韩中文字幕一区二区三区| 国产精品网站在线播放| 国产精品女同一区二区三区| 中文字幕不卡的av| 专区另类欧美日韩| 亚洲国产综合视频在线观看| 亚洲丶国产丶欧美一区二区三区| 亚洲综合男人的天堂| 亚洲午夜久久久久久久久电影网| 亚洲一二三区不卡| 另类小说一区二区三区| 国产福利一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲国产一区视频| 日韩1区2区日韩1区2区| 韩国午夜理伦三级不卡影院| 国产成人精品www牛牛影视| 9久草视频在线视频精品| 91九色02白丝porn| 欧美一卡二卡三卡四卡| 久久一区二区三区四区| 亚洲欧洲性图库| 亚洲午夜在线观看视频在线| 日本系列欧美系列| 成人免费视频视频| 欧美日韩一区二区三区在线看| 欧美一区二区三区视频免费播放 | 免费成人结看片| 高清在线成人网| 在线观看日韩电影| 日韩欧美成人激情| 国产精品素人一区二区| 亚洲综合区在线| 国产毛片精品一区| 91国偷自产一区二区三区成为亚洲经典| 欧美专区日韩专区| 久久色在线观看| 一区二区三区在线不卡| 蜜桃久久久久久| 99精品黄色片免费大全| 3d成人动漫网站| ...xxx性欧美| 久久9热精品视频| 91蜜桃视频在线| 日韩精品一区二区三区老鸭窝| 亚洲天堂免费在线观看视频| 免费成人在线观看| 在线这里只有精品| 国产婷婷色一区二区三区| 亚洲国产一区二区a毛片| 国产成人午夜视频| 正在播放一区二区| 日韩毛片精品高清免费| 国内精品不卡在线| 欧美日本不卡视频| 中文字幕一区二区不卡| 毛片av一区二区| 欧美中文字幕一区二区三区亚洲| 亚洲精品一线二线三线| 不卡区在线中文字幕| 日韩免费一区二区| 亚洲成av人片在线观看无码| 国产91综合一区在线观看| 欧美日韩国产成人在线91| 国产精品国产三级国产a| 激情欧美一区二区| 欧美精品久久久久久久久老牛影院| 中文字幕不卡一区| 国产精品一区二区三区乱码| 日韩视频在线一区二区| 午夜天堂影视香蕉久久| 色老汉av一区二区三区| 国产情人综合久久777777| 久久99精品久久久| 日韩欧美国产综合| 日本强好片久久久久久aaa| 在线观看视频一区二区| 亚洲欧美日韩小说| 色哟哟一区二区| 亚洲欧美另类小说| 一本大道久久a久久精品综合| 国产精品萝li| av在线一区二区三区| 亚洲欧美在线高清| youjizz国产精品| 国产精品嫩草久久久久| 成人美女在线观看| 欧美高清一级片在线观看| 丰满放荡岳乱妇91ww| 久久免费看少妇高潮| 国产在线视频一区二区三区| 精品久久久久久久人人人人传媒 | 一区二区三区av电影| 欧美性大战久久久久久久蜜臀| 一区二区三区欧美在线观看| 色播五月激情综合网| 午夜视频一区在线观看| 91精品国产品国语在线不卡| 蜜臀av性久久久久蜜臀aⅴ流畅 | 蜜臀久久99精品久久久画质超高清| 欧美精品九九99久久| 亚洲大片在线观看| 欧美精品日日鲁夜夜添| 秋霞电影网一区二区| 精品美女在线播放| 国产91精品入口| 亚洲欧洲中文日韩久久av乱码| 欧美在线综合视频| 亚洲777理论| 欧美mv日韩mv国产网站| 激情欧美日韩一区二区| 国产精品久久久久久久久久免费看 | 亚洲国产精品ⅴa在线观看| 成人一区二区三区在线观看| 中文字幕高清不卡| 欧美色区777第一页| 国内精品伊人久久久久av一坑| 国产精品久久久久久久久晋中| 在线视频欧美区| 裸体健美xxxx欧美裸体表演| 久久久国际精品| 在线观看欧美黄色| 精品制服美女丁香| 国产成人午夜电影网| 一区二区三区在线免费播放|