117 lines
3.1 KiB
PHP
117 lines
3.1 KiB
PHP
/*
|
|
* File : microblaze.inc
|
|
* This file is part of RT-Thread RTOS
|
|
* COPYRIGHT (C) 2006, RT-Thread Development Team
|
|
*
|
|
* The license and distribution terms for this file may be
|
|
* found in the file LICENSE in this distribution or at
|
|
* http://www.rt-thread.org/license/LICENSE
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2011-12-17 nl1031 first implementation for MicroBlaze.
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
.equ STACK_RMSR, 0x00
|
|
.equ STACK_R02, 0x04
|
|
.equ STACK_R03, 0x08
|
|
.equ STACK_R04, 0x0C
|
|
.equ STACK_R05, 0x10
|
|
.equ STACK_R06, 0x14
|
|
.equ STACK_R07, 0x18
|
|
.equ STACK_R08, 0x1C
|
|
.equ STACK_R09, 0x20
|
|
.equ STACK_R10, 0x24
|
|
.equ STACK_R11, 0x28
|
|
.equ STACK_R12, 0x2C
|
|
.equ STACK_R13, 0x30
|
|
.equ STACK_R14, 0x34
|
|
.equ STACK_R15, 0x38
|
|
.equ STACK_R17, 0x3C
|
|
.equ STACK_R18, 0x40
|
|
.equ STACK_R19, 0x44
|
|
.equ STACK_R20, 0x48
|
|
.equ STACK_R21, 0x4C
|
|
.equ STACK_R22, 0x50
|
|
.equ STACK_R23, 0x54
|
|
.equ STACK_R24, 0x58
|
|
.equ STACK_R25, 0x5C
|
|
.equ STACK_R26, 0x60
|
|
.equ STACK_R27, 0x64
|
|
.equ STACK_R28, 0x68
|
|
.equ STACK_R29, 0x6C
|
|
.equ STACK_R30, 0x70
|
|
.equ STACK_R31, 0x74
|
|
|
|
.equ STACK_SIZE, 0x78
|
|
.equ IE_BIT, 0x02
|
|
|
|
.macro PUSH_ALL
|
|
ADDIK r1, r1, -STACK_SIZE
|
|
SWI r2, r1, STACK_R02
|
|
SWI r3, r1, STACK_R03
|
|
SWI r4, r1, STACK_R04
|
|
SWI r5, r1, STACK_R05
|
|
SWI r6, r1, STACK_R06
|
|
SWI r7, r1, STACK_R07
|
|
SWI r8, r1, STACK_R08
|
|
SWI r9, r1, STACK_R09
|
|
SWI r10, r1, STACK_R10
|
|
SWI r11, r1, STACK_R11
|
|
SWI r12, r1, STACK_R12
|
|
SWI r13, r1, STACK_R13
|
|
SWI r14, r1, STACK_R14
|
|
SWI r15, r1, STACK_R15
|
|
SWI r17, r1, STACK_R17
|
|
SWI r18, r1, STACK_R18
|
|
SWI r19, r1, STACK_R19
|
|
SWI r20, r1, STACK_R20
|
|
SWI r21, r1, STACK_R21
|
|
SWI r22, r1, STACK_R22
|
|
SWI r23, r1, STACK_R23
|
|
SWI r24, r1, STACK_R24
|
|
SWI r25, r1, STACK_R25
|
|
SWI r26, r1, STACK_R26
|
|
SWI r27, r1, STACK_R27
|
|
SWI r28, r1, STACK_R28
|
|
SWI r29, r1, STACK_R29
|
|
SWI r30, r1, STACK_R30
|
|
SWI r31, r1, STACK_R31
|
|
.endm
|
|
|
|
.macro POP_ALL
|
|
LWI r31, r1, STACK_R31
|
|
LWI r30, r1, STACK_R30
|
|
LWI r29, r1, STACK_R29
|
|
LWI r28, r1, STACK_R28
|
|
LWI r27, r1, STACK_R27
|
|
LWI r26, r1, STACK_R26
|
|
LWI r25, r1, STACK_R25
|
|
LWI r24, r1, STACK_R24
|
|
LWI r23, r1, STACK_R23
|
|
LWI r22, r1, STACK_R22
|
|
LWI r21, r1, STACK_R21
|
|
LWI r20, r1, STACK_R20
|
|
LWI r19, r1, STACK_R19
|
|
LWI r18, r1, STACK_R18
|
|
LWI r17, r1, STACK_R17
|
|
LWI r15, r1, STACK_R15
|
|
LWI r14, r1, STACK_R14
|
|
LWI r13, r1, STACK_R13
|
|
LWI r12, r1, STACK_R12
|
|
LWI r11, r1, STACK_R11
|
|
LWI r10, r1, STACK_R10
|
|
LWI r9, r1, STACK_R09
|
|
LWI r8, r1, STACK_R08
|
|
LWI r7, r1, STACK_R07
|
|
LWI r6, r1, STACK_R06
|
|
LWI r5, r1, STACK_R05
|
|
LWI r4, r1, STACK_R04
|
|
LWI r3, r1, STACK_R03
|
|
LWI r2, r1, STACK_R02
|
|
.endm
|
|
|