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

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

?? lib1funcs.s

?? 2410下的扳機開發
?? S
字號:
/* * linux/arch/arm/lib/lib1funcs.S: Optimized ARM division routines * * Author: Nicolas Pitre <nico@cam.org> *   - contributed to gcc-3.4 on Sep 30, 2003 *   - adapted for the Linux kernel on Oct 2, 2003 *//* Copyright 1995, 1996, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.This file is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License as published by theFree Software Foundation; either version 2, or (at your option) anylater version.In addition to the permissions in the GNU General Public License, theFree Software Foundation gives you unlimited permission to link thecompiled version of this file into combinations with other programs,and to distribute those combinations without any restriction comingfrom the use of this file.  (The General Public License restrictionsdo apply in other respects; for example, they cover modification ofthe file, and distribution when not linked into a combineexecutable.)This file is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.  *//*#include <linux/linkage.h>#include <asm/assembler.h>*/#define ALIGN		.align 4,0x90#define __LINUX_ARM_ARCH__  1#define ENTRY(name) \  .globl name; \  ALIGN; \  name:.macro ARM_DIV_BODY dividend, divisor, result, curbit#if __LINUX_ARM_ARCH__ >= 5	clz	\curbit, \divisor	clz	\result, \dividend	sub	\result, \curbit, \result	mov	\curbit, #1	mov	\divisor, \divisor, lsl \result	mov	\curbit, \curbit, lsl \result	mov	\result, #0	#else	@ Initially shift the divisor left 3 bits if possible,	@ set curbit accordingly.  This allows for curbit to be located	@ at the left end of each 4 bit nibbles in the division loop	@ to save one loop in most cases.	tst	\divisor, #0xe0000000	moveq	\divisor, \divisor, lsl #3	moveq	\curbit, #8	movne	\curbit, #1	@ Unless the divisor is very big, shift it up in multiples of	@ four bits, since this is the amount of unwinding in the main	@ division loop.  Continue shifting until the divisor is 	@ larger than the dividend.1:	cmp	\divisor, #0x10000000	cmplo	\divisor, \dividend	movlo	\divisor, \divisor, lsl #4	movlo	\curbit, \curbit, lsl #4	blo	1b	@ For very big divisors, we must shift it a bit at a time, or	@ we will be in danger of overflowing.1:	cmp	\divisor, #0x80000000	cmplo	\divisor, \dividend	movlo	\divisor, \divisor, lsl #1	movlo	\curbit, \curbit, lsl #1	blo	1b	mov	\result, #0#endif	@ Division loop1:	cmp	\dividend, \divisor	subhs	\dividend, \dividend, \divisor	orrhs	\result,   \result,   \curbit	cmp	\dividend, \divisor,  lsr #1	subhs	\dividend, \dividend, \divisor, lsr #1	orrhs	\result,   \result,   \curbit,  lsr #1	cmp	\dividend, \divisor,  lsr #2	subhs	\dividend, \dividend, \divisor, lsr #2	orrhs	\result,   \result,   \curbit,  lsr #2	cmp	\dividend, \divisor,  lsr #3	subhs	\dividend, \dividend, \divisor, lsr #3	orrhs	\result,   \result,   \curbit,  lsr #3	cmp	\dividend, #0			@ Early termination?	movnes	\curbit,   \curbit,  lsr #4	@ No, any more bits to do?	movne	\divisor,  \divisor, lsr #4	bne	1b.endm.macro ARM_DIV2_ORDER divisor, order#if __LINUX_ARM_ARCH__ >= 5	clz	\order, \divisor	rsb	\order, \order, #31#else	cmp	\divisor, #(1 << 16)	movhs	\divisor, \divisor, lsr #16	movhs	\order, #16	movlo	\order, #0	cmp	\divisor, #(1 << 8)	movhs	\divisor, \divisor, lsr #8	addhs	\order, \order, #8	cmp	\divisor, #(1 << 4)	movhs	\divisor, \divisor, lsr #4	addhs	\order, \order, #4	cmp	\divisor, #(1 << 2)	addhi	\order, \order, #3	addls	\order, \order, \divisor, lsr #1#endif.endm.macro ARM_MOD_BODY dividend, divisor, order, spare#if __LINUX_ARM_ARCH__ >= 5	clz	\order, \divisor	clz	\spare, \dividend	sub	\order, \order, \spare	mov	\divisor, \divisor, lsl \order#else	mov	\order, #0	@ Unless the divisor is very big, shift it up in multiples of	@ four bits, since this is the amount of unwinding in the main	@ division loop.  Continue shifting until the divisor is 	@ larger than the dividend.1:	cmp	\divisor, #0x10000000	cmplo	\divisor, \dividend	movlo	\divisor, \divisor, lsl #4	addlo	\order, \order, #4	blo	1b	@ For very big divisors, we must shift it a bit at a time, or	@ we will be in danger of overflowing.1:	cmp	\divisor, #0x80000000	cmplo	\divisor, \dividend	movlo	\divisor, \divisor, lsl #1	addlo	\order, \order, #1	blo	1b#endif	@ Perform all needed substractions to keep only the reminder.	@ Do comparisons in batch of 4 first.	subs	\order, \order, #3		@ yes, 3 is intended here	blt	2f1:	cmp	\dividend, \divisor	subhs	\dividend, \dividend, \divisor	cmp	\dividend, \divisor,  lsr #1	subhs	\dividend, \dividend, \divisor, lsr #1	cmp	\dividend, \divisor,  lsr #2	subhs	\dividend, \dividend, \divisor, lsr #2	cmp	\dividend, \divisor,  lsr #3	subhs	\dividend, \dividend, \divisor, lsr #3	cmp	\dividend, #1	mov	\divisor, \divisor, lsr #4	subges	\order, \order, #4	bge	1b	tst	\order, #3	teqne	\dividend, #0	beq	5f	@ Either 1, 2 or 3 comparison/substractions are left.2:	cmn	\order, #2	blt	4f	beq	3f	cmp	\dividend, \divisor	subhs	\dividend, \dividend, \divisor	mov	\divisor,  \divisor,  lsr #13:	cmp	\dividend, \divisor	subhs	\dividend, \dividend, \divisor	mov	\divisor,  \divisor,  lsr #14:	cmp	\dividend, \divisor	subhs	\dividend, \dividend, \divisor5:.endmENTRY(__udivsi3)	subs	r2, r1, #1	moveq	pc, lr	bcc	Ldiv0	cmp	r0, r1	bls	11f	tst	r1, r2	beq	12f	ARM_DIV_BODY r0, r1, r2, r3	mov	r0, r2	mov	pc, lr11:	moveq	r0, #1	movne	r0, #0	mov	pc, lr12:	ARM_DIV2_ORDER r1, r2	mov	r0, r0, lsr r2	mov	pc, lrENTRY(__umodsi3)	subs	r2, r1, #1			@ compare divisor with 1	bcc	Ldiv0	cmpne	r0, r1				@ compare dividend with divisor	moveq   r0, #0	tsthi	r1, r2				@ see if divisor is power of 2	andeq	r0, r0, r2	movls	pc, lr	ARM_MOD_BODY r0, r1, r2, r3	mov	pc, lrENTRY(__divsi3)	cmp	r1, #0	eor	ip, r0, r1			@ save the sign of the result.	beq	Ldiv0	rsbmi	r1, r1, #0			@ loops below use unsigned.	subs	r2, r1, #1			@ division by 1 or -1 ?	beq	10f	movs	r3, r0	rsbmi	r3, r0, #0			@ positive dividend value	cmp	r3, r1	bls	11f	tst	r1, r2				@ divisor is power of 2 ?	beq	12f	ARM_DIV_BODY r3, r1, r0, r2	cmp	ip, #0	rsbmi	r0, r0, #0	mov	pc, lr10:	teq	ip, r0				@ same sign ?	rsbmi	r0, r0, #0	mov	pc, lr11:	movlo	r0, #0	moveq	r0, ip, asr #31	orreq	r0, r0, #1	mov	pc, lr12:	ARM_DIV2_ORDER r1, r2	cmp	ip, #0	mov	r0, r3, lsr r2	rsbmi	r0, r0, #0	mov	pc, lrENTRY(__modsi3)	cmp	r1, #0	beq	Ldiv0	rsbmi	r1, r1, #0			@ loops below use unsigned.	movs	ip, r0				@ preserve sign of dividend	rsbmi	r0, r0, #0			@ if negative make positive	subs	r2, r1, #1			@ compare divisor with 1	cmpne	r0, r1				@ compare dividend with divisor	moveq	r0, #0	tsthi	r1, r2				@ see if divisor is power of 2	andeq	r0, r0, r2	bls	10f	ARM_MOD_BODY r0, r1, r2, r310:	cmp	ip, #0	rsbmi	r0, r0, #0	mov	pc, lrLdiv0:	str	lr, [sp, #-4]!/*	bl	__div0	*/	mov	r0, #0			@ About as wrong as it could be.	ldr	pc, [sp], #4

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区免费播放| 久久成人久久鬼色| 自拍视频在线观看一区二区| 亚洲精品一线二线三线无人区| 欧美精品日韩一区| 91精品国产色综合久久不卡蜜臀| 欧美剧情电影在线观看完整版免费励志电影| 色婷婷综合久久久| 91在线看国产| 欧美亚洲综合网| 欧美精品在线观看一区二区| 日韩免费成人网| 国产性天天综合网| 亚洲婷婷综合久久一本伊一区| 亚洲欧美精品午睡沙发| 亚洲午夜精品久久久久久久久| 午夜影院在线观看欧美| 青娱乐精品视频在线| 国模冰冰炮一区二区| 成+人+亚洲+综合天堂| 91福利小视频| 国产精品久久久久三级| 亚洲午夜免费视频| 老色鬼精品视频在线观看播放| 国产综合色精品一区二区三区| 福利一区二区在线| 91久久国产最好的精华液| 欧美日韩中文字幕一区| 精品久久免费看| 亚洲情趣在线观看| 日产欧产美韩系列久久99| 国模少妇一区二区三区| 色狠狠综合天天综合综合| 日韩一区二区在线看片| 中文成人综合网| 图片区小说区国产精品视频| 国产suv精品一区二区883| 欧美亚洲动漫制服丝袜| 精品久久久久久久久久久久久久久 | 欧美午夜精品久久久久久超碰 | 另类的小说在线视频另类成人小视频在线 | 亚洲国产精品久久人人爱蜜臀| 视频一区视频二区中文字幕| 国产精品一二二区| 欧美卡1卡2卡| 中文字幕中文乱码欧美一区二区 | 日韩精品一区二区三区视频播放| 国产精品丝袜黑色高跟| 人妖欧美一区二区| 日本福利一区二区| 国产欧美视频一区二区| 日韩精品欧美成人高清一区二区| 波多野洁衣一区| 日韩欧美一区二区三区在线| 亚洲精品欧美二区三区中文字幕| 日本 国产 欧美色综合| 欧美日韩黄视频| 亚洲另类在线一区| 懂色一区二区三区免费观看 | 国产精品久久久久一区| 韩国精品久久久| 日韩一区二区电影在线| 亚洲成人黄色小说| 色婷婷综合中文久久一本| 18欧美亚洲精品| gogo大胆日本视频一区| 国产女人18毛片水真多成人如厕| 蜜臀va亚洲va欧美va天堂| 欧美色图第一页| 亚洲一区二区三区激情| 91丨porny丨户外露出| 国产精品免费av| 成人av资源在线观看| 国产婷婷色一区二区三区在线| 韩国三级在线一区| 久久精品欧美一区二区三区麻豆| 精品一区二区免费看| 欧美变态tickle挠乳网站| 麻豆一区二区三| 精品美女一区二区| 国产一区二区三区久久悠悠色av| 久久蜜桃av一区二区天堂| 韩国av一区二区三区在线观看| 日韩精品专区在线影院重磅| 久久国产综合精品| 久久毛片高清国产| 91原创在线视频| 亚洲午夜国产一区99re久久| 欧美嫩在线观看| 美国十次综合导航| 国产视频在线观看一区二区三区| 成人免费视频一区二区| 亚洲免费在线视频| 7777女厕盗摄久久久| 国产一区二区在线电影| 国产精品天天看| 日本精品免费观看高清观看| 日本视频一区二区三区| 精品盗摄一区二区三区| 成人免费av网站| 丝袜美腿亚洲综合| 国产人妖乱国产精品人妖| 91丨porny丨户外露出| 免费观看在线综合| 国产精品免费视频网站| 欧美日本免费一区二区三区| 国产综合成人久久大片91| 中文字幕综合网| 日韩欧美中文字幕公布| 99精品1区2区| 国产真实精品久久二三区| 1000部国产精品成人观看| 欧美精品久久一区二区三区| 国产高清无密码一区二区三区| 亚洲曰韩产成在线| 久久精品一区二区三区不卡牛牛| 一本久久a久久精品亚洲| 久久国产剧场电影| 亚洲图片有声小说| 国产精品成人在线观看| 日韩欧美www| 欧美视频日韩视频| 成人黄色片在线观看| 日韩经典中文字幕一区| 亚洲人吸女人奶水| 精品成人佐山爱一区二区| 欧美日韩大陆在线| 色屁屁一区二区| 国产精品123区| 久久精品噜噜噜成人88aⅴ| 亚洲精品国久久99热| 日本一二三不卡| 精品剧情v国产在线观看在线| 欧美精品久久一区| 欧美在线不卡一区| 色综合天天综合网国产成人综合天| 美女免费视频一区| 欧美a级一区二区| 日韩一区欧美二区| 午夜精品爽啪视频| 亚洲综合在线观看视频| 亚洲视频1区2区| 亚洲人吸女人奶水| 亚洲码国产岛国毛片在线| 国产精品伦理一区二区| 国产无一区二区| 日本一区二区不卡视频| 欧美极品少妇xxxxⅹ高跟鞋| 国产欧美一区在线| 久久久久久久久伊人| 久久精品视频网| 国产人成一区二区三区影院| 精品国产成人在线影院 | 91丝袜美腿高跟国产极品老师 | 日本精品裸体写真集在线观看| 99久久精品费精品国产一区二区| 不卡电影一区二区三区| 99视频超级精品| 色屁屁一区二区| 色婷婷狠狠综合| 欧美另类z0zxhd电影| 日韩三级视频在线看| 26uuu国产一区二区三区| 久久人人97超碰com| 国产欧美综合在线观看第十页| 国产三级精品三级在线专区| 国产免费观看久久| 中文字幕一区二区三区av| 亚洲精品自拍动漫在线| 午夜伦理一区二区| 激情丁香综合五月| 国产高清成人在线| 色综合久久88色综合天天| 国产婷婷色一区二区三区在线| 欧美国产激情一区二区三区蜜月| 亚洲视频一二三| 五月激情综合网| 成人自拍视频在线| 欧美日韩美女一区二区| 日韩一区二区免费高清| 国产精品美女久久久久久久久| 亚洲一区二区不卡免费| 激情六月婷婷久久| 色综合久久中文字幕综合网| 欧美一区二区观看视频| 国产免费观看久久| 偷偷要91色婷婷| 99久久精品国产一区| 欧美日韩一本到| 国产精品区一区二区三| 丝袜亚洲另类丝袜在线| 99久久伊人网影院| 欧美电影精品一区二区| 亚洲黄色免费网站| 国产成人亚洲综合a∨猫咪| 欧美日本一区二区三区四区| 中文字幕在线观看不卡| 久久成人久久爱| 欧美久久一区二区| 1000精品久久久久久久久|