Changeset f2180e0f in rtems
- Timestamp:
- 08/18/99 20:00:05 (23 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- fc766ef5
- Parents:
- e8367362
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/exec/score/cpu/i960/cpu_asm.S
re8367362 rf2180e0f 14 14 * $Id$ 15 15 */ 16 .data 17 .align 4 18 _soft_reset_reg_save: 19 .word 0 20 .word 0 21 .word 0 22 .word 0 23 _ISR_reg_save: 24 .word 0 25 .word 0 26 .word 0 27 .word 0 28 .word 0 29 .word 0 16 30 17 31 .text … … 124 138 movl g6,r14 # save g6-g7 125 139 140 stq g8, _ISR_reg_save # save g8-g11 141 stl g12, _ISR_reg_save+16 # save g12-g13 142 126 143 ld __ISR_Vector_table[g0*4],g1 # g1 = Users handler 127 144 addo 1,r5,r5 # increment ISR level … … 174 191 movq r8,g0 # restore g0-g3 175 192 movq r12,g4 # restore g4-g7 193 ldq _ISR_reg_save, g8 # restore g8-g11 194 ldl _ISR_reg_save+16, g12 # restore g12-g13 176 195 ret 177 196 … … 198 217 movq r12,g4 199 218 ret 219 220 221 /*PAGE 222 * 223 * void __i960_soft_reset_asm 224 * 225 * Flush the register cache and save the important (fp, pfp, sp) registers, 226 * which are clobbered by the reinit operation. (Not documented, but it happens). 227 */ 228 229 .globl __i960_soft_reset_asm 230 __i960_soft_reset_asm: 231 flushreg # flush register cache 232 mov fp, r4 233 mov pfp, r5 234 mov sp, r6 235 stt r4, _soft_reset_reg_save # save fp, pfp, sp 236 lda __i960_reset_done, r4 237 ldconst 0x300, r5 238 sysctl r5, r4, g0 # reinit: clobbers almost all registers 239 __i960_reset_done: 240 ldt _soft_reset_reg_save, r4 # restore fp, pfp, sp 241 mov r4, fp 242 mov r5, pfp 243 mov r6, sp 244 ret -
cpukit/score/cpu/i960/cpu_asm.S
re8367362 rf2180e0f 14 14 * $Id$ 15 15 */ 16 .data 17 .align 4 18 _soft_reset_reg_save: 19 .word 0 20 .word 0 21 .word 0 22 .word 0 23 _ISR_reg_save: 24 .word 0 25 .word 0 26 .word 0 27 .word 0 28 .word 0 29 .word 0 16 30 17 31 .text … … 124 138 movl g6,r14 # save g6-g7 125 139 140 stq g8, _ISR_reg_save # save g8-g11 141 stl g12, _ISR_reg_save+16 # save g12-g13 142 126 143 ld __ISR_Vector_table[g0*4],g1 # g1 = Users handler 127 144 addo 1,r5,r5 # increment ISR level … … 174 191 movq r8,g0 # restore g0-g3 175 192 movq r12,g4 # restore g4-g7 193 ldq _ISR_reg_save, g8 # restore g8-g11 194 ldl _ISR_reg_save+16, g12 # restore g12-g13 176 195 ret 177 196 … … 198 217 movq r12,g4 199 218 ret 219 220 221 /*PAGE 222 * 223 * void __i960_soft_reset_asm 224 * 225 * Flush the register cache and save the important (fp, pfp, sp) registers, 226 * which are clobbered by the reinit operation. (Not documented, but it happens). 227 */ 228 229 .globl __i960_soft_reset_asm 230 __i960_soft_reset_asm: 231 flushreg # flush register cache 232 mov fp, r4 233 mov pfp, r5 234 mov sp, r6 235 stt r4, _soft_reset_reg_save # save fp, pfp, sp 236 lda __i960_reset_done, r4 237 ldconst 0x300, r5 238 sysctl r5, r4, g0 # reinit: clobbers almost all registers 239 __i960_reset_done: 240 ldt _soft_reset_reg_save, r4 # restore fp, pfp, sp 241 mov r4, fp 242 mov r5, pfp 243 mov r6, sp 244 ret
Note: See TracChangeset
for help on using the changeset viewer.