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

📄 lib1funcs.asm

📁 linux下的gcc编译器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r27_r29 */	.align	2	.globl	__return_r27_r29	.type	__return_r27_r29,@function__return_r27_r29:	ld.w	0[sp],r29	ld.w	4[sp],r28	ld.w	8[sp],r27	add	12,sp	jmp	[r31]	.size	__return_r27_r29,.-__return_r27_r29#endif /* L_save_27 */#ifdef	L_save_28	.text	.align	2	.globl	__save_r28_r29	.type	__save_r28_r29,@function	/* Allocate space and save registers 28,29 on the stack */	/* Called via:	jalr __save_r28_r29,r10 */__save_r28_r29:	add	-8,sp	st.w	r29,0[sp]	st.w	r28,4[sp]	jmp	[r10]	.size	__save_r28_r29,.-__save_r28_r29	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r28_r29 */	.align	2	.globl	__return_r28_r29	.type	__return_r28_r29,@function__return_r28_r29:	ld.w	0[sp],r29	ld.w	4[sp],r28	add	8,sp	jmp	[r31]	.size	__return_r28_r29,.-__return_r28_r29#endif /* L_save_28 */#ifdef	L_save_29	.text	.align	2	.globl	__save_r29	.type	__save_r29,@function	/* Allocate space and save register 29 on the stack */	/* Called via:	jalr __save_r29,r10 */__save_r29:	add	-4,sp	st.w	r29,0[sp]	jmp	[r10]	.size	__save_r29,.-__save_r29	/* Restore saved register 29, deallocate stack and return to the user */	/* Called via:	jr __return_r29 */	.align	2	.globl	__return_r29	.type	__return_r29,@function__return_r29:	ld.w	0[sp],r29	add	4,sp	jmp	[r31]	.size	__return_r29,.-__return_r29#endif /* L_save_28 */#ifdef	L_save_2c	.text	.align	2	.globl	__save_r2_r31	.type	__save_r2_r31,@function	/* Allocate space and save registers 20 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r2_r31,r10 */__save_r2_r31:	mov	ep,r1	addi	-64,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r25,32[ep]	sst.w	r24,36[ep]	sst.w	r23,40[ep]	sst.w	r22,44[ep]	sst.w	r21,48[ep]	sst.w	r20,52[ep]	sst.w	r2,56[ep]	sst.w	r31,60[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r2_r31,.-__save_r2_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r20_r31 */	.align	2	.globl	__return_r2_r31	.type	__return_r2_r31,@function__return_r2_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r25	sld.w	36[ep],r24	sld.w	40[ep],r23	sld.w	44[ep],r22	sld.w	48[ep],r21	sld.w	52[ep],r20	sld.w	56[ep],r2	sld.w	60[ep],r31	addi	64,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r2_r31,.-__return_r2_r31#endif /* L_save_2c */#ifdef	L_save_20c	.text	.align	2	.globl	__save_r20_r31	.type	__save_r20_r31,@function	/* Allocate space and save registers 20 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r20_r31,r10 */__save_r20_r31:	mov	ep,r1	addi	-60,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r25,32[ep]	sst.w	r24,36[ep]	sst.w	r23,40[ep]	sst.w	r22,44[ep]	sst.w	r21,48[ep]	sst.w	r20,52[ep]	sst.w	r31,56[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r20_r31,.-__save_r20_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r20_r31 */	.align	2	.globl	__return_r20_r31	.type	__return_r20_r31,@function__return_r20_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r25	sld.w	36[ep],r24	sld.w	40[ep],r23	sld.w	44[ep],r22	sld.w	48[ep],r21	sld.w	52[ep],r20	sld.w	56[ep],r31	addi	60,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r20_r31,.-__return_r20_r31#endif /* L_save_20c */#ifdef	L_save_21c	.text	.align	2	.globl	__save_r21_r31	.type	__save_r21_r31,@function	/* Allocate space and save registers 21 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r21_r31,r10 */__save_r21_r31:	mov	ep,r1	addi	-56,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r25,32[ep]	sst.w	r24,36[ep]	sst.w	r23,40[ep]	sst.w	r22,44[ep]	sst.w	r21,48[ep]	sst.w	r31,52[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r21_r31,.-__save_r21_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r21_r31 */	.align	2	.globl	__return_r21_r31	.type	__return_r21_r31,@function__return_r21_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r25	sld.w	36[ep],r24	sld.w	40[ep],r23	sld.w	44[ep],r22	sld.w	48[ep],r21	sld.w	52[ep],r31	addi	56,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r21_r31,.-__return_r21_r31#endif /* L_save_21c */#ifdef	L_save_22c	.text	.align	2	.globl	__save_r22_r31	.type	__save_r22_r31,@function	/* Allocate space and save registers 22 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r22_r31,r10 */__save_r22_r31:	mov	ep,r1	addi	-52,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r25,32[ep]	sst.w	r24,36[ep]	sst.w	r23,40[ep]	sst.w	r22,44[ep]	sst.w	r31,48[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r22_r31,.-__save_r22_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r22_r31 */	.align	2	.globl	__return_r22_r31	.type	__return_r22_r31,@function__return_r22_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r25	sld.w	36[ep],r24	sld.w	40[ep],r23	sld.w	44[ep],r22	sld.w	48[ep],r31	addi	52,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r22_r31,.-__return_r22_r31#endif /* L_save_22c */#ifdef	L_save_23c	.text	.align	2	.globl	__save_r23_r31	.type	__save_r23_r31,@function	/* Allocate space and save registers 23 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r23_r31,r10 */__save_r23_r31:	mov	ep,r1	addi	-48,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r25,32[ep]	sst.w	r24,36[ep]	sst.w	r23,40[ep]	sst.w	r31,44[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r23_r31,.-__save_r23_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r23_r31 */	.align	2	.globl	__return_r23_r31	.type	__return_r23_r31,@function__return_r23_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r25	sld.w	36[ep],r24	sld.w	40[ep],r23	sld.w	44[ep],r31	addi	48,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r23_r31,.-__return_r23_r31#endif /* L_save_23c */#ifdef	L_save_24c	.text	.align	2	.globl	__save_r24_r31	.type	__save_r24_r31,@function	/* Allocate space and save registers 24 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r24_r31,r10 */__save_r24_r31:	mov	ep,r1	addi	-44,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r25,32[ep]	sst.w	r24,36[ep]	sst.w	r31,40[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r24_r31,.-__save_r24_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r24_r31 */	.align	2	.globl	__return_r24_r31	.type	__return_r24_r31,@function__return_r24_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r25	sld.w	36[ep],r24	sld.w	40[ep],r31	addi	44,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r24_r31,.-__return_r24_r31#endif /* L_save_24c */#ifdef	L_save_25c	.text	.align	2	.globl	__save_r25_r31	.type	__save_r25_r31,@function	/* Allocate space and save registers 25 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r25_r31,r10 */__save_r25_r31:	mov	ep,r1	addi	-40,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r25,32[ep]	sst.w	r31,36[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r25_r31,.-__save_r25_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r25_r31 */	.align	2	.globl	__return_r25_r31	.type	__return_r25_r31,@function__return_r25_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r25	sld.w	36[ep],r31	addi	40,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r25_r31,.-__return_r25_r31#endif /* L_save_25c */#ifdef	L_save_26c	.text	.align	2	.globl	__save_r26_r31	.type	__save_r26_r31,@function	/* Allocate space and save registers 26 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r26_r31,r10 */__save_r26_r31:	mov	ep,r1	addi	-36,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r26,28[ep]	sst.w	r31,32[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r26_r31,.-__save_r26_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r26_r31 */	.align	2	.globl	__return_r26_r31	.type	__return_r26_r31,@function__return_r26_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r26	sld.w	32[ep],r31	addi	36,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r26_r31,.-__return_r26_r31#endif /* L_save_26c */#ifdef	L_save_27c	.text	.align	2	.globl	__save_r27_r31	.type	__save_r27_r31,@function	/* Allocate space and save registers 27 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r27_r31,r10 */__save_r27_r31:	mov	ep,r1	addi	-32,sp,sp	mov	sp,ep	sst.w	r29,16[ep]	sst.w	r28,20[ep]	sst.w	r27,24[ep]	sst.w	r31,28[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r27_r31,.-__save_r27_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r27_r31 */	.align	2	.globl	__return_r27_r31	.type	__return_r27_r31,@function__return_r27_r31:	mov	ep,r1	mov	sp,ep	sld.w	16[ep],r29	sld.w	20[ep],r28	sld.w	24[ep],r27	sld.w	28[ep],r31	addi	32,sp,sp	mov	r1,ep	jmp	[r31]	.size	__return_r27_r31,.-__return_r27_r31#endif /* L_save_27c */#ifdef	L_save_28c	.text	.align	2	.globl	__save_r28_r31	.type	__save_r28_r31,@function	/* Allocate space and save registers 28 .. 29, 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r28_r31,r10 */__save_r28_r31:	addi	-28,sp,sp	st.w	r29,16[sp]	st.w	r28,20[sp]	st.w	r31,24[sp]	jmp	[r10]	.size	__save_r28_r31,.-__save_r28_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r28_r31 */	.align	2	.globl	__return_r28_r31	.type	__return_r28_r31,@function__return_r28_r31:	ld.w	16[sp],r29	ld.w	20[sp],r28	ld.w	24[sp],r31	addi	28,sp,sp	jmp	[r31]	.size	__return_r28_r31,.-__return_r28_r31#endif /* L_save_28c */#ifdef	L_save_29c	.text	.align	2	.globl	__save_r29_r31	.type	__save_r29_r31,@function	/* Allocate space and save registers 29 & 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r29_r31,r10 */__save_r29_r31:	addi	-24,sp,sp	st.w	r29,16[sp]	st.w	r31,20[sp]	jmp	[r10]	.size	__save_r29_r31,.-__save_r29_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r29_r31 */	.align	2	.globl	__return_r29_r31	.type	__return_r29_r31,@function__return_r29_r31:	ld.w	16[sp],r29	ld.w	20[sp],r31	addi	24,sp,sp	jmp	[r31]	.size	__return_r29_r31,.-__return_r29_r31#endif /* L_save_29c */#ifdef	L_save_31c	.text	.align	2	.globl	__save_r31	.type	__save_r31,@function	/* Allocate space and save register 31 on the stack */	/* Also allocate space for the argument save area */	/* Called via:	jalr __save_r31,r10 */__save_r31:	addi	-20,sp,sp	st.w	r31,16[sp]	jmp	[r10]	.size	__save_r31,.-__save_r31	/* Restore saved registers, deallocate stack and return to the user */	/* Called via:	jr __return_r31 */	.align	2	.globl	__return_r31	.type	__return_r31,@function__return_r31:	ld.w	16[sp],r31	addi	20,sp,sp	jmp	[r31]        .size   __return_r31,.-__return_r31#endif /* L_save_31c */#ifdef L_save_varargs	.text	.align	2	.globl	__save_r6_r9	.type	__save_r6_r9,@function	/* Save registers 6 .. 9 on the stack for variable argument functions */	/* Called via:	jalr __save_r6_r9,r10 */__save_r6_r9:	mov	ep,r1	mov	sp,ep	sst.w	r6,0[ep]	sst.w	r7,4[ep]	sst.w	r8,8[ep]	sst.w	r9,12[ep]	mov	r1,ep	jmp	[r10]	.size	__save_r6_r9,.-__save_r6_r9#endif /* L_save_varargs */#ifdef	L_save_interrupt	.text	.align	2	.globl	__save_interrupt	.type	__save_interrupt,@function	/* Save registers r1, r4 on stack and load up with expected values */	/* Note, 12 bytes of stack have already been allocated. */	/* Called via:	jalr __save_interrupt,r10 */__save_interrupt:	st.w	ep,0[sp]	st.w	gp,4[sp]	st.w	r1,8[sp]	movhi	hi(__ep),r0,ep	movea	lo(__ep),ep,ep	movhi	hi(__gp),r0,gp	movea	lo(__gp),gp,gp	jmp	[r10]	.size	__save_interrupt,.-__save_interrupt	/* Restore saved registers, deallocate stack and return from the interrupt */	/* Called via:	jr __return_interrupt */	.align	2	.globl	__return_interrupt	.type	__return_interrupt,@function__return_interrupt:	ld.w	0[sp],ep	ld.w	4[sp],gp	ld.w	8[sp],r1	ld.w	12[sp],r10	addi	16,sp,sp	reti	.size	__return_interrupt,.-__return_interrupt#endif /* L_save_interrupt */#ifdef L_save_all_interrupt	.text	.align	2	.globl	__save_all_interrupt	.type	__save_all_interrupt,@function	/* Save all registers except for those saved in __save_interrupt */	/* allocate enough stack for all of the registers & 16 bytes of space */	/* Called via:	jalr __save_all_interrupt,r10 */__save_all_interrupt:	addi	-120,sp,sp	mov	ep,r1	mov	sp,ep

⌨️ 快捷键说明

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