URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Source/] [portable/] [Renesas/] [SH2A_FPU/] [ISR_Support.inc] - Rev 572
Compare with Previous | Blame | View Log
.macro portSAVE_CONTEXT; Save r0 to r14 and pr.movml.l r15, @-r15; Save mac1, mach and gbrsts.l macl, @-r15sts.l mach, @-r15stc.l gbr, @-r15; Get the address of pxCurrentTCBmov.l #_pxCurrentTCB, r0; Get the address of pxTopOfStack from the TCB.mov.l @r0, r0; Save the stack pointer in pxTopOfStack.mov.l r15, @r0.endm;-----------------------------------------------------------.macro portRESTORE_CONTEXT; Get the address of the pxCurrentTCB variable.mov.l #_pxCurrentTCB, r0; Get the address of the task stack from pxCurrentTCB.mov.l @r0, r0; Get the task stack itself into the stack pointer.mov.l @r0, r15; Restore system registers.ldc.l @r15+, gbrlds.l @r15+, machlds.l @r15+, macl; Restore r0 to r14 and PRmovml.l @r15+, r15; Pop the SR and PC to jump to the start of the task.rtenop.endm;-----------------------------------------------------------
