⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setjmp.s

📁 俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)的全部源代码。
💻 S
字号:
/*  * Copyright (c) 1990,1994 The University of Utah and * the Computer Systems Laboratory (CSL).  All rights reserved. * * Permission to use, copy, modify and distribute this software is hereby * granted provided that (1) source code retains these copyright, permission, * and disclaimer notices, and (2) redistributions including binaries * reproduce the notices in supporting documentation, and (3) all advertising * materials mentioning features or use of this software display the following * acknowledgement: ``This product includes software developed by the * Computer Systems Laboratory at the University of Utah.'' * * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. * * CSL requests users of this software to return to csl-dist@cs.utah.edu any * improvements that they make and grant CSL redistribution rights. * * 	Utah $Hdr: _setjmp.s 1.9 94/12/16$ */	.space	$TEXT$	.subspa $CODE$/* * The PA jmp_buf is 48 words arranged as follows: * *	 0- 9:	sigcontext *	10-26:	callee save GRs (r3-r18) and DP (r27) *	   27:	callee save SRs (sr3) *	28-47:	callee save FRs (fr12-fr21) *//* * int * setjmp(env) *	jmp_buf env; *  * This routine does not restore signal state. */	.export	setjmp,entry	.export	_setjmp,entry	.proc	.callinfosetjmp_setjmp	.entry	/*	 * save sp and rp in sigcontext, skip the rest	 */	stw	%r30,8(%r26)	stw	%r2,24(%r26)	ldo	40(%r26),%r26	/*	 * save dp and the callee saves registers	 */	stwm	%r3,4(%r26)	stwm	%r4,4(%r26)	stwm	%r5,4(%r26)	stwm	%r6,4(%r26)	stwm	%r7,4(%r26)	stwm	%r8,4(%r26)	stwm	%r9,4(%r26)	stwm	%r10,4(%r26)	stwm	%r11,4(%r26)	stwm	%r12,4(%r26)	stwm	%r13,4(%r26)	stwm	%r14,4(%r26)	stwm	%r15,4(%r26)	stwm	%r16,4(%r26)	stwm	%r17,4(%r26)	stwm	%r18,4(%r26)	stwm	%r27,4(%r26)	mfsp	%sr3,%r9	stwm	%r9,4(%r26)	bv	0(%r2)	copy	%r0,%r28	.exit	.procend/* * void  * longjmp(env, val) *	jmp_buf env; *	int val; *  * This routine does not retore signal state. * This routine does not override a zero val. */	.export	longjmp,entry	.export	_longjmp,entry	.proc	.callinfolongjmp_longjmp	.entry	/*	 * restore sp and rp	 */	ldw	8(%r26),%r30	ldw	24(%r26),%r2	ldo	40(%r26),%r26	/*	 * restore callee saves registers	 */	ldwm	4(%r26),%r3	ldwm	4(%r26),%r4	ldwm	4(%r26),%r5	ldwm	4(%r26),%r6	ldwm	4(%r26),%r7	ldwm	4(%r26),%r8	ldwm	4(%r26),%r9	ldwm	4(%r26),%r10	ldwm	4(%r26),%r11	ldwm	4(%r26),%r12	ldwm	4(%r26),%r13	ldwm	4(%r26),%r14	ldwm	4(%r26),%r15	ldwm	4(%r26),%r16	ldwm	4(%r26),%r17	ldwm	4(%r26),%r18	ldwm	4(%r26),%r27	ldwm	4(%r26),%r9	mtsp	%r9,%sr3	bv	0(%r2)	copy	%r25,%r28	.exit	.procend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -