Mercurial > ecos
annotate packages/hal/powerpc/arch/current/src/context.S @ 76:435cced73e2f ecos-v1_3_1-release
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
| author | jlarmour |
|---|---|
| date | Tue, 28 Mar 2000 14:10:45 +0000 |
| parents | bf00f99aec69 |
| children | e0c0827131d1 |
| rev | line source |
|---|---|
| 0 | 1 ##============================================================================= |
| 2 ## | |
| 3 ## context.S | |
| 4 ## | |
| 5 ## PowerPC context switch code | |
| 6 ## | |
| 7 ##============================================================================= | |
| 8 #####COPYRIGHTBEGIN#### | |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
9 # |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
10 # ------------------------------------------- |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
11 # The contents of this file are subject to the Red Hat eCos Public License |
|
66
bf00f99aec69
Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents:
64
diff
changeset
|
12 # Version 1.1 (the "License"); you may not use this file except in |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
13 # compliance with the License. You may obtain a copy of the License at |
|
66
bf00f99aec69
Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents:
64
diff
changeset
|
14 # http://www.redhat.com/ |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
15 # |
|
66
bf00f99aec69
Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents:
64
diff
changeset
|
16 # Software distributed under the License is distributed on an "AS IS" |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
17 # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
18 # License for the specific language governing rights and limitations under |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
19 # the License. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
20 # |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
21 # The Original Code is eCos - Embedded Configurable Operating System, |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
22 # released September 30, 1998. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
23 # |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
24 # The Initial Developer of the Original Code is Red Hat. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
25 # Portions created by Red Hat are |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
26 # Copyright (C) 1998, 1999, 2000 Red Hat, Inc. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
27 # All Rights Reserved. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
28 # ------------------------------------------- |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
2
diff
changeset
|
29 # |
| 0 | 30 #####COPYRIGHTEND#### |
| 31 ##============================================================================= | |
| 32 #######DESCRIPTIONBEGIN#### | |
| 33 ## | |
| 34 ## Author(s): nickg | |
| 35 ## Contributors: nickg | |
| 36 ## Date: 1998-04-27 | |
| 37 ## Purpose: PowerPC context switch code | |
| 38 ## Description: This file contains implementations of the thread context | |
| 39 ## switch routines. It also contains the longjmp() and setjmp() | |
| 40 ## routines. | |
| 41 ## | |
| 42 ######DESCRIPTIONEND#### | |
| 43 ## | |
| 44 ##============================================================================= | |
| 45 | |
| 46 #include <pkgconf/hal.h> | |
| 47 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
48 #include <cyg/hal/arch.inc> |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
49 #include <cyg/hal/ppc_offsets.inc> |
| 0 | 50 |
| 51 #------------------------------------------------------------------------------ | |
| 52 # Configure to use either a minimal or maximal thread state | |
| 53 | |
| 54 #ifdef CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM | |
| 55 | |
| 56 #define MIN_SAVE_REG 13 | |
| 57 #define MAX_SAVE_REG 31 | |
| 58 | |
| 59 .macro save_special | |
| 60 .endm | |
| 61 | |
| 62 .macro load_special | |
| 63 .endm | |
| 64 #else | |
| 65 | |
| 66 #define MIN_SAVE_REG 6 | |
| 67 #define MAX_SAVE_REG 31 | |
| 68 | |
| 69 .macro save_special | |
| 70 mfxer r6 | |
| 71 mfctr r7 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
72 stw r6,CYGARC_PPCREG_XER(sp) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
73 stw r7,CYGARC_PPCREG_CTR(sp) |
| 0 | 74 .endm |
| 75 | |
| 76 .macro load_special | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
77 lwz r6,CYGARC_PPCREG_XER(sp) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
78 lwz r7,CYGARC_PPCREG_CTR(sp) |
| 0 | 79 mtxer r6 |
| 80 mtctr r7 | |
| 81 .endm | |
| 82 | |
| 83 #endif | |
| 84 | |
| 85 #------------------------------------------------------------------------------ | |
| 86 # hal_thread_switch_context | |
| 87 # Switch thread contexts | |
| 88 # R3 = address of sp of next thread to execute | |
| 89 # R4 = address of sp save location of current thread | |
| 90 | |
| 91 | |
| 92 FUNC_START(hal_thread_switch_context) | |
| 93 mr r5,sp # R5 = saved stack pointer | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
94 subi sp,sp,CYGARC_PPC_CONTEXT_SIZE # space for state |
| 0 | 95 |
| 96 # Save registers MIN..MAX | |
| 97 .set _reg,MIN_SAVE_REG | |
| 98 .rept MAX_SAVE_REG+1-MIN_SAVE_REG | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
99 stw _reg,(CYGARC_PPCREG_REGS+_reg*4)(sp) |
| 0 | 100 .set _reg,_reg+1 |
| 101 .endr | |
| 102 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
103 stw r0,CYGARC_PPCREG_REGS+0*4(sp) # R0 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
104 stw r5,CYGARC_PPCREG_REGS+1*4(sp) # R5 = real SP, save in R1 slot |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
105 stw r2,CYGARC_PPCREG_REGS+2*4(sp) # R2 = TOC |
| 0 | 106 |
| 107 # CR cannot be treated as a special register since GCC will only | |
| 108 # do partial restore of CR at function exit, depending on which | |
| 109 # of CR2, CR3, and CR4 have been used in the given function. | |
| 110 mfcr r5 # save CR. | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
111 stw r5,CYGARC_PPCREG_CR(sp) |
| 2 | 112 |
| 113 #ifdef CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT | |
| 114 # Make the thread context look like an exception context if thread- | |
| 115 # aware debugging is required. This state does not need restoring. | |
| 116 mflr r5 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
117 stw r5,CYGARC_PPCREG_PC(sp) # pc of caller |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
118 #endif |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
119 |
| 2 | 120 mfmsr r5 |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
121 stw r5,CYGARC_PPCREG_MSR(sp)# msr (or PS) |
| 2 | 122 |
| 0 | 123 save_special # save special regs |
| 124 | |
| 125 mflr r5 # save LR == return link for this fn | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
126 stw r5,CYGARC_PPCREG_LR(sp) |
| 0 | 127 |
| 128 stw sp,0(r4) # save SP into save location | |
| 129 | |
| 130 # Now load the destination thread by dropping through | |
| 131 # to hal_thread_load_context | |
| 132 | |
| 133 #------------------------------------------------------------------------------ | |
| 134 # hal_thread_load_context | |
| 135 # Load thread context | |
| 136 # R3 = address of sp of next thread to execute | |
| 137 # Note that this function is also the second half of hal_thread_switch_context | |
| 138 # and is simply dropped into from it. | |
| 139 | |
| 140 FUNC_START(hal_thread_load_context) | |
| 141 | |
| 142 lwz sp,0(r3) # load state directly into SP | |
| 143 | |
| 144 load_special # load special registers | |
| 145 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
146 lwz r5,CYGARC_PPCREG_CR(sp) # restore CR |
| 0 | 147 mtcr r5 |
| 148 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
149 lwz r5,CYGARC_PPCREG_LR(sp) # get LR as set as return link |
| 0 | 150 mtlr r5 |
| 151 | |
| 152 # Load registers MIN..MAX | |
| 153 .set _reg,MIN_SAVE_REG | |
| 154 .rept MAX_SAVE_REG+1-MIN_SAVE_REG | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
155 lwz _reg,(CYGARC_PPCREG_REGS+_reg*4)(sp) |
| 0 | 156 .set _reg,_reg+1 |
| 157 .endr | |
| 158 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
159 lwz r3,CYGARC_PPCREG_MSR(sp) # merge interrupt state |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
160 hal_cpu_int_merge r3 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
161 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
162 lwz r0,CYGARC_PPCREG_REGS+0*4(sp) # R0 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
163 lwz r2,CYGARC_PPCREG_REGS+2*4(sp) # R2 = TOC |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
164 lwz r3,CYGARC_PPCREG_REGS+3*4(sp) # load r3 |
| 0 | 165 |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
166 lwz sp,CYGARC_PPCREG_REGS+1*4(sp) # finally restore true SP |
| 0 | 167 |
| 168 blr # jump to LR | |
| 169 | |
| 170 #------------------------------------------------------------------------------ | |
| 171 # HAL longjmp, setjmp implementations | |
| 172 # hal_setjmp saves only to callee save registers 13-31, r1[sp],r2, cr[2-4] | |
| 173 # and lr into buffer supplied in r3[arg0] | |
| 174 | |
| 175 FUNC_START(hal_setjmp) | |
| 176 mfcr r5 | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
177 stw r5, CYGARC_JMPBUF_CR(r3) |
| 0 | 178 mflr r5 |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
179 stw r5, CYGARC_JMPBUF_LR(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
180 stw r31,CYGARC_JMPBUF_R31(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
181 stw r30,CYGARC_JMPBUF_R30(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
182 stw r29,CYGARC_JMPBUF_R29(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
183 stw r28,CYGARC_JMPBUF_R28(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
184 stw r27,CYGARC_JMPBUF_R27(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
185 stw r26,CYGARC_JMPBUF_R26(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
186 stw r25,CYGARC_JMPBUF_R25(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
187 stw r24,CYGARC_JMPBUF_R24(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
188 stw r23,CYGARC_JMPBUF_R23(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
189 stw r22,CYGARC_JMPBUF_R22(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
190 stw r21,CYGARC_JMPBUF_R21(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
191 stw r20,CYGARC_JMPBUF_R20(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
192 stw r19,CYGARC_JMPBUF_R19(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
193 stw r18,CYGARC_JMPBUF_R18(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
194 stw r17,CYGARC_JMPBUF_R17(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
195 stw r16,CYGARC_JMPBUF_R16(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
196 stw r15,CYGARC_JMPBUF_R15(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
197 stw r14,CYGARC_JMPBUF_R14(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
198 stw r13,CYGARC_JMPBUF_R13(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
199 stw r2, CYGARC_JMPBUF_R2(r3) # TOC, optimize out? |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
200 stw sp, CYGARC_JMPBUF_SP(r3) |
| 0 | 201 li r3,0 # return 0 |
| 202 blr | |
| 203 | |
| 204 # hal_longjmp loads state from r3[arg0] and returns | |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
205 # to the setjmp caller with r4[arg1] as return value |
| 2 | 206 |
| 0 | 207 FUNC_START(hal_longjmp) |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
208 lwz r5,CYGARC_JMPBUF_CR(r3) |
| 0 | 209 mtcr r5 |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
210 lwz r5,CYGARC_JMPBUF_LR(r3) |
| 0 | 211 mtlr r5 |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
212 lwz r31,CYGARC_JMPBUF_R31(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
213 lwz r30,CYGARC_JMPBUF_R30(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
214 lwz r29,CYGARC_JMPBUF_R29(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
215 lwz r28,CYGARC_JMPBUF_R28(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
216 lwz r27,CYGARC_JMPBUF_R27(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
217 lwz r26,CYGARC_JMPBUF_R26(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
218 lwz r25,CYGARC_JMPBUF_R25(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
219 lwz r24,CYGARC_JMPBUF_R24(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
220 lwz r23,CYGARC_JMPBUF_R23(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
221 lwz r22,CYGARC_JMPBUF_R22(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
222 lwz r21,CYGARC_JMPBUF_R21(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
223 lwz r20,CYGARC_JMPBUF_R20(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
224 lwz r19,CYGARC_JMPBUF_R19(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
225 lwz r18,CYGARC_JMPBUF_R18(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
226 lwz r17,CYGARC_JMPBUF_R17(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
227 lwz r16,CYGARC_JMPBUF_R16(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
228 lwz r15,CYGARC_JMPBUF_R15(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
229 lwz r14,CYGARC_JMPBUF_R14(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
230 lwz r13,CYGARC_JMPBUF_R13(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
231 lwz r2, CYGARC_JMPBUF_R2(r3) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
232 lwz sp, CYGARC_JMPBUF_SP(r3) |
| 0 | 233 mr r3,r4 # return r4[arg1] |
| 234 blr | |
| 235 | |
| 236 #------------------------------------------------------------------------------ | |
| 237 # end of context.S |
