From e5c26b01f70303f3322ac98d670ef886a62ac38a Mon Sep 17 00:00:00 2001 From: rsc Date: Mon, 20 Sep 2004 15:08:57 +0000 Subject: various forgotten files --- src/libthread/asm-Linux-power.s | 80 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/libthread/asm-Linux-power.s (limited to 'src/libthread/asm-Linux-power.s') diff --git a/src/libthread/asm-Linux-power.s b/src/libthread/asm-Linux-power.s new file mode 100644 index 00000000..00bfec3e --- /dev/null +++ b/src/libthread/asm-Linux-power.s @@ -0,0 +1,80 @@ +/* get FPR and VR use flags with sc 0x7FF3 */ +/* get vsave with mfspr reg, 256 */ + +.text +.align 2 + +.globl _setlabel + +_setlabel: /* xxx: instruction scheduling */ + mflr 0 + mfcr 5 + mfctr 6 + mfxer 7 + stw 0, 0*4(3) + stw 5, 1*4(3) + stw 6, 2*4(3) + stw 7, 3*4(3) + + stw 1, 4*4(3) + stw 2, 5*4(3) + + stw 13, (0+6)*4(3) /* callee-save GPRs */ + stw 14, (1+6)*4(3) /* xxx: block move */ + stw 15, (2+6)*4(3) + stw 16, (3+6)*4(3) + stw 17, (4+6)*4(3) + stw 18, (5+6)*4(3) + stw 19, (6+6)*4(3) + stw 20, (7+6)*4(3) + stw 21, (8+6)*4(3) + stw 22, (9+6)*4(3) + stw 23, (10+6)*4(3) + stw 24, (11+6)*4(3) + stw 25, (12+6)*4(3) + stw 26, (13+6)*4(3) + stw 27, (14+6)*4(3) + stw 28, (15+6)*4(3) + stw 29, (16+6)*4(3) + stw 30, (17+6)*4(3) + stw 31, (18+6)*4(3) + + li 3, 0 /* return */ + blr + +.globl _gotolabel + +_gotolabel: + lwz 13, (0+6)*4(3) /* callee-save GPRs */ + lwz 14, (1+6)*4(3) /* xxx: block move */ + lwz 15, (2+6)*4(3) + lwz 16, (3+6)*4(3) + lwz 17, (4+6)*4(3) + lwz 18, (5+6)*4(3) + lwz 19, (6+6)*4(3) + lwz 20, (7+6)*4(3) + lwz 21, (8+6)*4(3) + lwz 22, (9+6)*4(3) + lwz 23, (10+6)*4(3) + lwz 24, (11+6)*4(3) + lwz 25, (12+6)*4(3) + lwz 26, (13+6)*4(3) + lwz 27, (14+6)*4(3) + lwz 28, (15+6)*4(3) + lwz 29, (16+6)*4(3) + lwz 30, (17+6)*4(3) + lwz 31, (18+6)*4(3) + + lwz 1, 4*4(3) + lwz 2, 5*4(3) + + lwz 0, 0*4(3) + mtlr 0 + lwz 0, 1*4(3) + mtcr 0 /* mtcrf 0xFF, r0 */ + lwz 0, 2*4(3) + mtctr 0 + lwz 0, 3*4(3) + mtxer 0 + li 3, 1 + blr -- cgit v1.2.3