Changeset e34a141 in mainline for arch/ppc32/src/exception.S
- Timestamp:
- 2006-05-02T16:03:58Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 738ad2e
- Parents:
- 9417cdc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ppc32/src/exception.S
r9417cdc re34a141 34 34 .macro CONTEXT_STORE 35 35 36 # save SP in SPRG1 37 # save R12 in SPRG2, backup CR in R12 38 39 mtsprg1 sp 40 mtsprg2 r12 36 # save R12 in SPRG1, backup CR in R12 37 # save SP in SPRG2 38 39 mtsprg1 r12 41 40 mfcr r12 41 mtsprg2 sp 42 42 43 43 # check whether SP is in kernel … … 56 56 # stack is in kernel 57 57 58 mfsprg 1sp58 mfsprg2 sp 59 59 subis sp, sp, 0x8000 60 60 61 61 2: 62 62 63 subi sp, sp, 14 063 subi sp, sp, 148 64 64 stw r0, 0(sp) 65 65 stw r2, 4(sp) … … 93 93 stw r31, 116(sp) 94 94 95 mfsrr0 r396 stw r3, 120(sp)97 98 mfsrr1 r399 stw r3, 124(sp)100 101 mflr r3102 stw r3, 128(sp)103 95 stw r12, 120(sp) 96 97 mfsrr0 r12 98 stw r12, 124(sp) 99 100 mfsrr1 r12 101 stw r12, 128(sp) 102 103 mflr r12 104 104 stw r12, 132(sp) 105 105 106 mfctr r3 107 stw r3, 136(sp) 108 109 mfxer r3 110 stw r3, 140(sp) 106 mfctr r12 107 stw r12, 136(sp) 108 109 mfxer r12 110 stw r12, 140(sp) 111 112 mfsprg1 r12 113 stw r12, 144(sp) 114 115 mfsprg2 r12 116 stw r12, 148(sp) 111 117 .endm 118 119 .org 0x060 120 jump_to_kernel: 121 lis r12, iret@ha 122 addi r12, r12, iret@l 123 mtlr r12 124 125 mfmsr r12 126 ori r12, r12, (msr_ir | msr_dr)@l 127 mtsrr1 r12 128 129 addis sp, sp, 0x8000 130 mr r4, sp 131 rfi 132 133 jump_to_kernel_syscall: 134 lis r12, syscall_handler@ha 135 addi r12, r12, syscall_handler@l 136 mtsrr0 r12 137 138 lis r12, iret_syscall@ha 139 addi r12, r12, iret_syscall@l 140 mtlr r12 141 142 mfmsr r12 143 ori r12, r12, (msr_ir | msr_dr)@l 144 mtsrr1 r12 145 146 addis sp, sp, 0x8000 147 rfi 112 148 113 149 .org 0x100 … … 126 162 CONTEXT_STORE 127 163 128 lis r3, pht_refill@ha 129 addi r3, r3, pht_refill@l 130 mtsrr0 r3 131 132 mfmsr r3 133 ori r3, r3, (msr_ir | msr_dr)@l 134 mtsrr1 r3 135 136 lis r3, iret@ha 137 addi r3, r3, iret@l 138 mtlr r3 139 140 addis sp, sp, 0x8000 164 lis r12, pht_refill@ha 165 addi r12, r12, pht_refill@l 166 mtsrr0 r12 167 141 168 li r3, 1 142 mr r4, sp 143 rfi 169 b jump_to_kernel 144 170 145 171 .org 0x400 … … 148 174 CONTEXT_STORE 149 175 150 lis r3, pht_refill@ha 151 addi r3, r3, pht_refill@l 152 mtsrr0 r3 153 154 mfmsr r3 155 ori r3, r3, (msr_ir | msr_dr)@l 156 mtsrr1 r3 157 158 lis r3, iret@ha 159 addi r3, r3, iret@l 160 mtlr r3 161 162 addis sp, sp, 0x8000 176 lis r12, pht_refill@ha 177 addi r12, r12, pht_refill@l 178 mtsrr0 r12 179 163 180 li r3, 0 164 mr r4, sp 165 rfi 181 b jump_to_kernel 166 182 167 183 .org 0x500 … … 190 206 CONTEXT_STORE 191 207 192 lis r3, exc_dispatch@ha 193 addi r3, r3, exc_dispatch@l 194 mtsrr0 r3 195 196 mfmsr r3 197 ori r3, r3, (msr_ir | msr_dr)@l 198 mtsrr1 r3 199 200 lis r3, iret@ha 201 addi r3, r3, iret@l 202 mtlr r3 203 204 addis sp, sp, 0x8000 208 lis r12, exc_dispatch@ha 209 addi r12, r12, exc_dispatch@l 210 mtsrr0 r12 211 205 212 li r3, 10 206 mr r4, sp 207 rfi 213 b jump_to_kernel 208 214 209 215 .org 0xa00 … … 220 226 .global exc_syscall 221 227 exc_syscall: 222 b exc_syscall 228 CONTEXT_STORE 229 230 b jump_to_kernel_syscall 223 231 224 232 .org 0xd00
Note:
See TracChangeset
for help on using the changeset viewer.