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