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

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

?? signal.s

?? 用于嵌入式Linux系統的標準C的庫函數
?? S
字號:
;@(#)signal.s	2.15 90/10/14 21:57:55, AMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Copyright 1990 Advanced Micro Devices, Inc.;; This software is the property of Advanced Micro Devices, Inc  (AMD)  which; specifically  grants the user the right to modify, use and distribute this; software provided this notice is not removed or altered.  All other rights; are reserved by AMD.;; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS; SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR; USE OF THIS SOFTWARE.;; So that all may benefit from your experience, please report  any  problems; or  suggestions about this software to the 29K Technical Support Center at; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131  in  the  UK,  or; 0031-11-1129 in Japan, toll free.  The direct dial number is 512-462-4118.;; Advanced Micro Devices, Inc.; 29K Support Products; Mail Stop 573; 5900 E. Ben White Blvd.; Austin, TX 78741; 800-292-9263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	.file	"signal.s"; SigEntry is the address of an array of C-level user code signal handlers.; They must return to the top-level before doing a sigret() return function.; Nested signals are supported.	.extern	V_SPILL, V_FILL	.extern fill		; In crt0.s	.align	4	.comm	WindowSize, 4	.dataSigEntry:	.word	0		; reserved	.word	0		; adds. of #2 SIGINT handler	.word	0		; reserved	.word	0		; reserved	.word	0		; reserved	.word	0		; reserved	.word	0		; reserved	.word	0		; adds. of #8 SIGFPE handler	.text	.reg	v0,	gr96	.reg	v1,	gr97	.reg	v2,	gr98	.reg	v3,	gr99	.reg	tav,	gr121	.reg	tpc,	gr122	.reg	lrp,	gr123	.reg	slp,	gr124	.reg	msp,	gr125	.reg	rab,	gr126	.reg	rfb,	gr127;=================================================================== setjmp(); int; setjmp(label_t jmpbuf); {;	*jmpbuf = {gr1, msp, lr0, lr1};;	return 0;; };	.global	_setjmp_setjmp:	store	0, 0, gr1, lr2	add	lr2, lr2, 4	store	0, 0, msp, lr2	add	lr2, lr2, 4	store	0, 0, lr0, lr2	add	lr2, lr2, 4	store	0, 0, lr1, lr2	jmpi	lr0	 const	v0, 0;;==================================================================== longjmp(); int; longjmp(label_t jmpbuf, int value); {;	/* BUG: check for this;	  if (msp > jmpbuf->msp || gr1 > jmpbuf->gr1);		longjmperror();;	 */;;	gr1 = jmpbuf->gr1;;	lr2addr = jmpbuf->gr1 + 8;;	msp = jmpbuf->msp;;;	/* saved lr1 is invalid if saved lr2addr > rfb */;	if (lr2addr > rfb) {;		/*;		 * None of the registers are useful.;		 * Set rfb to lr2addr - 512 & rab to rfb - 512.;		 * the FILL assert will take care of filling;		 */;		lr1 = jmpbuf->lr1;;		rab = lr2addr - windowsize;;		rfb = lr2addr;;	};;	lr0 = jmpbuf->lr0;;	if (rfb < lr1);		raise V_FILL;;	return value;; };	.global	_longjmp_longjmp:	load	0, 0, tav, lr2		; copy in gr1	add	v1, lr2, 4		; v1 points to msp	; make sure we return a non-zero value	cpeq	v0, lr3, 0	srl	v0, v0, 31	or	v0, lr3, v0	add	gr1, tav, 0		; now update gr1	add	tav, tav, 8		; calculate lr2addr	load	0, 0, msp, v1		; update msp from jmpbuf	cpleu	v3, tav, rfb		; if (lr2addr > rfb)	jmpt	v3, $1			; {	 add	v1, v1, 4		; v1 points to lr0	add	v2, v1, 4		;	v2 points to lr1	load	0, 0, lr1, v2		;	lr1 = value from jmpbuf	sub	v3, rfb, rab		;	sub	rab, tav, v3		;	rab = lr2addr - windowsize	add	rfb, tav, 0		;	rfb = lr2addr$1:	; }	load	0, 0, lr0, v1	jmpi	lr0	 asgeu	 V_FILL, rfb, lr1	; may fill from rfb to lr1;;================================================================== sigcode; About to deliver a signal to a user mode signal handler.;	msp+(15*4) = signal_number;	msp+(14*4) = gr1;	msp+(13*4) = rab;	msp+(12*4) = PC0;	msp+(11*4) = PC1;	msp+(10*4) = PC2;	msp+( 9*4) = CHA;	msp+( 8*4) = CHD;	msp+( 7*4) = CHC;	msp+( 6*4) = ALU;	msp+( 5*4) = OPS;	msp+( 4*4) = gr121;	msp+( 3*4) = gr99;	msp+( 2*4) = gr98;	msp+( 1*4) = gr97;	msp        = gr96; The state of all the registers (except for msp, chc and rab); is the same as when the process was interrupted.;; We must make the stack and window consistent before calling the handler; The orignal rab value is on the stack. The interrupt handler placed; rfb-Windowsize in rab. This is required to support nested interrupts.;; Note that the window becomes incosistent only during certain; critical sections in spill, fill, longjmp and sigcode.;	rfb - rab > windowsize => we are in spill;	rfb - rab < windowsize => we are in fill;	gr1 + 8   > rfb        => we are in long-longjmp case; In case of spill, fill and lonjmp; rab is modified first,; so if we are in one of these critical sections,; we set rab to rfb - WINDOWSIZE.;	.equ	SIGCTX_SIZE,		(16)*4	.equ	SIGCTX_SIGNUMB,		(15)*4	.equ	SIGCTX_GR1_OFFSET,	(14)*4	.equ	SIGCTX_RAB_OFFSET,	(13)*4	.equ	SIGCTX_PC0_OFFSET,	(12)*4	.equ	SIGCTX_PC1_OFFSET,	(11)*4	.equ	SIGCTX_PC2_OFFSET,	(10)*4	.equ	SIGCTX_CHC_OFFSET,	(7)*4	.equ	SIGCTX_OPS_OFFSET,	(5)*4	.equ	SIGCTX_TAV_OFFSET,	(4)*4	.global	sigcodesigcode:; --------------------------------------------------------  R-Stack fixup	const	v0, WindowSize		; get register cache size	consth	v0, WindowSize	load	0, 0, v0, v0	add	v2, msp, SIGCTX_RAB_OFFSET	load	0, 0, v2, v2		; get interrupted rab value	sub	v1, rfb, v2		; determine if  rfb-rab <= WINDOW_SIZE	cpgeu	v1, v1, v0		;	jmpt	v1, nfill		; jmp if spill or 'normal' interrupt	add	v1, gr1, 8	 cpgt	v1, v1, rfb		; interrupted longjmp can look like fill	jmpf	v1, nfill		; test for long-longjmp interruption	 nop				; jmp if gr1+8 <= rfb; Fixup signal stack to re-start interrupted fill; backup pc1 -- this is needed for the partial fill case.; Clear chc so an interrupted load/store does not restart.; Reset rab to a window distance below rfb, rab shall be; decremented again on re-starting the interrupted fill.; The interrupt handler set rab=rfb-WindowSize.;	add	v0, msp, SIGCTX_RAB_OFFSET	store	0, 0, rab, v0		; re-store (rfb-WindowSize) for rab	const	v2, fill	consth	v2, fill	add	v0, msp, SIGCTX_PC1_OFFSET	store	0, 0, v2, v0	sub	v2, v2, 4		; determine pc0	add	v0, msp, SIGCTX_PC0_OFFSET	store	0, 0, v2, v0	const	v2, 0			; clear chc	add	v0, msp, SIGCTX_CHC_OFFSET	store	0, 0, v2, v0nfill:	cpgt	v0, gr1, rfb		; if gr1 > rfb then gr1 = rfb	jmpt	v0, lower	 cplt	v0, gr1, rab		; if gr1 < rab then gr1 = rab	jmpt	v0, raise	 nop; -------------------------------------------------------- save_regssig1:	sub	msp, msp, (4+2+25)*4	; reserve space for regs	mfsr	gr96, ipc	mfsr	gr97, ipa	mfsr	gr98, ipb	mfsr	gr99, q	mtsrim	cr, 4-1	storem  0, 0, gr96, msp;					 "push" registers stack support	add	gr96, lr1, 0	add	gr97, rfb, 0	mtsrim	cr, 2-1	add	gr99, msp, 2*4	storem  0, 0, gr96, gr99;					  "push" remaining global registers	mtsrim	cr, 25-1		; gr100-gr124	add	gr96, msp, (4+2)*4	storem  0, 0, gr100, gr96;; -------------------------------------------------------- Dummy Call	.equ	RALLOC, 4*4		; make space for function calls	add	v0, rfb, 0		; store original rfb	sub	gr1, gr1, RALLOC	asgeu	V_SPILL, gr1, rab	add	lr1, v0, 0		; set lr1 = original rfb	add	v1, msp, (4+2+25)*4 + SIGCTX_SIGNUMB	load	0, 0, lr2, v1		; restore signal number	sub	v1, lr2, 1		; get handler index	sll	v1, v1, 2		; point to addresses;; -------------------------------------------------------- call C-level; Handler must not use HIF services other than the _sigret() type.	const	v0, SigEntry	consth	v0, SigEntry	add	v0, v0, v1	load	0, 0, v0, v0		; determine if handler registered	cpeq	v1, v0, 0	jmpt	v1, NoHandler	 nop	calli	lr0, v0			; call C-level signal handler	 nop;; -------------------------------------------------------- default returnNoHandler:	jmp	__sigdfl	 nop; -------------------------------------------------------- support bitslower:	sll	gr1, rfb, 0	jmp	sig1	 nopraise:	sll	gr1, rab, 0	jmp	sig1	 nop/*; -------------------------------------------------------- repair_regs	mtsrim	cr, 4-1	loadm	0, 0, gr96, msp	mtsr	ipc, gr96	mtsr	ipa, gr97	mtsr	ipb, gr98	mtsr	Q, gr99;					 "pop" registers stack support	mtsrim	cr, 2-1	add	gr99, msp, 2*4	loadm	0, 0, gr96, gr99	add	lr1, gr96, 0	add	rfb, gr97, 0;					  "pop" remaining global registers	mtsrim	cr, 25-1		; gr100-gr124	add	gr96, msp, (4+2)*4	loadm	0, 0, gr100, gr96	add	msp, msp, (4+2+25)*4	; repair msp to save_regs entry value; -------------------------------------------------------- end repair*/; ======================================================== _sigret()	.global	__sigret__sigret:;	repair_regs; -------------------------------------------------------- repair_regs	mtsrim	cr, 4-1	loadm	0, 0, gr96, msp	mtsr	ipc, gr96	mtsr	ipa, gr97	mtsr	ipb, gr98	mtsr	q, gr99;					 "pop" registers stack support	mtsrim	cr, 2-1	add	gr99, msp, 2*4	loadm	0, 0, gr96, gr99	add	lr1, gr96, 0	add	rfb, gr97, 0;					  "pop" remaining global registers	mtsrim	cr, 25-1		; gr100-gr124	add	gr96, msp, (4+2)*4	loadm	0, 0, gr100, gr96	add	msp, msp, (4+2+25)*4	; repair msp to save_regs entry value; -------------------------------------------------------- end repair	const	tav, 323		; HIF _sigret	asneq	69, gr1,gr1	halt				; commit suicide if returns; ======================================================== _sigdfl()	.global	__sigdfl__sigdfl:;	repair_regs; -------------------------------------------------------- repair_regs	mtsrim	cr, 4-1	loadm	0, 0, gr96, msp	mtsr	ipc, gr96	mtsr	ipa, gr97	mtsr	ipb, gr98	mtsr	q, gr99;					 "pop" registers stack support	mtsrim	cr, 2-1	add	gr99, msp, 2*4	loadm	0, 0, gr96, gr99	add	lr1, gr96, 0	add	rfb, gr97, 0;					  "pop" remaining global registers	mtsrim	cr, 25-1		; gr100-gr124	add	gr96, msp, (4+2)*4	loadm	0, 0, gr100, gr96	add	msp, msp, (4+2+25)*4	; repair msp to save_regs entry value; -------------------------------------------------------- end repair	const	tav, 322		; HIF _sigdfl	asneq	69, gr1,gr1	halt				; commit suicide if returns; ======================================================== _sigrep()__sigrep:	.global	__sigrep;	repair_regs; -------------------------------------------------------- repair_regs	mtsrim	cr, 4-1	loadm	0, 0, gr96, msp	mtsr	ipc, gr96	mtsr	ipa, gr97	mtsr	ipb, gr98	mtsr	q, gr99;					 "pop" registers stack support	mtsrim	cr, 2-1	add	gr99, msp, 2*4	loadm	0, 0, gr96, gr99	add	lr1, gr96, 0	add	rfb, gr97, 0;					  "pop" remaining global registers	mtsrim	cr, 25-1		; gr100-gr124	add	gr96, msp, (4+2)*4	loadm	0, 0, gr100, gr96	add	msp, msp, (4+2+25)*4	; repair msp to save_regs entry value; -------------------------------------------------------- end repair	const	tav, 324		; HIF _sigrep	asneq	69, gr1,gr1	halt				; commit suicide if returns; ======================================================== _sigskp()	.global	__sigskp__sigskp:;	repair_regs; -------------------------------------------------------- repair_regs	mtsrim	cr, 4-1	loadm	0, 0, gr96, msp	mtsr	ipc, gr96	mtsr	ipa, gr97	mtsr	ipb, gr98	mtsr	q, gr99;					 "pop" registers stack support	mtsrim	cr, 2-1	add	gr99, msp, 2*4	loadm	0, 0, gr96, gr99	add	lr1, gr96, 0	add	rfb, gr97, 0;					  "pop" remaining global registers	mtsrim	cr, 25-1		; gr100-gr124	add	gr96, msp, (4+2)*4	loadm	0, 0, gr100, gr96	add	msp, msp, (4+2+25)*4	; repair msp to save_regs entry value; -------------------------------------------------------- end repair	const	tav, 325		; HIF _sigskp	asneq	69, gr1,gr1	halt				; commit suicide if returns; ======================================================== _sendsig(); lr2 = signal number	.global _raise	.global	__sendsig_raise:__sendsig:	const	tav, 326		; HIF sendsig	asneq	69, gr1,gr1	jmpi	lr0	 nop;; ======================================================== signal();	lr2 = signal number;	lr3 = handler address	.global	_signal_signal:; the memory variable WindowSize must be initalised at the; start when rfb and rab are a window size apart.	const	v0, WindowSize		; get register cache size	consth	v0, WindowSize	load	0, 0, v1, v0	cpeq	v1, v1, 0	jmpf	v1, WindowSizeOK	 sub	v1, rfb, rab		; rfb-rab = WINDOW_SIZE	store	0, 0, v1, v0WindowSizeOK:	const	v1, SigEntry	consth	v1, SigEntry	sub	v3, lr2, 1		; get handler index	sll	v3, v3, 2		; pointer to addresses	add	v1, v1, v3	store	0,0, lr3, v1		; save new handler	const	lr2, sigcode	consth	lr2, sigcode	;Fall through to __signal; ======================================================== _signal()	.global	__signal__signal:	const	tav, 321		; HIF signal	asneq	69, gr1,gr1	jmpi	lr0	 nop

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲高清剧情介绍 | 亚洲一二三区在线观看| 精品sm在线观看| 欧美一区二区三区在线看| 激情综合网天天干| 日韩欧美国产午夜精品| 91伊人久久大香线蕉| 欧美不卡视频一区| 成人黄页毛片网站| 日韩va亚洲va欧美va久久| 国产情人综合久久777777| 91麻豆精东视频| 国产精品 欧美精品| 日韩成人一级片| 亚洲一区中文日韩| 欧美高清在线一区| 欧美精品亚洲一区二区在线播放| 国产成人综合亚洲网站| 日日夜夜精品免费视频| 亚洲视频中文字幕| 欧美国产精品一区| 久久婷婷久久一区二区三区| 欧洲一区在线观看| 一本色道**综合亚洲精品蜜桃冫| 精品无人区卡一卡二卡三乱码免费卡| 亚洲线精品一区二区三区八戒| 国产精品久久久久久一区二区三区 | 国产成人精品免费网站| 蜜桃久久久久久久| 欧美a级理论片| 日韩在线一区二区三区| 亚洲电影第三页| 亚洲一区在线观看免费观看电影高清 | 美女视频黄久久| 蜜臀av亚洲一区中文字幕| 日韩有码一区二区三区| 日韩在线播放一区二区| 日韩成人午夜电影| 久久99精品国产.久久久久| 蜜桃视频一区二区三区| 亚洲va国产天堂va久久en| 亚洲影视在线播放| 青青青伊人色综合久久| 免费的成人av| 国产成人亚洲综合色影视| 国产suv精品一区二区6| www.亚洲在线| 欧美性猛交xxxxxxxx| 欧美一级电影网站| 久久综合国产精品| 国产婷婷一区二区| 亚洲精品欧美专区| 亚洲国产一区二区在线播放| 亚洲电影一区二区| 日韩精品欧美精品| 国产电影精品久久禁18| 日本高清视频一区二区| 在线不卡免费欧美| 久久久噜噜噜久久人人看| 成人欧美一区二区三区1314| 午夜影院久久久| 国产·精品毛片| 欧美电影在线免费观看| 日本一区二区久久| 午夜一区二区三区视频| 懂色av一区二区在线播放| 欧美色成人综合| 国产精品久久久久永久免费观看| 午夜欧美在线一二页| 成人晚上爱看视频| 日韩一级片网址| 亚洲精品视频免费看| 国产精品456露脸| 666欧美在线视频| 亚洲图片欧美激情| 成人综合激情网| 精品国产91久久久久久久妲己| 亚洲福利视频导航| 91九色最新地址| 国产精品电影一区二区| 成人激情图片网| 国产欧美视频在线观看| 国产最新精品免费| 欧美一区二区三区播放老司机| 一区二区在线免费| 99久久精品情趣| 久久嫩草精品久久久精品| 午夜激情综合网| 色美美综合视频| 久久久蜜桃精品| 国产一区二区成人久久免费影院| 欧美一卡二卡在线观看| 日韩国产欧美视频| 88在线观看91蜜桃国自产| 亚洲va在线va天堂| 欧美日韩综合不卡| 香蕉乱码成人久久天堂爱免费| 欧美午夜免费电影| 亚洲成人久久影院| 91精品国产综合久久久蜜臀图片 | 欧洲精品一区二区| 亚洲一区二区三区四区在线观看 | 日本高清不卡在线观看| 亚洲电影在线播放| 欧美mv和日韩mv的网站| 盗摄精品av一区二区三区| 亚洲欧洲精品成人久久奇米网| 色天使色偷偷av一区二区| 天天射综合影视| 国产欧美日韩综合精品一区二区 | 色香蕉成人二区免费| 蜜乳av一区二区| 中文字幕一区二区三区在线不卡 | 亚洲影院久久精品| 精品国产乱子伦一区| 色拍拍在线精品视频8848| 免费观看成人av| 亚洲欧美日韩久久精品| 精品剧情在线观看| 色香色香欲天天天影视综合网| 免费人成黄页网站在线一区二区| 国产日产欧美一区| 91精品在线一区二区| 成人午夜精品在线| 美女视频网站黄色亚洲| 亚洲欧美aⅴ...| 欧美本精品男人aⅴ天堂| 欧美天堂亚洲电影院在线播放| 国产盗摄女厕一区二区三区 | 日本美女一区二区三区视频| 综合激情成人伊人| 久久亚区不卡日本| 91精品国产综合久久久蜜臀粉嫩| 99国产精品一区| 成人免费视频网站在线观看| 麻豆精品在线播放| 三级精品在线观看| 夜夜嗨av一区二区三区四季av| 国产精品网站在线观看| 欧美成人a∨高清免费观看| 欧美日韩黄色影视| 欧美综合一区二区三区| 91丨九色丨黑人外教| 国产ts人妖一区二区| 国产精品亚洲视频| 国产一区二区三区日韩| 久久99国产精品成人| 蜜臀久久99精品久久久画质超高清| 一区二区三区成人在线视频| 最近中文字幕一区二区三区| 中文字幕+乱码+中文字幕一区| 久久久久久电影| 久久久久久一级片| 国产欧美一区视频| 国产欧美日韩精品在线| 日本一区二区三区四区| 久久久久久亚洲综合影院红桃| 国产午夜精品理论片a级大结局| 久久只精品国产| 国产精品毛片久久久久久久| 国产精品久久久久久久浪潮网站| 国产精品久久一级| 一区二区日韩电影| 日本最新不卡在线| 精品亚洲免费视频| www.视频一区| 欧美少妇xxx| 日韩欧美国产综合一区| 国产欧美日韩视频一区二区| 国产精品激情偷乱一区二区∴| 伊人一区二区三区| 美女免费视频一区| 不卡av在线免费观看| 欧美少妇性性性| 一区二区在线电影| 亚洲综合色成人| 麻豆一区二区在线| 91欧美一区二区| 日韩免费在线观看| 亚洲视频一二三| 久久99久久久久| 色悠久久久久综合欧美99| 宅男在线国产精品| 国产精品超碰97尤物18| 日本va欧美va欧美va精品| 国产91露脸合集magnet| 欧美一区二区三区在线观看视频 | 中文字幕一区三区| 精品一区二区在线观看| 欧美中文字幕一区| 国产精品国产三级国产有无不卡| 日韩精品电影在线| 在线免费不卡电影| 日本一区二区视频在线观看| 日韩av中文字幕一区二区| 99久久精品免费| 久久你懂得1024| 韩国三级中文字幕hd久久精品| 在线看国产日韩| 亚洲免费三区一区二区|