⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu_a.inc.svn-base

📁 我们自己开发的一个OSEK操作系统!不知道可不可以?
💻 SVN-BASE
字号:
#include "ppc_asm.h"
/*
 *                                         STACK FRAME DEFINITION
 */

    .equ XR30    ,0
    .equ XR1     ,XR30+4
    .equ XR2     ,XR1+4
    .equ XR3     ,XR2+4    
    .equ XR4     ,XR3+4
    .equ XR5     ,XR4+4
    .equ XR6     ,XR5+4
    .equ XR7     ,XR6+4
    .equ XR8     ,XR7+4
    .equ XR9     ,XR8+4
    .equ XR10    ,XR9+4
    .equ XR11    ,XR10+4
    .equ XR12    ,XR11+4
    .equ XR13    ,XR12+4
    .equ XR14    ,XR13+4
    .equ XR15    ,XR14+4
    .equ XR16    ,XR15+4
    .equ XR17    ,XR16+4
    .equ XR18    ,XR17+4
    .equ XR19    ,XR18+4
    .equ XR20    ,XR19+4
    .equ XR21    ,XR20+4
    .equ XR22    ,XR21+4
    .equ XR23    ,XR22+4
    .equ XR24    ,XR23+4
    .equ XR25    ,XR24+4
    .equ XR26    ,XR25+4
    .equ XR27    ,XR26+4
    .equ XR28    ,XR27+4
    .equ XR29    ,XR28+4
    .equ XR31    ,XR29+4
    .equ XR0     ,XR31+4
    
    .equ XSRR0   ,XR0+4
    .equ XSRR1   ,XSRR0+4
    .equ XCTR  ,XSRR1+4 
    .equ XXER    ,XCTR+4
    .equ XCR     ,XXER+4
    .equ XLR     ,XCR+4
    .equ XMSR    ,XLR+4

    .equ STACK_FRAME_SIZE   ,XMSR+4
    
    
/*
 *                                         PROLOGUE DEFINITION
 */
prologue:       .macro
        stwu    r30, -STACK_FRAME_SIZE(r30)
        stw     r0,  XR0(r30)     
        stw	    r1,  XR1(r30)
        stw     r2,  XR2(r30)             /* store GPR as 32bit Register*/
        stw     r3,  XR3(r30)
        stw     r4,  XR4(r30)
        stw     r5,  XR5(r30)
        stw     r6,  XR6(r30)
        stw     r7,  XR7(r30)
        stw     r8,  XR8(r30)
        stw     r9,  XR9(r30)
        stw     r10, XR10(r30)
        stw     r11, XR11(r30)
        stw     r12, XR12(r30)
        stw     r13, XR13(r30)
        stw     r14, XR14(r30)
        stw     r15, XR15(r30)
        stw     r16, XR16(r30)
        stw     r17, XR17(r30)
        stw     r18, XR18(r30)
        stw     r19, XR19(r30)
        stw     r20, XR20(r30)
        stw     r21, XR21(r30)
        stw     r22, XR22(r30)
        stw     r23, XR23(r30)
        stw     r24, XR24(r30)
        stw     r25, XR25(r30)
        stw     r26, XR26(r30)
        stw     r27, XR27(r30)
        stw     r28, XR28(r30)
        stw     r29, XR29(r30)
        stw     r31, XR31(r30)

        mfmsr   r0
        stw     r0,  XMSR(r30)

        mfspr   r0,  SRR0
        stw     r0,  XSRR0(r30)

        mfspr   r0,  SRR1
        stw     r0,  XSRR1(r30)

        mflr    r0
        stw     r0,  XLR(r30)

        mfctr   r0
        stw     r0,  XCTR(r30)

        mfxer   r0
        stw     r0,  XXER(r30)

        mfcr    r0
        stw     r0,  XCR(r30)
       .endm 
/*
 *                                         EPILOGUE DEFINITION
 */
epilogue:       .macro
/*        wrteei  0   */
        lwz     r1,  XR1(r30)
        lwz     r2,  XR2(r30)                       /* load GPR as 32bit Register*/
        lwz     r3,  XR3(r30)
        lwz     r4,  XR4(r30)
        lwz     r5,  XR5(r30)
        lwz     r6,  XR6(r30)
        lwz     r7,  XR7(r30)
        lwz     r8,  XR8(r30)
        lwz     r9,  XR9(r30)
        lwz     r10, XR10(r30)
        lwz     r11, XR11(r30)
        lwz     r12, XR12(r30)
        lwz     r13, XR13(r30)
        lwz     r14, XR14(r30)
        lwz     r15, XR15(r30)
        lwz     r16, XR16(r30)
        lwz     r17, XR17(r30)
        lwz     r18, XR18(r30)
        lwz     r19, XR19(r30)
        lwz     r20, XR20(r30)
        lwz     r21, XR21(r30)
        lwz     r22, XR22(r30)
        lwz     r23, XR23(r30)
        lwz     r24, XR24(r30)
        lwz     r25, XR25(r30)
        lwz     r26, XR26(r30)
        lwz     r27, XR27(r30)
        lwz     r28, XR28(r30)
        lwz     r29, XR29(r30)
        lwz     r31, XR31(r30)

        lwz     r0,  XCR(r30)
        mtcrf   0xff,r0
        lwz     r0,  XXER(r30)
        mtxer   r0
        lwz     r0,  XCTR(r30)
        mtctr   r0
        lwz     r0,  XLR(r30)
        mtlr    r0

        lwz     r0,  XSRR1(r30)
        mtspr   SRR1,r0
        lwz     r0,  XSRR0(r30)
        mtspr   SRR0,r0

        lwz     r0,  XR0(r30)
        addi    r30,  r30, STACK_FRAME_SIZE
        .endm

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -