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

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

?? qpribmapalib.s

?? VxWorks BSP框架源代碼包含頭文件和驅動
?? S
字號:
/* qPriBMapALib.s - optimized bit mapped priority queue internals *//* Copyright 1984-1994 Wind River Systems, Inc. */	.data	.globl	_copyright_wind_river	.long	_copyright_wind_river/*modification history--------------------01n,30may94,tpr  addec MC68060 cpu support.01m,23aug92,jcf  changed bxxx to jxx.  removed HOST_MOTOROLA.01l,14jul92,jcf  further optimized dllAdd.01k,04jul92,jcf  clean up.01j,26may92,rrr  the tree shuffle01i,04oct91,rrr  passed through the ansification filter		  -fixed #else and #endif		  -changed VOID to void		  -changed ASMLANGUAGE to _ASMLANGUAGE		  -changed copyright notice01h,25sep91,yao   added support for CPU32.01g,28aug91,shl   added support for MC68040.01f,15may91,elr   made return value compatable with Motorola's SVR401e,22jan91,jcf   made portable to the 68000/68010.01d,01oct90,dab   changed conditional compilation identifier from		    HOST_SUN to AS_WORKS_WELL.01c,12sep90,dab   changed tstl a<n> to cmpl #0,a<n>. changed complex           +lpf     addressing modes and bfffo instructions to .word's		    to make non-SUN hosts happy.01b,10may90,jcf   fixed PORTABLE definition.		  fixed clobbering of d2 by saving on stack.01a,15jun89,jcf   written.*//*DESCRIPTIONThis module contains internals to the VxWorks kernel.These routines have been coded in assembler because they have been optimizedfor performance.INTERNALThe C code versions of these routines can be found in qPriBMapLib.c.*/#define _ASMLANGUAGE#include "vxWorks.h"#include "asm.h"#include "qPriNode.h"#if defined(PORTABLE)#define qPriBMapALib_PORTABLE#endif#ifndef qPriBMapALib_PORTABLE	/* globals */	.globl	_qPriBMapPut	.globl	_qPriBMapGet	.globl	_qPriBMapRemove	.text	.even/********************************************************************************* qPriBMapPut - insert the specified TCB into the ready queue**void qPriBMapPut (pQPriBMapHead, pQPriNode, key)*    Q_PRI_BMAP_HEAD	*pQPriBMapHead;*    Q_PRI_NODE		*pQPriNode;*    int		key;*/_qPriBMapPut:	movel	d2,a7@-			/* push d2 so we can clobber it */	movel	a4,a7@-			/* push a4 so we can clobber it */	movel	a5,a7@-			/* push a5 so we can clobber it */	movel	a7@(0x10),a4		/* ARG1 (pMHead) goes into a4 */	movel	a7@(0x14),a5		/* ARG2 (pPriNode) goes into a5 */	movel	a7@(0x18),d0		/* ARG3 (key) goes into d0 */	movel	a4@,a0			/* a0 gets highest node ready */	cmpl	#0,a0			/* check for highNode == NULL */	jeq 	qPriBMap0	cmpl	a0@(Q_PRI_NODE_KEY),d0	/* is d0 higher priority? */	jge 	qPriBMap1qPriBMap0:	movel	a5,a4@			/* pPriNode is highest priority task */qPriBMap1:	movel	d0,a5@(Q_PRI_NODE_KEY)	/* move key into pPriNode */	notb	d0			/* invert key for map indexing */	/* qPriBMapMapSet - set the bits in the bit map for the specified priority * d0 = priority * returns void */	    movel	a4@(0x4),a1	/* pMList (metaMap) goes into a1 */	    movel	d0,d1		/* copy priority to d1 */	    lsrl	#3,d1		/* top five bits of d1 to d1 */	    clrl	d2		/* clear out d2 */	    bset	d1,d2		/* set d1 bit # of d2 */	    orl		d2,a1@		/* or d2 into the meta map */	    bset	d0,a1@(4,d1:l)	/* bit set d0[0:2] into the bit map */	lsll	#3,d0			/* scale d0 by sizeof (DL_HEAD) 8 */	lea	a1@(0x24),a4		/* get base of listArray in a4 */	lea	a4@(0,d0:l),a0		/* a0 = pList */	movel	a0@(0x4),a1		/* a1 = pList->tail = pPrev *//* dllAdd - add node to end of list * a0 = pList * a1 = pLastNode * a5 = pNode * returns void */	    cmpl	#0,a1		/* (pPrev == NULL)? */	    jne 	qPriBMap2	    movel	a5,a0@		/* pList->head = pNode */	    jra 	qPriBMap3	/* goto next conditional */qPriBMap2:	    movel	a5,a1@		/* pPrev->next	   = pNode */qPriBMap3:	    movel	a5,a0@(0x4)	/* pList->tail 	   = pNode */	    clrl	a5@		/* pNode->next	   = NULL */	    movel	a1,a5@(0x4)	/* pNode->previous = pPrev */	movel	a7@+,a5			/* pop a5 */	movel	a7@+,a4			/* pop a4 */	movel	a7@+,d2			/* pop d2 */	rts/********************************************************************************* qPriBMapGet -**Q_PRI_NODE *qPriBMapGet (pQPriBMapHead)*    Q_PRI_BMAP_HEAD *pQPriBMapHead;*/_qPriBMapGet:	movel	a7@(0x4),a0		/* pMHead into a0 */	movel	a0@,a7@-		/* push highNode to delete */	jeq 	qPriBMapG1		/* if highNode is NULL we're done */	movel	a0,a7@-			/* push pMHead */	jsr	_qPriBMapRemove		/* delete the node */	addl	#0x4,a7			/* clean up second argument */qPriBMapG1:	movel	a7@+,d0			/* return node */	rts/********************************************************************************* qPriBMapRemove**STATUS qPriBMapRemove (pQPriBMapHead, pQPriNode)*    Q_PRI_BMAP_HEAD *pQPriBMapHead;*    Q_PRI_NODE *pQPriNode;*/_qPriBMapRemove:	movel	d2,a7@-			/* push d2 so we can clobber it */	movel	a2,a7@-			/* push a2 so we can clobber it */	movel	a7@(0xc),a2		/* ARG1 (pMHead) goes into a2 */	movel	a7@(0x10),a1		/* ARG2 (pPriNode) goes into a1 */	movel	a1@(Q_PRI_NODE_KEY),d0	/* key into d0 */	notb	d0			/* invert key */	movel	d0,d1			/* copy priority to d1 */	lsll	#3,d1			/* scale d1 by sizeof (DL_HEAD) 8 */	movel	a2@(0x4),a0		/* pMList (metaMap) goes into a0 */	lea	a0@(0x24,d1:l),a0	/* pList into a0 *//* dllRemove - delete a node from a doubly linked list * a0 = pList * a1 = pNode * returns void */	    tstl	a1@(0x4)	/* (pNode->previous == NULL)? */	    jeq 	qPriBMapR1	    movel	a1@(0x4),a0	/* pNode->previous into a0 */qPriBMapR1:	    movel	a1@,a0@		/* pNode->next into a0@ */	    tstl	a1@		/* (pNode->next == NULL)? */	    jne 	qPriBMapR2	    movel	a2@(0x4),a0	/* pMList (metaMap) goes into a0 */	    lea		a0@(0x24,d1:l),a0 /* pList into a0 */	    jra 	qPriBMapR3qPriBMapR2:	    movel	a1@,a0		/* pNode->next into a0 */qPriBMapR3:	    movel	a1@(4),a0@(4)	/* pNode->previous into a0@(4) */	movel	a2@(0x4),a0		/* pMList (metaMap) goes into a0    */	movel	a0@(0x24,d1:l),d2	/* if (pList->head == NULL)         */	jeq 	clearMaps		/*     then we clear maps           */	cmpl	a2@,a1			/* if not deleting highest priority */	jne 	qPriBMapDExit		/*     then we are done             */	movel	d2,a2@			/* update the highest priority task */	jra 	qPriBMapDExitclearMaps:/* qPriBMapMapClear - clear the bits in the bit maps for the specified priority * d0 = priority, * a0 = &qPriBMapMetaMap, * returns void */	    movel	d0,d1		/* copy priority to d1 */	    lsrl	#3,d1		/* top five bits of d1 to d1 */	    bclr	d0,a0@(4,d1:l)	/* clear bit d0[0:2] in map */	    tstb	a0@(4,d1:l)	/* did we clear the last bit in field */	    jne 	qPriBMapNoMeta	/* if not zero, we're done */	    moveq	#-1,d2		/* fill d2 with ones */	    bclr	d1,d2		/* clear d1 bit # of d2 */	    andl	d2,a0@		/* clear bit in meta map */qPriBMapNoMeta:	cmpl	a2@,a1			/* have we deleted highest priority */	jne 	qPriBMapDExit/* qPriBMapHigh - return highest priority task * a0 = &qPriBMapMetaMap, * returns highest priority in Q in d0, or random (0,255) if Q empty */#if ((CPU == MC68000) || (CPU == MC68010) || (CPU == CPU32))	    lea		_ffsMsbTbl,a1	/* lookup table address in a1 */	    clrl	d1		/* clear out d1 */	    movew	a0@,d1		/* put msw into d1 */	    jeq 	qPriBMapLsw	/* if zero, try the lsw */	    cmpw	#0x100,d1	/* compare msw to 0x100 */	    jcs 	qPriBMapMswLsb	/* if unsigned less than, then MswLsb */	    lsrw	#8,d1		/* shift Msb to Lsb of d1 */	    moveb	a1@(0,d1:l),d1	/* find first bit set of d1[0:1] */	    addw	#24,d1		/* add bit offset to MswMsb (24) */	    jra 	qPriBMapGetHigh	/* go do the second tier bfffo */qPriBMapMswLsb:	    moveb	a1@(0,d1:l),d1	/* find first bit set of d1[0:7] */	    addw	#16,d1		/* add bit offset to MswLsb (16) */	    jra 	qPriBMapGetHigh	/* go do the second tier bfffo */qPriBMapLsw:	    moveb	a0@(2),d1	/* put LswMsb in d1 */	    jeq 	qPriBMapLswLsb	/* if zero, try LswLsb */	    moveb	a1@(0,d1:l),d1	/* find first bit set of d1[0:7] */	    addw	#8,d1		/* add bit offset to LswMsb (8) */	    jra 	qPriBMapGetHigh	/* go do the second tier bfffo */qPriBMapLswLsb:	    movel	a0@,d1		/* put LswLsb in d1 */	    moveb	a1@(0,d1:l),d1	/* find first bit set of d1[0:7] */qPriBMapGetHigh:	    movel	d1,d0		/* put copy of d1 in d0 */	    lsll	#3,d0		/* multiply meta priority by 8 */	    moveb	a0@(4,d1:l),d1	/* move tier two bit field into d1 */	    addb	a1@(0,d1:l),d0	/* add tier two, 1st bit set to meta */#else	/* CPU==MC680[2346]0 */	/*  bfffo	a0@{#0:#0},d0   */ .word 0xedd0,0x0000	    jeq 	qPriBMapNewHigh /* if no bit set then we're done */	    negb	d0		/* convert d1 to bit # (negate + 31) */	    addb	#31,d0		/* add 31, could be 0xff if no branch */	/*  bfffo	a0@(4,d0:l){#0:#8},d1 */ .word 0xedf0,0x1008,0x0804	    negb	d1		/* convert to bit # (negate + 7) */	    addb	#7,d1		/* add 8, 0xff not posible */	    lsll	#3,d0		/* multiply meta priority by 8 */	    orl		d1,d0		/* add to the priority */#endif	/* CPU==MC680[2346]0 */qPriBMapNewHigh:	lsll	#3,d0			/* scale d0 by sizeof (DL_HEAD) 8 */	movel	a0@(0x24,d0:l),a2@	/* get highest task into highNode */qPriBMapDExit:	movel	a7@+,a2			/* pop a2 */	movel	a7@+,d2			/* pop d2 */	clrl	d0			/* return OK */	rts#endif	/* !qPriBMapALib_PORTABLE */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人激情综合网| 国产精品家庭影院| 一区二区在线看| 日本美女一区二区| 欧美日韩高清一区二区| 欧美一区二区免费观在线| 亚洲图片自拍偷拍| 夜夜爽夜夜爽精品视频| 国产精品羞羞答答xxdd| 精品视频一区二区三区免费| 久久精品无码一区二区三区| 午夜精品久久一牛影视| 99精品视频在线播放观看| 久久久亚洲午夜电影| 日韩国产在线观看| 欧美电视剧免费观看| 久色婷婷小香蕉久久| 国产亚洲精品bt天堂精选| 91婷婷韩国欧美一区二区| 日韩黄色片在线观看| 国产人成亚洲第一网站在线播放| 国产毛片精品视频| 亚洲品质自拍视频| 久久天天做天天爱综合色| 一本久久综合亚洲鲁鲁五月天 | 亚洲精品中文字幕乱码三区 | 欧美极品aⅴ影院| 9色porny自拍视频一区二区| 另类欧美日韩国产在线| 亚洲免费成人av| 国产精品久久久爽爽爽麻豆色哟哟| 91视频在线看| 国产91精品一区二区| 精品一区二区在线视频| 中文字幕一区在线观看视频| 欧美三级一区二区| 91久久国产综合久久| 欧美亚洲综合一区| 麻豆成人91精品二区三区| 欧美日韩国产成人在线91| 成人a区在线观看| 国产精品日韩成人| 精品女同一区二区| 亚洲精品美国一| av中文字幕亚洲| 亚洲欧美日韩久久精品| 91福利在线导航| 日韩影院精彩在线| 精品久久一二三区| 国产v日产∨综合v精品视频| 亚洲欧洲日韩一区二区三区| 91丨国产丨九色丨pron| av动漫一区二区| 91搞黄在线观看| 精品国产免费人成电影在线观看四季 | 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91精品国产综合久久精品性色| 在线观看成人小视频| 欧美日韩亚洲国产综合| 91精品国产免费久久综合| 7777精品伊人久久久大香线蕉完整版 | 丁香网亚洲国际| av亚洲精华国产精华| 91久久久免费一区二区| 9191成人精品久久| 国产精品乱码人人做人人爱| 亚洲国产一区二区a毛片| 日本女优在线视频一区二区| 99久久精品免费精品国产| 在线免费一区三区| 国产精品美女一区二区在线观看| 中文字幕精品三区| 日韩精品一二区| 成人v精品蜜桃久久一区| 精品日产卡一卡二卡麻豆| 午夜精品影院在线观看| 蜜桃视频免费观看一区| 免费日韩伦理电影| 亚洲一区二区精品视频| 亚洲欧美区自拍先锋| 欧美视频一区在线观看| 天天爽夜夜爽夜夜爽精品视频 | 亚洲福利视频三区| 久久人人超碰精品| 欧美日韩国产另类不卡| 成人精品亚洲人成在线| 蜜臀国产一区二区三区在线播放| 国产校园另类小说区| 666欧美在线视频| 亚洲欧美日韩一区| 91黄色激情网站| 伊人开心综合网| 欧美日韩一本到| 亚洲成人www| 欧美精品日韩综合在线| 亚洲第一主播视频| 91麻豆视频网站| 亚洲日本在线视频观看| 99热99精品| 亚洲品质自拍视频网站| 欧美影院一区二区三区| 亚洲国产精品一区二区www在线| 色综合色综合色综合| 亚洲欧美日韩一区| 欧美日韩免费电影| 国产综合色在线| 亚洲乱码中文字幕综合| 欧美丝袜丝交足nylons图片| 性做久久久久久免费观看欧美| 欧美一区二区三区播放老司机| 国产精品中文字幕欧美| 国产精品成人网| 亚洲精品一区二区在线观看| 高清av一区二区| 亚洲成人自拍一区| 欧美一级二级三级乱码| 国产九色sp调教91| 国产成人av电影在线观看| 亚洲天堂2016| 色8久久精品久久久久久蜜| 综合中文字幕亚洲| 精品噜噜噜噜久久久久久久久试看 | 丁香激情综合五月| 亚洲国产成人自拍| 国产欧美一区二区三区鸳鸯浴 | 中文字幕一区二区三区不卡在线| 久久久国际精品| 国产亚洲成aⅴ人片在线观看| 久久精品网站免费观看| 91丝袜呻吟高潮美腿白嫩在线观看| 精品午夜一区二区三区在线观看| 国产中文字幕一区| 国产精品18久久久久久久网站| 亚洲精品一区二区在线观看| 欧美三级蜜桃2在线观看| 成人精品免费看| www.66久久| 91在线免费视频观看| 国产91丝袜在线观看| 国产精品亚洲专一区二区三区| 一区二区激情视频| 亚洲18女电影在线观看| 亚洲香肠在线观看| 日本va欧美va瓶| 久久精品国产99国产精品| 日韩av电影免费观看高清完整版 | 欧美日韩高清在线播放| 不卡视频一二三| 91蜜桃传媒精品久久久一区二区| 99久久777色| 精品少妇一区二区三区免费观看 | 欧美高清dvd| 精品久久国产字幕高潮| 精品少妇一区二区三区在线播放| 亚洲综合色视频| 国产精品白丝jk白祙喷水网站| 欧美一区二区三区思思人| 亚洲欧美日韩国产手机在线| 国产午夜三级一区二区三| 91精品国产综合久久蜜臀| 亚洲蜜臀av乱码久久精品| 欧美成人性福生活免费看| 欧美另类z0zxhd电影| 欧美精品一区二区三区高清aⅴ | 亚洲国产一二三| 国产精品1区二区.| 欧美日韩在线直播| 亚洲国产高清在线观看视频| 日韩在线卡一卡二| 99精品热视频| 久久久久久一二三区| 午夜影院久久久| av亚洲精华国产精华| 久久人人97超碰com| 日日夜夜精品视频天天综合网| 99精品久久免费看蜜臀剧情介绍| 欧美一级理论片| 亚洲精品国产视频| 成人午夜又粗又硬又大| 欧美一级日韩不卡播放免费| 一区二区三区精品| 成人亚洲一区二区一| 日韩精品一区二区三区四区| 亚洲综合一区二区精品导航| 成人午夜短视频| 日韩精品在线网站| 日韩电影在线观看网站| 色老综合老女人久久久| 一色屋精品亚洲香蕉网站| 国产激情一区二区三区| 久久蜜桃av一区二区天堂| 日韩av一区二区在线影视| 欧美日韩精品一区二区三区四区 | 色爱区综合激月婷婷| 欧美三级韩国三级日本一级| 国产麻豆精品视频| 成人综合在线网站| 7777精品伊人久久久大香线蕉| 亚洲视频一区在线观看| 成人爱爱电影网址|