xref: /nrf52832-nimble/rt-thread/libcpu/xilinx/microblaze/microblaze.inc (revision 104654410c56c573564690304ae786df310c91fc)
1/*
2 * File      : microblaze.inc
3 * This file is part of RT-Thread RTOS
4 * COPYRIGHT (C) 2006, RT-Thread Development Team
5 *
6 * The license and distribution terms for this file may be
7 * found in the file LICENSE in this distribution or at
8 * http://www.rt-thread.org/license/LICENSE
9 *
10 * Change Logs:
11 * Date           Author       Notes
12 * 2011-12-17     nl1031       first implementation for MicroBlaze.
13 *
14 */
15
16
17
18.equ    STACK_RMSR,   	0x00
19.equ    STACK_R02,    	0x04
20.equ    STACK_R03,    	0x08
21.equ    STACK_R04,    	0x0C
22.equ    STACK_R05,    	0x10
23.equ    STACK_R06,    	0x14
24.equ    STACK_R07,    	0x18
25.equ    STACK_R08,    	0x1C
26.equ    STACK_R09,    	0x20
27.equ    STACK_R10,    	0x24
28.equ    STACK_R11,    	0x28
29.equ    STACK_R12,    	0x2C
30.equ    STACK_R13,    	0x30
31.equ    STACK_R14,    	0x34
32.equ    STACK_R15,    	0x38
33.equ    STACK_R17,    	0x3C
34.equ    STACK_R18,    	0x40
35.equ    STACK_R19,    	0x44
36.equ    STACK_R20,    	0x48
37.equ    STACK_R21,    	0x4C
38.equ    STACK_R22,    	0x50
39.equ    STACK_R23,    	0x54
40.equ    STACK_R24,    	0x58
41.equ    STACK_R25,    	0x5C
42.equ    STACK_R26,    	0x60
43.equ    STACK_R27,    	0x64
44.equ    STACK_R28,    	0x68
45.equ    STACK_R29,    	0x6C
46.equ    STACK_R30,    	0x70
47.equ    STACK_R31,    	0x74
48
49.equ    STACK_SIZE,   	0x78
50.equ    IE_BIT,       	0x02
51
52.macro PUSH_ALL
53    ADDIK   r1,  r1, -STACK_SIZE
54    SWI     r2,  r1,  STACK_R02
55    SWI     r3,  r1,  STACK_R03
56    SWI     r4,  r1,  STACK_R04
57    SWI     r5,  r1,  STACK_R05
58    SWI     r6,  r1,  STACK_R06
59    SWI     r7,  r1,  STACK_R07
60    SWI     r8,  r1,  STACK_R08
61    SWI     r9,  r1,  STACK_R09
62    SWI     r10, r1,  STACK_R10
63    SWI     r11, r1,  STACK_R11
64    SWI     r12, r1,  STACK_R12
65    SWI     r13, r1,  STACK_R13
66    SWI     r14, r1,  STACK_R14
67    SWI     r15, r1,  STACK_R15
68    SWI     r17, r1,  STACK_R17
69    SWI     r18, r1,  STACK_R18
70    SWI     r19, r1,  STACK_R19
71    SWI     r20, r1,  STACK_R20
72    SWI     r21, r1,  STACK_R21
73    SWI     r22, r1,  STACK_R22
74    SWI     r23, r1,  STACK_R23
75    SWI     r24, r1,  STACK_R24
76    SWI     r25, r1,  STACK_R25
77    SWI     r26, r1,  STACK_R26
78    SWI     r27, r1,  STACK_R27
79    SWI     r28, r1,  STACK_R28
80    SWI     r29, r1,  STACK_R29
81    SWI     r30, r1,  STACK_R30
82    SWI     r31, r1,  STACK_R31
83.endm
84
85.macro POP_ALL
86    LWI     r31, r1, STACK_R31
87    LWI     r30, r1, STACK_R30
88    LWI     r29, r1, STACK_R29
89    LWI     r28, r1, STACK_R28
90    LWI     r27, r1, STACK_R27
91    LWI     r26, r1, STACK_R26
92    LWI     r25, r1, STACK_R25
93    LWI     r24, r1, STACK_R24
94    LWI     r23, r1, STACK_R23
95    LWI     r22, r1, STACK_R22
96    LWI     r21, r1, STACK_R21
97    LWI     r20, r1, STACK_R20
98    LWI     r19, r1, STACK_R19
99    LWI     r18, r1, STACK_R18
100    LWI     r17, r1, STACK_R17
101    LWI     r15, r1, STACK_R15
102    LWI     r14, r1, STACK_R14
103    LWI     r13, r1, STACK_R13
104    LWI     r12, r1, STACK_R12
105    LWI     r11, r1, STACK_R11
106    LWI     r10, r1, STACK_R10
107    LWI     r9,  r1, STACK_R09
108    LWI     r8,  r1, STACK_R08
109    LWI     r7,  r1, STACK_R07
110    LWI     r6,  r1, STACK_R06
111    LWI     r5,  r1, STACK_R05
112    LWI     r4,  r1, STACK_R04
113    LWI     r3,  r1, STACK_R03
114    LWI     r2,  r1, STACK_R02
115.endm
116
117