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

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

?? wm_shrx.s

?? LINUX1.0源代碼,代碼條理清晰
?? S
字號:
	.file	"wm_shrx.S"
/*---------------------------------------------------------------------------+
 |  wm_shrx.S                                                                |
 |                                                                           |
 | 64 bit right shift functions                                              |
 |                                                                           |
 | Copyright (C) 1992    W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
 |                       Australia.  E-mail   billm@vaxc.cc.monash.edu.au    |
 |                                                                           |
 | Call from C as:                                                           |
 |   unsigned shrx(void *arg1, unsigned arg2)                                |
 | and                                                                       |
 |   unsigned shrxs(void *arg1, unsigned arg2)                               |
 |                                                                           |
 +---------------------------------------------------------------------------*/

#include "fpu_asm.h"

.text
	.align 2,144

/*---------------------------------------------------------------------------+
 |   unsigned shrx(void *arg1, unsigned arg2)                                |
 |                                                                           |
 |   Extended shift right function.                                          |
 |   Fastest for small shifts.                                               |
 |   Shifts the 64 bit quantity pointed to by the first arg (arg1)           |
 |   right by the number of bits specified by the second arg (arg2).         |
 |   Forms a 96 bit quantity from the 64 bit arg and eax:                    |
 |                [  64 bit arg ][ eax ]                                     |
 |            shift right  --------->                                        |
 |   The eax register is initialized to 0 before the shifting.               |
 |   Results returned in the 64 bit arg and eax.                             |
 +---------------------------------------------------------------------------*/

	.globl	_shrx

_shrx:
	push	%ebp
	movl	%esp,%ebp
	pushl	%esi
	movl	PARAM2,%ecx
	movl	PARAM1,%esi
	cmpl	$32,%ecx	/* shrd only works for 0..31 bits */
	jnc	L_more_than_31

/* less than 32 bits */
	pushl	%ebx
	movl	(%esi),%ebx	/* lsl */
	movl	4(%esi),%edx	/* msl */
	xorl	%eax,%eax	/* extension */
	shrd	%cl,%ebx,%eax
	shrd	%cl,%edx,%ebx
	shr	%cl,%edx
	movl	%ebx,(%esi)
	movl	%edx,4(%esi)
	popl	%ebx
	popl	%esi
	leave
	ret

L_more_than_31:
	cmpl	$64,%ecx
	jnc	L_more_than_63

	subb	$32,%cl
	movl	(%esi),%eax	/* lsl */
	movl	4(%esi),%edx	/* msl */
	shrd	%cl,%edx,%eax
	shr	%cl,%edx
	movl	%edx,(%esi)
	movl	$0,4(%esi)
	popl	%esi
	leave
	ret

L_more_than_63:
	cmpl	$96,%ecx
	jnc	L_more_than_95

	subb	$64,%cl
	movl	4(%esi),%eax	/* msl */
	shr	%cl,%eax
	xorl	%edx,%edx
	movl	%edx,(%esi)
	movl	%edx,4(%esi)
	popl	%esi
	leave
	ret

L_more_than_95:
	xorl	%eax,%eax
	movl	%eax,(%esi)
	movl	%eax,4(%esi)
	popl	%esi
	leave
	ret


/*---------------------------------------------------------------------------+
 |   unsigned shrxs(void *arg1, unsigned arg2)                               |
 |                                                                           |
 |   Extended shift right function (optimized for small floating point       |
 |   integers).                                                              |
 |   Shifts the 64 bit quantity pointed to by the first arg (arg1)           |
 |   right by the number of bits specified by the second arg (arg2).         |
 |   Forms a 96 bit quantity from the 64 bit arg and eax:                    |
 |                [  64 bit arg ][ eax ]                                     |
 |            shift right  --------->                                        |
 |   The eax register is initialized to 0 before the shifting.               |
 |   The lower 8 bits of eax are lost and replaced by a flag which is        |
 |   set (to 0x01) if any bit, apart from the first one, is set in the       |
 |   part which has been shifted out of the arg.                             |
 |   Results returned in the 64 bit arg and eax.                             |
 +---------------------------------------------------------------------------*/
	.globl	_shrxs
_shrxs:
	push	%ebp
	movl	%esp,%ebp
	pushl	%esi
	pushl	%ebx
	movl	PARAM2,%ecx
	movl	PARAM1,%esi
	cmpl	$64,%ecx	/* shrd only works for 0..31 bits */
	jnc	Ls_more_than_63

	cmpl	$32,%ecx	/* shrd only works for 0..31 bits */
	jc	Ls_less_than_32

