URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [i960/] [rxgen960/] [startup/] [asmstub.S] - Rev 173
Compare with Previous | Blame | View Log
#
# $Id: asmstub.S,v 1.2 2001-09-27 11:59:59 chris Exp $
#
#######################################
# asmstub.s #
# Last change : 20. 1.95 #
#######################################
########################################################################
#
# PURPOSE: resets processor
#
# ARGUMENTS: g0 = start point
# g1 = prcb
#
# RETURNS: none
########################################################################
.text
.globl _asm_exit
.text
_asm_exit:
ldconst 0x300, g2
# ldconst _start, g1
# ldconst _ram_prcb, g2
sysctl g2, g0, g1
ret
########################################################################
#
# PURPOSE: execute sysctl instruction
#
# ARGUMENTS: g0 = message type (0x300 for reinitialize)
# g1 = depends on type (inst addr for reinitialize)
# g2 = depends on type (prcb addr for reinitialize)
#
# RETURNS: none
########################################################################
.text
.globl _asm_sysctl
.text
_asm_sysctl:
b _asm_sysctl
sysctl g0, g1, g2
ret
########################################################################
#
# PURPOSE: alter a bit in the interrupt pending register
#
# ARGUMENTS: g0 = interrupt number
# g1 = 1 to set, 0 to clear
#
# RETURNS: none
########################################################################
.text
.globl _asm_ipend
.text
_asm_ipend:
chkbit 0, g1
/* alterbit g0, sf0, sf0 XXX JRS */
ret
########################################################################
#
# PURPOSE: alter a bit in the interrupt mask register
#
# ARGUMENTS: g0 = interrupt number
# g1 = 1 to set, 0 to clear
#
# RETURNS: none
########################################################################
.text
.globl _asm_imask
.text
_asm_imask:
chkbit 0, g1
/* alterbit g0, sf1, sf1 XXX JRS */
ret
########################################################################
#
# PURPOSE: get the value of the interrupt mask register
#
# ARGUMENTS: none
#
# RETURNS: value of IMASK reg
########################################################################
.text
.globl _asm_get_imask
.text
_asm_get_imask:
/* mov sf1, g0 XXX JRS */
ret
########################################################################
#
# PURPOSE: modify process-controls register
#
# ARGUMENTS: g0 = value masked/stored in PC reg
# g1 = mask of bits to be modified
#
# RETURNS: g0 = initial value of PC reg
########################################################################
.text
.globl _asm_modpc
.text
_asm_modpc:
modpc g1, g1, g0
ret
########################################################################
#
# PURPOSE: change a cached interrupt vector
#
# ARGUMENTS: g0 = interrupt number
# g1 = new interrupt vector
#
# RETURNS: none
########################################################################
.text
.globl _asm_ivector
.text
_asm_ivector:
addo 1, g0, g0
st g1, [g0 * 4]
ret
###############
# End of file #
###############