?? pacctx.s
字號:
#include "mipsregs.h"#define SF_SIZE (4*72) /* ------------------------------------------------------------------------ *//* Hyper Operating System V4 μITRON4.0慌屯 Real-Time OS *//* プロセッサ藐據步コンポ〖ネント (MIPS4高垂コア脫) *//* *//* Copyright (C) 1998-2002 by Project HOS *//* http://sourceforge.jp/projects/hos/ *//* ------------------------------------------------------------------------ */ .global hospac_dis_int /* 充り哈み敦賄 */ .global hospac_ena_int /* 充り哈み釣材 */ .global hospac_cre_ctx_asm /* 悸乖コンテキストの侯喇 */ .global hospac_swi_ctx /* 悸乖コンテキストの磊侖 *//************************************************ 充り哈み敦賄 void hospac_dis_int(void)************************************************//* ステ〖タスˇレジスタのIEビットを0にする */ .text .align 2hospac_dis_int: mfc0 t0, CP0_STATUS /* CP0レジスタをロ〖ド */ la t1, 0xfffffffe /* IE=0 */ and t0, t0, t1 mtc0 t0, CP0_STATUS /* CP0レジスタをストア */ jr ra nop/************************************************ 充り哈み釣材 void hospac_ena_int(void)************************************************//* ステ〖タスˇレジスタのIEビットを1にする */ .text .align 2hospac_ena_int: mfc0 t0, CP0_STATUS /* CP0レジスタをロ〖ド */ la t1, 0x00000001 /* IE=1 */ or t0, t0, t1 mtc0 t0, CP0_STATUS /* CP0レジスタをストア */ jr ra nop/************************************************ 悸乖コンテキストエントリ〖アドレス************************************************/ .text .align 2ctx_entry: j a1 /* 悸乖アドレスa1にジャンプ。a0が悸乖箕パラメ〖タ */ nop/************************************************ 悸乖コンテキストの侯喇 void hospac_cre_ctx_asm( T_HOSPAC_CTXINF *pk_ctxinf, 侯喇するコンテキスト VP sp, スタックポインタ void (*task)(VP_INT), 悸乖アドレス VP_INT exinf) 悸乖箕パラメ〖タ************************************************/ .text .align 2hospac_cre_ctx_asm: move k0, a1 /* スタックポインタを鑼閏 */ subu a1, a1, SF_SIZE /* スタックの凱磨∈4*72=288バイト∷*/// sw a2, 4*5(a1) /* 悸乖アドレスの呈羌 */ sw a3, 4*4(a1) /* 悸乖パラメ〖タの呈羌 */ sw k0, 4*29(a1) /* スタックポインタの肋年 */#if 0 la k0, ctx_entry /* 悸乖エントリポイントをリタ〖ンアドレスに肋年 */ sw k0, 4*31(a1)#else sw a2, 4*31(a1)#endif mfc0 k0, CP0_STATUS /* CP0_STATUSを鑼閏 */ sw k0, 4*36(a1) sw a1, (a0) /* コンテキストのスタックポインタ瘦賂 */ jr ra /* 鈣び叫し傅へ耽る */ nop/************************************************ 悸乖コンテキストの磊侖 void hospac_swi_ctx( T_HOSPAC_CTXINF *pk_pre_ctxinf, 附哼のコンテキストの瘦賂黎 T_HOSPAC_CTXINF *pk_nxt_ctxinf) 磊り侖えるコンテキスト************************************************/ .text .align 2hospac_swi_ctx: move k0, sp /* 凱磨漣のスタックポインタを鑼閏 */ subu sp, sp, SF_SIZE /* スタックを凱磨 */#if 0 sw $0, 4*0(sp) /* zero を鑼閏∈澀妥なし∷*/ .set noat sw $1, 4*1(sp) /* at を鑼閏 */#endif sw $2, 4*2(sp) /* v0 を鑼閏 */ sw $3, 4*3(sp) /* v1 を鑼閏 */ sw $4, 4*4(sp) /* a0 を鑼閏 */ sw $5, 4*5(sp) /* a1 を鑼閏 */ sw $6, 4*6(sp) /* a2 を鑼閏 */ sw $7, 4*7(sp) /* a3 を鑼閏 */ sw $8, 4*8(sp) /* t0 を鑼閏 */ sw $9, 4*9(sp) /* t1 を鑼閏 */ sw $10, 4*10(sp) /* t2 を鑼閏 */ sw $11, 4*11(sp) /* t3 を鑼閏 */ sw $12, 4*12(sp) /* t4 を鑼閏 */ sw $13, 4*13(sp) /* t5 を鑼閏 */ sw $14, 4*14(sp) /* t6 を鑼閏 */ sw $15, 4*15(sp) /* t7 を鑼閏 */ sw $16, 4*16(sp) /* s0 を鑼閏 */ sw $17, 4*17(sp) /* s1 を鑼閏 */ sw $18, 4*18(sp) /* s2 を鑼閏 */ sw $19, 4*19(sp) /* s3 を鑼閏 */ sw $20, 4*20(sp) /* s4 を鑼閏 */ sw $21, 4*21(sp) /* s5 を鑼閏 */ sw $22, 4*22(sp) /* s6 を鑼閏 */ sw $23, 4*23(sp) /* s7 を鑼閏 */ sw $24, 4*24(sp) /* t8 を鑼閏 */ sw $25, 4*25(sp) /* t9 を鑼閏 */ sw $26, 4*26(sp) /* k0 を鑼閏∈澀妥なし々∷*/ sw $27, 4*27(sp) /* k1 を鑼閏∈澀妥なし々∷*/#if 0 sw $28, 4*28(sp) /* gp を鑼閏∈澀妥なし々∷*/#endif sw k0, 4*29(sp) /* sp を鑼閏∈凱磨漣の猛∷*/#if 1 sw $30, 4*30(sp) /* fp を鑼閏∈澀妥なし々∷*/#endif sw $31, 4*31(sp) /* ra を鑼閏 */ sw sp, (a0) /* spを瓷妄撾拌へ鑼閏 */ lw sp, (a1) /* 瓷妄撾拌からspを牲耽 */ lw $2, 4*2(sp) /* v0 を牲耽 */ lw $3, 4*3(sp) /* v1 を牲耽 */ lw $4, 4*4(sp) /* a0 を牲耽 */ lw $5, 4*5(sp) /* a1 を牲耽 */ lw $6, 4*6(sp) /* a2 を牲耽 */ lw $7, 4*7(sp) /* a3 を牲耽 */ lw $8, 4*8(sp) /* t0 を牲耽 */ lw $9, 4*9(sp) /* t1 を牲耽 */ lw $10, 4*10(sp) /* t2 を牲耽 */ lw $11, 4*11(sp) /* t3 を牲耽 */ lw $12, 4*12(sp) /* t4 を牲耽 */ lw $13, 4*13(sp) /* t5 を牲耽 */ lw $14, 4*14(sp) /* t6 を牲耽 */ lw $15, 4*15(sp) /* t7 を牲耽 */ lw $16, 4*16(sp) /* s0 を牲耽 */ lw $17, 4*17(sp) /* s1 を牲耽 */ lw $18, 4*18(sp) /* s2 を牲耽 */ lw $19, 4*19(sp) /* s3 を牲耽 */ lw $20, 4*20(sp) /* s4 を牲耽 */ lw $21, 4*21(sp) /* s5 を牲耽 */ lw $22, 4*22(sp) /* s6 を牲耽 */ lw $23, 4*23(sp) /* s7 を牲耽 */ lw $24, 4*24(sp) /* t8 を牲耽 */ lw $25, 4*25(sp) /* t9 を牲耽 */ lw $26, 4*26(sp) /* k0 を牲耽∈澀妥なし々∷*/ lw $27, 4*27(sp) /* k1 を牲耽∈澀妥なし々∷*/#if 0 lw $28, 4*28(sp) /* gp を牲耽∈澀妥なし々∷*/#endif lw $30, 4*30(sp) /* fp を牲耽∈澀妥なし々∷*/ lw $31, 4*31(sp) /* ra を牲耽 */ lw $29, 4*29(sp) /* sp を牲耽 */ jr ra /* コンテキストへジャンプ */ nop/* ------------------------------------------------------------------------ *//* Copyright (C) 1998-2002 by Project HOS *//* ------------------------------------------------------------------------ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -