source: mainline/uspace/lib/c/arch/ppc32/src/fibril.S@ cb7be8f

Last change on this file since cb7be8f was cb7be8f, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 3 years ago

Update headers in .S files that incorrectly use #-style comments

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*
2 * SPDX-FileCopyrightText: 2006 Martin Decky
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7.text
8
9#include <abi/asmtool.h>
10#include <libarch/regname.h>
11#include <libarch/fibril_context.h>
12
13FUNCTION_BEGIN(__context_save)
14 stw sp, __CONTEXT_OFFSET_SP(r3)
15 stw r2, __CONTEXT_OFFSET_TLS(r3)
16 stw r13, __CONTEXT_OFFSET_R13(r3)
17 stw r14, __CONTEXT_OFFSET_R14(r3)
18 stw r15, __CONTEXT_OFFSET_R15(r3)
19 stw r16, __CONTEXT_OFFSET_R16(r3)
20 stw r17, __CONTEXT_OFFSET_R17(r3)
21 stw r18, __CONTEXT_OFFSET_R18(r3)
22 stw r19, __CONTEXT_OFFSET_R19(r3)
23 stw r20, __CONTEXT_OFFSET_R20(r3)
24 stw r21, __CONTEXT_OFFSET_R21(r3)
25 stw r22, __CONTEXT_OFFSET_R22(r3)
26 stw r23, __CONTEXT_OFFSET_R23(r3)
27 stw r24, __CONTEXT_OFFSET_R24(r3)
28 stw r25, __CONTEXT_OFFSET_R25(r3)
29 stw r26, __CONTEXT_OFFSET_R26(r3)
30 stw r27, __CONTEXT_OFFSET_R27(r3)
31 stw r28, __CONTEXT_OFFSET_R28(r3)
32 stw r29, __CONTEXT_OFFSET_R29(r3)
33 stw r30, __CONTEXT_OFFSET_R30(r3)
34 stw r31, __CONTEXT_OFFSET_R31(r3)
35
36 mflr r4
37 stw r4, __CONTEXT_OFFSET_PC(r3)
38
39 mfcr r4
40 stw r4, __CONTEXT_OFFSET_CR(r3)
41
42 # __context_save returns 0
43 li r3, 0
44 blr
45FUNCTION_END(__context_save)
46
47FUNCTION_BEGIN(__context_restore)
48 lwz sp, __CONTEXT_OFFSET_SP(r3)
49 lwz r2, __CONTEXT_OFFSET_TLS(r3)
50 lwz r13, __CONTEXT_OFFSET_R13(r3)
51 lwz r14, __CONTEXT_OFFSET_R14(r3)
52 lwz r15, __CONTEXT_OFFSET_R15(r3)
53 lwz r16, __CONTEXT_OFFSET_R16(r3)
54 lwz r17, __CONTEXT_OFFSET_R17(r3)
55 lwz r18, __CONTEXT_OFFSET_R18(r3)
56 lwz r19, __CONTEXT_OFFSET_R19(r3)
57 lwz r20, __CONTEXT_OFFSET_R20(r3)
58 lwz r21, __CONTEXT_OFFSET_R21(r3)
59 lwz r22, __CONTEXT_OFFSET_R22(r3)
60 lwz r23, __CONTEXT_OFFSET_R23(r3)
61 lwz r24, __CONTEXT_OFFSET_R24(r3)
62 lwz r25, __CONTEXT_OFFSET_R25(r3)
63 lwz r26, __CONTEXT_OFFSET_R26(r3)
64 lwz r27, __CONTEXT_OFFSET_R27(r3)
65 lwz r28, __CONTEXT_OFFSET_R28(r3)
66 lwz r29, __CONTEXT_OFFSET_R29(r3)
67 lwz r30, __CONTEXT_OFFSET_R30(r3)
68 lwz r31, __CONTEXT_OFFSET_R31(r3)
69
70 lwz r5, __CONTEXT_OFFSET_CR(r3)
71 mtcr r5
72
73 lwz r5, __CONTEXT_OFFSET_PC(r3)
74 mtlr r5
75
76 # __context_restore returns second argument
77 mr r3, r4
78 blr
79FUNCTION_END(__context_restore)
Note: See TracBrowser for help on using the repository browser.