diff options
author | rofl0r <retnyg@gmx.net> | 2012-11-09 23:36:55 +0100 |
---|---|---|
committer | rofl0r <retnyg@gmx.net> | 2012-11-13 19:12:25 +0100 |
commit | 1c8eb8bad791fe9d01d0d4ab77882db634fa933d (patch) | |
tree | d3faf83663c1383f7ea16a0e6c68b3e2f4cc968a /src/setjmp/powerpc/setjmp.s | |
parent | 7669d1e334e6b96455eece78da43bf830b93d697 (diff) | |
download | musl-1c8eb8bad791fe9d01d0d4ab77882db634fa933d.tar.gz musl-1c8eb8bad791fe9d01d0d4ab77882db634fa933d.tar.xz musl-1c8eb8bad791fe9d01d0d4ab77882db634fa933d.zip |
PPC port cleaned up, static linking works well now.
Diffstat (limited to 'src/setjmp/powerpc/setjmp.s')
-rw-r--r-- | src/setjmp/powerpc/setjmp.s | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/setjmp/powerpc/setjmp.s b/src/setjmp/powerpc/setjmp.s new file mode 100644 index 00000000..27c975e4 --- /dev/null +++ b/src/setjmp/powerpc/setjmp.s @@ -0,0 +1,40 @@ + .global __setjmp + .global _setjmp + .global setjmp + .type __setjmp,@function + .type _setjmp,@function + .type setjmp,@function +__setjmp: +_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) + # 4) set return value to 0 + li 3, 0 + # 5) return + blr |