File indexing completed on 2025-05-11 08:24:24
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 #include <rtems/asm.h>
0037 #include <rtems/score/percpu.h>
0038
0039 .text
0040 .globl _CPU_Exception_dispatch_and_resume
0041 .globl _MicroBlaze_Exception_resume_from_exception
0042 .globl _MicroBlaze_Exception_resume_from_break
0043 .align 2
0044
0045 _CPU_Exception_dispatch_and_resume:
0046
0047 lwi r3, r0, _Per_CPU_Information + 8
0048 addik r3, r3, -1
0049 swi r3, r0, _Per_CPU_Information + 8
0050
0051
0052 lwi r3, r0, _Per_CPU_Information + 16
0053 addik r3, r3, -1
0054 swi r3, r0, _Per_CPU_Information + 16
0055
0056
0057 bnei r3, _MicroBlaze_Exception_resume_from_exception
0058
0059
0060 lwi r3, r0, _Per_CPU_Information + 20
0061 beqi r3, _MicroBlaze_Exception_resume_from_exception
0062
0063 bralid r15, _Thread_Dispatch
0064 nop
0065
0066
0067 _MicroBlaze_Exception_resume_from_exception:
0068
0069 addi r1, r5, 0
0070
0071
0072 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_MSR
0073 mts rmsr, r3
0074
0075
0076 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_EAR
0077 mts rear, r3
0078
0079
0080 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_ESR
0081 mts resr, r3
0082
0083
0084 lwi r2, r1, MICROBLAZE_EXCEPTION_FRAME_R2
0085 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_R3
0086 lwi r4, r1, MICROBLAZE_EXCEPTION_FRAME_R4
0087 lwi r5, r1, MICROBLAZE_EXCEPTION_FRAME_R5
0088 lwi r6, r1, MICROBLAZE_EXCEPTION_FRAME_R6
0089 lwi r7, r1, MICROBLAZE_EXCEPTION_FRAME_R7
0090 lwi r8, r1, MICROBLAZE_EXCEPTION_FRAME_R8
0091 lwi r9, r1, MICROBLAZE_EXCEPTION_FRAME_R9
0092 lwi r10, r1, MICROBLAZE_EXCEPTION_FRAME_R10
0093 lwi r11, r1, MICROBLAZE_EXCEPTION_FRAME_R11
0094 lwi r12, r1, MICROBLAZE_EXCEPTION_FRAME_R12
0095 lwi r13, r1, MICROBLAZE_EXCEPTION_FRAME_R13
0096 lwi r14, r1, MICROBLAZE_EXCEPTION_FRAME_R14
0097 lwi r15, r1, MICROBLAZE_EXCEPTION_FRAME_R15
0098 lwi r16, r1, MICROBLAZE_EXCEPTION_FRAME_R16
0099 lwi r17, r1, MICROBLAZE_EXCEPTION_FRAME_R17
0100 lwi r18, r1, MICROBLAZE_EXCEPTION_FRAME_R18
0101 lwi r19, r1, MICROBLAZE_EXCEPTION_FRAME_R19
0102 lwi r20, r1, MICROBLAZE_EXCEPTION_FRAME_R20
0103 lwi r21, r1, MICROBLAZE_EXCEPTION_FRAME_R21
0104 lwi r22, r1, MICROBLAZE_EXCEPTION_FRAME_R22
0105 lwi r23, r1, MICROBLAZE_EXCEPTION_FRAME_R23
0106 lwi r24, r1, MICROBLAZE_EXCEPTION_FRAME_R24
0107 lwi r25, r1, MICROBLAZE_EXCEPTION_FRAME_R25
0108 lwi r26, r1, MICROBLAZE_EXCEPTION_FRAME_R26
0109 lwi r27, r1, MICROBLAZE_EXCEPTION_FRAME_R27
0110 lwi r28, r1, MICROBLAZE_EXCEPTION_FRAME_R28
0111 lwi r29, r1, MICROBLAZE_EXCEPTION_FRAME_R29
0112 lwi r30, r1, MICROBLAZE_EXCEPTION_FRAME_R30
0113 lwi r31, r1, MICROBLAZE_EXCEPTION_FRAME_R31
0114
0115
0116 addik r1, r1, CPU_EXCEPTION_FRAME_SIZE
0117
0118
0119
0120 rted r17, 0
0121 nop
0122
0123
0124 _MicroBlaze_Exception_resume_from_break:
0125
0126 addi r1, r5, 0
0127
0128
0129 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_MSR
0130 mts rmsr, r3
0131
0132
0133 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_EAR
0134 mts rear, r3
0135
0136
0137 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_ESR
0138 mts resr, r3
0139
0140
0141 lwi r2, r1, MICROBLAZE_EXCEPTION_FRAME_R2
0142 lwi r3, r1, MICROBLAZE_EXCEPTION_FRAME_R3
0143 lwi r4, r1, MICROBLAZE_EXCEPTION_FRAME_R4
0144 lwi r5, r1, MICROBLAZE_EXCEPTION_FRAME_R5
0145 lwi r6, r1, MICROBLAZE_EXCEPTION_FRAME_R6
0146 lwi r7, r1, MICROBLAZE_EXCEPTION_FRAME_R7
0147 lwi r8, r1, MICROBLAZE_EXCEPTION_FRAME_R8
0148 lwi r9, r1, MICROBLAZE_EXCEPTION_FRAME_R9
0149 lwi r10, r1, MICROBLAZE_EXCEPTION_FRAME_R10
0150 lwi r11, r1, MICROBLAZE_EXCEPTION_FRAME_R11
0151 lwi r12, r1, MICROBLAZE_EXCEPTION_FRAME_R12
0152 lwi r13, r1, MICROBLAZE_EXCEPTION_FRAME_R13
0153 lwi r14, r1, MICROBLAZE_EXCEPTION_FRAME_R14
0154 lwi r15, r1, MICROBLAZE_EXCEPTION_FRAME_R15
0155 lwi r16, r1, MICROBLAZE_EXCEPTION_FRAME_R16
0156 lwi r17, r1, MICROBLAZE_EXCEPTION_FRAME_R17
0157 lwi r18, r1, MICROBLAZE_EXCEPTION_FRAME_R18
0158 lwi r19, r1, MICROBLAZE_EXCEPTION_FRAME_R19
0159 lwi r20, r1, MICROBLAZE_EXCEPTION_FRAME_R20
0160 lwi r21, r1, MICROBLAZE_EXCEPTION_FRAME_R21
0161 lwi r22, r1, MICROBLAZE_EXCEPTION_FRAME_R22
0162 lwi r23, r1, MICROBLAZE_EXCEPTION_FRAME_R23
0163 lwi r24, r1, MICROBLAZE_EXCEPTION_FRAME_R24
0164 lwi r25, r1, MICROBLAZE_EXCEPTION_FRAME_R25
0165 lwi r26, r1, MICROBLAZE_EXCEPTION_FRAME_R26
0166 lwi r27, r1, MICROBLAZE_EXCEPTION_FRAME_R27
0167 lwi r28, r1, MICROBLAZE_EXCEPTION_FRAME_R28
0168 lwi r29, r1, MICROBLAZE_EXCEPTION_FRAME_R29
0169 lwi r30, r1, MICROBLAZE_EXCEPTION_FRAME_R30
0170 lwi r31, r1, MICROBLAZE_EXCEPTION_FRAME_R31
0171
0172
0173 addik r1, r1, CPU_EXCEPTION_FRAME_SIZE
0174
0175
0176 rtbd r16, 0
0177 nop