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

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

?? signal.s

?? cygwin, 著名的在win32下模擬unix操作系統的東東
?? 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一区二区三区免费野_久草精品视频
亚洲午夜精品网| 欧美日韩精品一区二区三区四区 | 99精品久久99久久久久| 99久精品国产| 欧美日韩视频在线一区二区| 日韩美女一区二区三区| 国产欧美1区2区3区| 亚洲色图欧洲色图| 天天综合色天天| 国产精品一区二区免费不卡| 97超碰欧美中文字幕| 5566中文字幕一区二区电影| 久久久久久麻豆| 亚洲自拍与偷拍| 狠狠色狠狠色综合系列| 日本国产一区二区| 精品区一区二区| 最新热久久免费视频| 首页欧美精品中文字幕| 国产成人亚洲综合色影视| 欧美性猛交xxxx黑人交| 国产午夜精品福利| 亚洲成人先锋电影| 丰满放荡岳乱妇91ww| 51精品久久久久久久蜜臀| 国产精品乱码一区二区三区软件| 亚洲高清不卡在线观看| 国产aⅴ综合色| 日韩欧美一区二区在线视频| 亚洲视频香蕉人妖| 久久成人久久鬼色| 在线观看视频91| 国产清纯在线一区二区www| 午夜电影网亚洲视频| 99国产精品国产精品毛片| 欧美不卡一二三| 亚洲成精国产精品女| 成人动漫一区二区三区| 日韩欧美不卡一区| 亚洲一区二区欧美| 成人黄页毛片网站| 精品久久国产老人久久综合| 亚洲一区在线播放| 成人va在线观看| 欧美tickling网站挠脚心| 亚洲va欧美va人人爽午夜| av动漫一区二区| 国产亚洲女人久久久久毛片| 日本午夜精品一区二区三区电影 | 亚洲最新视频在线播放| 国产91高潮流白浆在线麻豆 | 久久99国产精品免费| 欧美日韩在线直播| 一区二区三区中文字幕| 成人性色生活片免费看爆迷你毛片| 日韩欧美一级特黄在线播放| 亚洲第一电影网| 色综合天天综合网天天狠天天| 亚洲一二三四在线| 成+人+亚洲+综合天堂| 久久久久久久综合| 精品在线播放免费| 欧美一级欧美一级在线播放| 亚洲午夜私人影院| 一本到高清视频免费精品| 亚洲欧美一区二区视频| 成人国产精品免费观看视频| 久久久久久久综合| 国产乱码精品一区二区三| 精品免费国产一区二区三区四区| 青青草一区二区三区| 91精品国产综合久久久久久漫画| 亚洲成人激情自拍| 欧美精品在线一区二区三区| 亚洲图片欧美综合| 精品视频在线免费观看| 亚洲观看高清完整版在线观看| 欧美在线观看一区二区| 亚洲成人免费看| 9191久久久久久久久久久| 日韩av中文字幕一区二区三区| 7777精品久久久大香线蕉| 蜜臀国产一区二区三区在线播放 | 久久99久久99小草精品免视看| 欧美一区二区三区思思人| 蜜臀av一区二区| 精品国产3级a| 国产高清亚洲一区| 国产精品免费免费| 色哟哟一区二区在线观看| 一级日本不卡的影视| 欧美久久久久久久久| 日韩电影在线一区| 精品粉嫩aⅴ一区二区三区四区| 国产美女视频一区| 自拍偷拍国产精品| 欧美视频一区二区三区四区 | 精品国产青草久久久久福利| 国产一二三精品| 亚洲欧洲国产专区| 欧美三级中文字| 免费成人在线观看| 国产欧美在线观看一区| 91麻豆福利精品推荐| 亚洲高清免费观看高清完整版在线观看| 欧美精品色一区二区三区| 久久99国产精品久久| 欧美极品aⅴ影院| 一本色道久久综合精品竹菊| 秋霞av亚洲一区二区三| 久久精品一区二区三区av| 色系网站成人免费| 久久精品国内一区二区三区| 欧美国产欧美综合| 欧美私人免费视频| 国模娜娜一区二区三区| 亚洲欧美日韩一区| 日韩午夜小视频| 99久久99久久精品国产片果冻| 日韩激情av在线| 国产精品视频免费| 欧美日本在线一区| 国产成人自拍网| 香蕉加勒比综合久久| 国产三级一区二区三区| 91久久精品一区二区三区| 久久国产乱子精品免费女| 亚洲免费伊人电影| 精品日韩在线观看| 91传媒视频在线播放| 国产美女精品一区二区三区| 亚洲一区二区三区视频在线播放| 国产三级精品三级| 欧美精品丝袜久久久中文字幕| 成人白浆超碰人人人人| 美女被吸乳得到大胸91| 亚洲女爱视频在线| 国产日韩综合av| 欧美一级欧美一级在线播放| 91黄色激情网站| 国产成人免费在线| 免费欧美在线视频| 亚洲一区二区高清| 中文字幕一区二区三区四区| 欧美白人最猛性xxxxx69交| 91久久精品网| av网站一区二区三区| 国产综合色视频| 日韩精品亚洲一区| 亚洲乱码国产乱码精品精小说| 久久理论电影网| 91精品婷婷国产综合久久性色| 99re66热这里只有精品3直播| 久久机这里只有精品| 亚洲一区二区三区三| 国产精品久久久久9999吃药| 久久这里只有精品首页| 91精品国产91综合久久蜜臀| 色诱亚洲精品久久久久久| 成人爱爱电影网址| 国产精品自拍av| 免费看黄色91| 日韩黄色片在线观看| 一区二区三区四区在线播放| 国产精品电影院| 国产午夜精品美女毛片视频| 精品国产一区二区三区久久影院 | 人人超碰91尤物精品国产| 亚洲国产精品精华液网站| 国产精品久久久久一区二区三区共| 精品成人a区在线观看| 欧美一二三在线| 5858s免费视频成人| 欧美精品视频www在线观看| 欧美日韩国产另类不卡| 欧美三级中文字幕在线观看| 欧美日韩综合色| 欧美影院一区二区三区| 91激情在线视频| 欧美三电影在线| 欧美高清视频一二三区| 欧美夫妻性生活| 宅男在线国产精品| 欧美精品电影在线播放| 欧美精品xxxxbbbb| 91精品国产91久久综合桃花| 91麻豆精品国产| 日韩欧美一二三四区| 欧美精品一区二区蜜臀亚洲| 久久综合狠狠综合久久激情| 国产人成一区二区三区影院| 国产精品久久影院| 综合久久久久久久| 一区二区三区欧美在线观看| 亚洲午夜在线观看视频在线| 五月综合激情网| 久久精品国产澳门| 国内精品第一页| 99精品久久免费看蜜臀剧情介绍| 日本韩国一区二区三区|