~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/csky/abiv1/inc/abi/entry.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 
  3 #ifndef __ASM_CSKY_ENTRY_H
  4 #define __ASM_CSKY_ENTRY_H
  5 
  6 #include <asm/setup.h>
  7 #include <abi/regdef.h>
  8 
  9 #define LSAVE_PC        8
 10 #define LSAVE_PSR       12
 11 #define LSAVE_A0        24
 12 #define LSAVE_A1        28
 13 #define LSAVE_A2        32
 14 #define LSAVE_A3        36
 15 #define LSAVE_A4        40
 16 #define LSAVE_A5        44
 17 
 18 #define usp ss1
 19 
 20 .macro USPTOKSP
 21         mtcr    sp, usp
 22         mfcr    sp, ss0
 23 .endm
 24 
 25 .macro KSPTOUSP
 26         mtcr    sp, ss0
 27         mfcr    sp, usp
 28 .endm
 29 
 30 .macro  SAVE_ALL epc_inc
 31         mtcr    r13, ss2
 32         mfcr    r13, epsr
 33         btsti   r13, 31
 34         bt      1f
 35         USPTOKSP
 36 1:
 37         subi    sp, 32
 38         subi    sp, 32
 39         subi    sp, 16
 40         stw     r13, (sp, 12)
 41 
 42         stw     lr, (sp, 4)
 43 
 44         mfcr    lr, epc
 45         movi    r13, \epc_inc
 46         add     lr, r13
 47         stw     lr, (sp, 8)
 48 
 49         mov     lr, sp
 50         addi    lr, 32
 51         addi    lr, 32
 52         addi    lr, 16
 53         bt      2f
 54         mfcr    lr, ss1
 55 2:
 56         stw     lr, (sp, 16)
 57 
 58         stw     a0, (sp, 20)
 59         stw     a0, (sp, 24)
 60         stw     a1, (sp, 28)
 61         stw     a2, (sp, 32)
 62         stw     a3, (sp, 36)
 63 
 64         addi    sp, 32
 65         addi    sp, 8
 66         mfcr    r13, ss2
 67         stw     r6, (sp)
 68         stw     r7, (sp, 4)
 69         stw     r8, (sp, 8)
 70         stw     r9, (sp, 12)
 71         stw     r10, (sp, 16)
 72         stw     r11, (sp, 20)
 73         stw     r12, (sp, 24)
 74         stw     r13, (sp, 28)
 75         stw     r14, (sp, 32)
 76         stw     r1, (sp, 36)
 77         subi    sp, 32
 78         subi    sp, 8
 79 .endm
 80 
 81 .macro  RESTORE_ALL
 82         ldw     lr, (sp, 4)
 83         ldw     a0, (sp, 8)
 84         mtcr    a0, epc
 85         ldw     a0, (sp, 12)
 86         mtcr    a0, epsr
 87         btsti   a0, 31
 88         bt      1f
 89         ldw     a0, (sp, 16)
 90         mtcr    a0, ss1
 91 1:
 92         ldw     a0, (sp, 24)
 93         ldw     a1, (sp, 28)
 94         ldw     a2, (sp, 32)
 95         ldw     a3, (sp, 36)
 96 
 97         addi    sp, 32
 98         addi    sp, 8
 99         ldw     r6, (sp)
100         ldw     r7, (sp, 4)
101         ldw     r8, (sp, 8)
102         ldw     r9, (sp, 12)
103         ldw     r10, (sp, 16)
104         ldw     r11, (sp, 20)
105         ldw     r12, (sp, 24)
106         ldw     r13, (sp, 28)
107         ldw     r14, (sp, 32)
108         ldw     r1, (sp, 36)
109         addi    sp, 32
110         addi    sp, 8
111 
112         bt      2f
113         KSPTOUSP
114 2:
115         rte
116 .endm
117 
118 .macro SAVE_SWITCH_STACK
119         subi    sp, 32
120         stm     r8-r15, (sp)
121 .endm
122 
123 .macro RESTORE_SWITCH_STACK
124         ldm     r8-r15, (sp)
125         addi    sp, 32
126 .endm
127 
128 /* MMU registers operators. */
129 .macro RD_MIR   rx
130         cprcr   \rx, cpcr0
131 .endm
132 
133 .macro RD_MEH   rx
134         cprcr   \rx, cpcr4
135 .endm
136 
137 .macro RD_MCIR  rx
138         cprcr   \rx, cpcr8
139 .endm
140 
141 .macro RD_PGDR  rx
142         cprcr   \rx, cpcr29
143 .endm
144 
145 .macro WR_MEH   rx
146         cpwcr   \rx, cpcr4
147 .endm
148 
149 .macro WR_MCIR  rx
150         cpwcr   \rx, cpcr8
151 .endm
152 
153 .macro SETUP_MMU
154         /* Init psr and enable ee */
155         lrw     r6, DEFAULT_PSR_VALUE
156         mtcr    r6, psr
157         psrset  ee
158 
159         /* Select MMU as co-processor */
160         cpseti  cp15
161 
162         /*
163          * cpcr30 format:
164          * 31 - 29 | 28 - 4 | 3 | 2 | 1 | 0
165          *   BA     Reserved  C   D   V
166          */
167         cprcr   r6, cpcr30
168         lsri    r6, 29
169         lsli    r6, 29
170         addi    r6, 0xe
171         cpwcr   r6, cpcr30
172 
173         movi    r6, 0
174         cpwcr   r6, cpcr31
175 .endm
176 #endif /* __ASM_CSKY_ENTRY_H */
177 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php