summaryrefslogtreecommitdiff
path: root/libcpu/xilinx
diff options
context:
space:
mode:
author[email protected] <[email protected]>2011-12-18 05:16:43 +0000
committer[email protected] <[email protected]>2011-12-18 05:16:43 +0000
commitc66c182894e4249b7627dca591cbfd85bb9575a1 (patch)
treecb25583edc31a7f82c8286d709d9f49ca770236f /libcpu/xilinx
parent90c43598fc3cb931f715bb697d98c02687ab9f08 (diff)
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1846 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'libcpu/xilinx')
-rwxr-xr-xlibcpu/xilinx/microblaze/microblaze.inc116
1 files changed, 116 insertions, 0 deletions
diff --git a/libcpu/xilinx/microblaze/microblaze.inc b/libcpu/xilinx/microblaze/microblaze.inc
new file mode 100755
index 0000000000..19128df3fc
--- /dev/null
+++ b/libcpu/xilinx/microblaze/microblaze.inc
@@ -0,0 +1,116 @@
+/*
+ * 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
+