OpenCores
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

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.