shithub: scc

ref: 16b6d7eff6ed79f63a7024868651f5652f2b4960
dir: /src/libc/arch/ppc/setjmp.s/

View raw version
	.file	"setjmp.s"
	.text
	.global	setjmp

setjmp:
	/*
	 * 0) store IP int 0,
	 *    then into the jmpbuf
	 *    pointed to by r3 (first arg)
	 */
	mflr	0
	stw	0,0(3)
	/* 1) store reg1 (SP) */
	stw	1,4(3)
	/* 2) store cr */
	mfcr	0
	stw	0,8(3)
	/* 3) store r14-31 */
	stw	14,12(3)
	stw	15,16(3)
	stw	16,20(3)
	stw	17,24(3)
	stw	18,28(3)
	stw	19,32(3)
	stw	20,36(3)
	stw	21,40(3)
	stw	22,44(3)
	stw	23,48(3)
	stw	24,52(3)
	stw	25,56(3)
	stw	26,60(3)
	stw	27,64(3)
	stw	28,68(3)
	stw	29,72(3)
	stw	30,76(3)
	stw	31,80(3)
	stfd	14,88(3)
	stfd	15,96(3)
	stfd	16,104(3)
	stfd	17,112(3)
	stfd	18,120(3)
	stfd	19,128(3)
	stfd	20,136(3)
	stfd	21,144(3)
	stfd	22,152(3)
	stfd	23,160(3)
	stfd	24,168(3)
	stfd	25,176(3)
	stfd	26,184(3)
	stfd	27,192(3)
	stfd	28,200(3)
	stfd	29,208(3)
	stfd	30,216(3)
	stfd	31,224(3)

	/* 4) set return value to 0 */
	li	3,0

	/* 5) return */
	blr