/* We got here without jumps by assuming that the most common requirement
   is for small integers */
/* Shift by [32..63] bits */
	subb	$32,%cl
	movl	(%esi),%eax	/* lsl */
	movl	4(%esi),%edx	/* msl */
	xorl	%ebx,%ebx
	shrd	%cl,%eax,%ebx
	shrd	%cl,%edx,%eax
	shr	%cl,%edx
	orl	%ebx,%ebx		/* test these 32 bits */
	setne	%bl
	test	$0x7fffffff,%eax	/* and 31 bits here */
	setne	%bh
	orw	%bx,%bx			/* Any of the 63 bit set ? */
	setne	%al
	movl	%edx,(%esi)
	movl	$0,4(%esi)
	popl	%ebx
	popl	%esi
	leave
	ret

/* Shift by [0..31] bits */
Ls_less_than_32:
	movl	(%esi),%ebx	/* lsl */
	movl	4(%esi),%edx	/* msl */
	xorl	%eax,%eax	/* extension */
	shrd	%cl,%ebx,%eax
	shrd	%cl,%edx,%ebx
	shr	%cl,%edx
	test	$0x7fffffff,%eax	/* only need to look at eax here */
	setne	%al
	movl	%ebx,(%esi)
	movl	%edx,4(%esi)
	popl	%ebx
	popl	%esi
	leave
	ret

/* Shift by [64..95] bits */
Ls_more_than_63:
	cmpl	$96,%ecx
	jnc	Ls_more_than_95

	subb	$64,%cl
	movl	(%esi),%ebx	/* lsl */
	movl	4(%esi),%eax	/* msl */
	xorl	%edx,%edx	/* extension */
	shrd	%cl,%ebx,%edx
	shrd	%cl,%eax,%ebx
	shr	%cl,%eax
	orl	%ebx,%edx
	setne	%bl
	test	$0x7fffffff,%eax	/* only need to look at eax here */
	setne	%bh
	orw	%bx,%bx
	setne	%al
	xorl	%edx,%edx
	movl	%edx,(%esi)	/* set to zero */
	movl	%edx,4(%esi)	/* set to zero */
	popl	%ebx
	popl	%esi
	leave
	ret

