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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lib1funcs.s

?? 2410下的扳機(jī)開發(fā)
?? S
字號(hào):
/* * 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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区精品在线观看| 99精品视频在线播放观看| 在线播放日韩导航| 日日夜夜一区二区| 日韩精品资源二区在线| 国内精品国产三级国产a久久| 久久久久久影视| 成人午夜碰碰视频| 亚洲男同1069视频| 欧美亚洲图片小说| 免费不卡在线观看| 国产性天天综合网| 91网页版在线| 青草av.久久免费一区| 久久综合99re88久久爱| 97超碰欧美中文字幕| 亚洲国产精品一区二区久久恐怖片 | 久久99精品久久久久久动态图 | 国产亚洲成av人在线观看导航| 国产福利一区二区| 亚洲欧美日韩在线播放| 欧美性大战xxxxx久久久| 日韩激情在线观看| 欧美国产激情二区三区| 一本大道久久a久久精二百| 午夜在线电影亚洲一区| 精品国产亚洲在线| av午夜一区麻豆| 日韩一区精品视频| 国产日韩在线不卡| 欧美日韩视频在线一区二区| 美女网站视频久久| 国产精品乱码久久久久久| 欧美日韩日日夜夜| 国产精品亚洲人在线观看| 亚洲自拍偷拍综合| 久久久久九九视频| 欧美日韩二区三区| 高清免费成人av| 婷婷久久综合九色国产成人| 国产欧美精品一区二区色综合朱莉| 91美女福利视频| 久草中文综合在线| 这里只有精品免费| 爽好久久久欧美精品| 中文字幕免费在线观看视频一区| 欧美日韩国产美| 成人美女视频在线看| 日本中文字幕一区二区视频| 亚洲国产精品激情在线观看| 日韩一区二区三区四区| 色婷婷av一区二区三区软件| 国产一区美女在线| 日韩av中文字幕一区二区三区| 国产精品嫩草久久久久| 精品久久久久久久久久久院品网| 日本乱人伦一区| 成人av电影在线观看| 国精产品一区一区三区mba视频 | 色综合天天综合| 国产成人综合亚洲网站| 美女在线观看视频一区二区| 一区二区三区小说| 最新不卡av在线| 国产精品天美传媒沈樵| 久久久久久久综合色一本| 91精品国产高清一区二区三区蜜臀 | 色婷婷久久综合| 不卡一区二区三区四区| 国产成a人亚洲| 国产高清精品网站| 国产一区二区精品在线观看| 奇米色一区二区| 日韩—二三区免费观看av| 亚洲自拍都市欧美小说| 亚洲综合无码一区二区| 一区二区三区精品| 一区二区三区中文字幕| 一区二区三区视频在线看| 亚洲精品少妇30p| 一二三区精品视频| 亚洲在线视频免费观看| 一级日本不卡的影视| 亚洲一区二区五区| 日韩av电影天堂| 老司机午夜精品| 久久99久久久欧美国产| 蜜桃一区二区三区在线| 麻豆传媒一区二区三区| 国产在线精品一区二区夜色| 国产精品一卡二| 成人综合婷婷国产精品久久蜜臀| 懂色av一区二区三区免费观看| 国产馆精品极品| 99久久综合狠狠综合久久| 色激情天天射综合网| 欧美在线制服丝袜| 欧美一区二区三区视频在线观看| 日韩欧美黄色影院| 国产欧美va欧美不卡在线| 亚洲视频网在线直播| 亚洲1区2区3区视频| 午夜精品福利一区二区三区av| 日韩精品亚洲一区| 久久精品免费看| eeuss鲁一区二区三区| 在线看国产一区| 日韩欧美一级精品久久| 欧美国产成人在线| 午夜视频一区二区三区| 国产一区二区视频在线播放| 成人精品视频.| 欧美精品日韩一本| 国产日韩成人精品| 五月天激情综合| 懂色av一区二区三区免费观看| 91黄色免费看| 欧美va亚洲va香蕉在线| 中文字幕一区免费在线观看| 亚洲线精品一区二区三区八戒| 久久精品999| 日本久久一区二区三区| 久久影音资源网| 午夜电影网一区| 成人h版在线观看| 欧美一区二区二区| 亚洲女与黑人做爰| 久88久久88久久久| 欧美亚洲国产一区在线观看网站| 精品福利一区二区三区免费视频| 亚洲制服欧美中文字幕中文字幕| 国产精品一卡二卡在线观看| 欧美电影一区二区| 国产精品你懂的在线| 午夜激情综合网| 国产成人av电影免费在线观看| 欧美日韩一区不卡| 欧美经典一区二区三区| 亚洲v日本v欧美v久久精品| 亚洲成av人影院在线观看网| 成人免费视频一区| 欧美日韩国产经典色站一区二区三区| 久久久久久久av麻豆果冻| 亚洲大片一区二区三区| 国产成人高清视频| 欧美精品色综合| 中文字幕一区二| 蜜臀久久99精品久久久久宅男| 国产成人av一区二区三区在线| 制服丝袜亚洲网站| 亚洲激情图片一区| 国产不卡视频一区二区三区| 制服视频三区第一页精品| 久久久久久久久免费| 日韩电影在线观看一区| 成人午夜免费av| 久久综合久久99| 中文欧美字幕免费| 成人激情文学综合网| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲成av人片观看| 91亚洲男人天堂| 1024国产精品| 福利一区二区在线| 精品1区2区在线观看| 午夜视频在线观看一区二区三区| www.激情成人| 久久精品欧美日韩精品 | 精品久久久久av影院| 亚洲综合免费观看高清在线观看| 福利一区二区在线观看| 国产亚洲美州欧州综合国| 国产综合成人久久大片91| 欧美嫩在线观看| 亚洲高清不卡在线观看| 欧美在线free| 性做久久久久久久免费看| 欧美中文一区二区三区| 亚洲天堂a在线| av一区二区三区四区| 国产精品午夜电影| 99久久精品国产一区| 中文字幕二三区不卡| 成人一区二区三区| 日韩伦理免费电影| 波多野结衣视频一区| 中文字幕中文字幕在线一区 | 国产一区二区三区黄视频 | 91精品婷婷国产综合久久性色 | 久久久激情视频| 国产jizzjizz一区二区| 国产精品进线69影院| 91免费观看在线| 亚洲天堂免费看| 欧美亚洲综合色| 激情综合五月天| 国产精品系列在线| 成人免费观看男女羞羞视频| 中文字幕亚洲一区二区va在线| 日本精品视频一区二区|