URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [trunk/] [rtems-20020807/] [c/] [src/] [lib/] [libcpu/] [i960/] [shared/] [soft_reset_asm.S] - Rev 1782
Compare with Previous | Blame | View Log
/*
* void __i960_soft_reset_asm
*
* Flush the register cache and save the important (fp, pfp, sp) registers,
* which are clobbered by the reinit operation. (Not documented, but it
* happens).
*
* This may not be used any longer but it is not being purged completely
* in the move to multilib things.
*
* soft_reset_asm.S,v 1.1 2000/07/11 19:31:04 joel Exp
*/
.data
.align 4
_soft_reset_reg_save:
.word 0
.word 0
.word 0
.word 0
.globl __i960_soft_reset_asm
__i960_soft_reset_asm:
flushreg # flush register cache mov fp, r4
mov pfp, r5
mov sp, r6
stt r4, _soft_reset_reg_save # save fp, pfp, sp
lda __i960_reset_done, r4
ldconst 0x300, r5
sysctl r5, r4, g0 # reinit: clobbers almost all registers
__i960_reset_done:
ldt _soft_reset_reg_save, r4 # restore fp, pfp, sp
mov r4, fp
mov r5, pfp
mov r6, sp
ret