Ls_more_than_95:
/* Shift by [96..inf) bits */
	xorl	%eax,%eax
	movl	(%esi),%ebx
	orl	4(%esi),%ebx
	setne	%al
	xorl	%ebx,%ebx
	movl	%ebx,(%esi)
	movl	%ebx,4(%esi)
	popl	%ebx
	popl	%esi
	leave
	ret

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃av一区二区在线观看 | 99久久精品一区二区| 在线播放中文一区| 国产精品短视频| 国产伦精品一区二区三区免费迷| 欧美在线免费播放| 国产精品人人做人人爽人人添| 青青草原综合久久大伊人精品| 日本大香伊一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w | 99精品欧美一区二区蜜桃免费| 精品国产免费人成电影在线观看四季| 亚洲另类色综合网站| 成人丝袜视频网| 久久久五月婷婷| 精品亚洲成a人| 欧美一区二区免费视频| 天涯成人国产亚洲精品一区av| 91视视频在线直接观看在线看网页在线看| 久久久夜色精品亚洲| 久久成人精品无人区| 777奇米成人网| 午夜欧美一区二区三区在线播放| 91美女在线视频| 国产精品久久久久婷婷| 国产精品99久久久久久似苏梦涵| 精品成a人在线观看| 精品制服美女丁香| 日韩欧美国产综合在线一区二区三区| 午夜精品久久久久久久蜜桃app| 欧美最猛性xxxxx直播| 亚洲激情校园春色| 91美女片黄在线观看| 亚洲视频在线观看一区| 白白色 亚洲乱淫| 国产精品久久久久三级| 波多野洁衣一区| 中文字幕在线一区免费| 99国产精品一区| 亚洲欧美经典视频| 日本道在线观看一区二区| 亚洲一区二区三区爽爽爽爽爽| 在线观看国产日韩| 亚洲123区在线观看| 在线播放一区二区三区| 免费不卡在线观看| 2019国产精品| 国产sm精品调教视频网站| 欧美激情一区二区三区| 懂色av噜噜一区二区三区av| 中文一区在线播放| 91视频.com| 亚洲国产精品久久人人爱| 欧美日韩精品欧美日韩精品 | 中文字幕 久热精品 视频在线| 成人午夜碰碰视频| 最好看的中文字幕久久| 日本精品一区二区三区四区的功能| 亚洲国产综合视频在线观看| 欧美精品在线观看一区二区| 老鸭窝一区二区久久精品| 久久奇米777| 色综合一个色综合亚洲| 午夜精品爽啪视频| 欧美精品一区二区三区在线播放| 国产成人精品一区二区三区网站观看| 国产精品国产三级国产三级人妇| 日本高清成人免费播放| 日韩国产欧美在线播放| 欧美精品一区二区三区四区 | 99综合影院在线| 亚洲一二三四久久| 日韩免费高清视频| youjizz久久| 视频一区欧美精品| 国产日韩欧美精品一区| 欧美专区亚洲专区| 久久精品国产在热久久| 中文字幕在线免费不卡| 欧美美女激情18p| 久久精品二区亚洲w码| 亚洲国产精品二十页| 欧美午夜在线观看| 九色|91porny| 亚洲蜜桃精久久久久久久| 日韩欧美成人激情| av电影一区二区| 男女性色大片免费观看一区二区| 欧美激情在线一区二区三区| 欧美色综合久久| 国产一区二区按摩在线观看| 亚洲影视在线观看| 久久日韩粉嫩一区二区三区 | 国产福利精品一区| 夜夜操天天操亚洲| www一区二区| 欧美在线播放高清精品| 精品制服美女久久| 亚洲国产成人高清精品| 国产偷v国产偷v亚洲高清| 欧洲av在线精品| 国产69精品久久久久毛片| 日韩电影在线一区| 亚洲美女电影在线| 国产三级精品三级| 在线播放一区二区三区| 91同城在线观看| 国内精品伊人久久久久av一坑| 玉米视频成人免费看| 久久九九国产精品| 欧美一区二区三区在线电影 | 国产一区二区三区免费看| 一区二区视频免费在线观看| 久久精品一区二区三区不卡 | 欧美人与z0zoxxxx视频| 波波电影院一区二区三区| 久久97超碰国产精品超碰| 亚洲成a人v欧美综合天堂下载| 亚洲国产精品成人综合| 欧美成人综合网站| 欧美日韩亚洲综合一区二区三区| 成人av综合一区| 国产在线精品免费| 日本不卡高清视频| 亚洲高清免费在线| 亚洲色图第一区| 国产精品毛片久久久久久| xf在线a精品一区二区视频网站| 555夜色666亚洲国产免| 欧美私人免费视频| 色屁屁一区二区| 成人精品鲁一区一区二区| 精品亚洲porn| 免费成人av在线| 日韩成人一级片| 亚洲成人综合网站| 亚洲第一激情av| 亚洲影院久久精品| 亚洲一区二区在线播放相泽| 亚洲精品欧美综合四区| 国产精品不卡一区二区三区| 欧美高清在线视频| 亚洲国产精品国自产拍av| 国产欧美日韩精品在线| 久久先锋影音av| 欧美精品一区二区在线观看| 精品日本一线二线三线不卡| 日韩美女一区二区三区| 欧美一区二区视频在线观看2022| 欧美日韩国产小视频在线观看| 在线视频综合导航| 欧洲在线/亚洲| 欧美性一区二区| 欧美在线影院一区二区| 欧美色精品在线视频| 在线观看国产一区二区| 欧美日韩国产123区| 欧美精品久久99久久在免费线| 欧美浪妇xxxx高跟鞋交| 69成人精品免费视频| 3atv在线一区二区三区| 91精品国产福利| 精品免费国产一区二区三区四区| 日韩一区二区精品在线观看| 日韩视频一区在线观看| 欧美成人a∨高清免费观看| 精品日韩欧美在线| 国产调教视频一区| 国产精品视频线看| 亚洲色图欧洲色图婷婷| 亚洲午夜精品在线| 日韩精品欧美精品| 精品一区二区av| 丁香六月综合激情| 色婷婷av一区| 欧美剧情电影在线观看完整版免费励志电影 | 日本韩国视频一区二区| 欧美亚洲综合另类| 91精品在线免费观看| 日韩色视频在线观看| 久久蜜桃av一区精品变态类天堂 | 亚洲精品综合在线| 五月激情综合婷婷| 激情文学综合插| 成人精品鲁一区一区二区| 色综合久久久网| 欧美精品123区| 久久嫩草精品久久久精品一| 国产精品美女久久久久久久| 一级女性全黄久久生活片免费| 午夜精品福利视频网站| 精品一区二区综合| 91在线观看免费视频| 欧美日韩国产一级片| 久久精品免费在线观看| 亚洲狠狠丁香婷婷综合久久久| 久久成人麻豆午夜电影| 91色在线porny| 日韩欧美不卡在线观看视频| 中文字幕在线不卡一区 |