Ignore:
Timestamp:
2008-03-15T12:21:09Z (17 years ago)
Author:
Josef Cejka <malyzelenyhnus@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ca21eb4b
Parents:
8476a8d
Message:

Context saving/restoring macros used for mips32.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/mips32/include/context_offset.h

    r8476a8d r308cdd1  
    4242#define OFFSET_S8      0x28
    4343#define OFFSET_GP      0x2c
     44
     45#ifdef KERNEL
     46# define OFFSET_IPL     0x30
     47#else
     48# define OFFSET_TLS     0x30
     49
     50# define OFFSET_F20     0x34
     51# define OFFSET_F21     0x38
     52# define OFFSET_F22     0x3c
     53# define OFFSET_F23     0x40
     54# define OFFSET_F24     0x44
     55# define OFFSET_F25     0x48
     56# define OFFSET_F26     0x4c
     57# define OFFSET_F27     0x50
     58# define OFFSET_F28     0x54
     59# define OFFSET_F29     0x58
     60# define OFFSET_F30     0x5c
     61#endif /* KERNEL */
    4462
    4563/* istate_t */
     
    8098#define REGISTER_SPACE 136
    8199
     100#ifdef __ASM__
     101
     102#include <arch/asm/regname.h>
     103
     104# ctx: address of the structure with saved context
     105.macro CONTEXT_SAVE_ARCH_CORE ctx:req
     106        sw $s0,OFFSET_S0(\ctx)
     107        sw $s1,OFFSET_S1(\ctx)
     108        sw $s2,OFFSET_S2(\ctx)
     109        sw $s3,OFFSET_S3(\ctx)
     110        sw $s4,OFFSET_S4(\ctx)
     111        sw $s5,OFFSET_S5(\ctx)
     112        sw $s6,OFFSET_S6(\ctx)
     113        sw $s7,OFFSET_S7(\ctx)
     114        sw $s8,OFFSET_S8(\ctx)
     115        sw $gp,OFFSET_GP(\ctx)
     116
     117#ifndef KERNEL         
     118        sw $k1,OFFSET_TLS(\ctx)
     119
     120# ifdef CONFIG_MIPS_FPU
     121        mfc1 $t0,$20
     122        sw $t0, OFFSET_F20(\ctx)
     123
     124        mfc1 $t0,$21
     125        sw $t0, OFFSET_F21(\ctx)
     126
     127        mfc1 $t0,$22
     128        sw $t0, OFFSET_F22(\ctx)
     129
     130        mfc1 $t0,$23
     131        sw $t0, OFFSET_F23(\ctx)
     132
     133        mfc1 $t0,$24
     134        sw $t0, OFFSET_F24(\ctx)
     135
     136        mfc1 $t0,$25
     137        sw $t0, OFFSET_F25(\ctx)
     138
     139        mfc1 $t0,$26
     140        sw $t0, OFFSET_F26(\ctx)
     141
     142        mfc1 $t0,$27
     143        sw $t0, OFFSET_F27(\ctx)
     144
     145        mfc1 $t0,$28
     146        sw $t0, OFFSET_F28(\ctx)
     147
     148        mfc1 $t0,$29
     149        sw $t0, OFFSET_F29(\ctx)
     150       
     151        mfc1 $t0,$30
     152        sw $t0, OFFSET_F30(\ctx)
     153# endif /* CONFIG_MIPS_FPU */   
     154#endif /* KERNEL */
     155
     156        sw $ra,OFFSET_PC(\ctx)
     157        sw $sp,OFFSET_SP(\ctx)
     158.endm
     159
     160# ctx: address of the structure with saved context
     161.macro CONTEXT_RESTORE_ARCH_CORE ctx:req
     162        lw $s0,OFFSET_S0(\ctx)
     163        lw $s1,OFFSET_S1(\ctx)
     164        lw $s2,OFFSET_S2(\ctx)
     165        lw $s3,OFFSET_S3(\ctx)
     166        lw $s4,OFFSET_S4(\ctx)
     167        lw $s5,OFFSET_S5(\ctx)
     168        lw $s6,OFFSET_S6(\ctx)
     169        lw $s7,OFFSET_S7(\ctx)
     170        lw $s8,OFFSET_S8(\ctx)
     171        lw $gp,OFFSET_GP(\ctx)
     172#ifndef KERNEL
     173        lw $k1,OFFSET_TLS(\ctx)
     174
     175# ifdef CONFIG_MIPS_FPU
     176        lw $t0, OFFSET_F20(\ctx)
     177        mtc1 $t0,$20
     178
     179        lw $t0, OFFSET_F21(\ctx)
     180        mtc1 $t0,$21
     181
     182        lw $t0, OFFSET_F22(\ctx)
     183        mtc1 $t0,$22
     184
     185        lw $t0, OFFSET_F23(\ctx)
     186        mtc1 $t0,$23
     187
     188        lw $t0, OFFSET_F24(\ctx)
     189        mtc1 $t0,$24
     190
     191        lw $t0, OFFSET_F25(\ctx)
     192        mtc1 $t0,$25
     193
     194        lw $t0, OFFSET_F26(\ctx)
     195        mtc1 $t0,$26
     196
     197        lw $t0, OFFSET_F27(\ctx)
     198        mtc1 $t0,$27
     199
     200        lw $t0, OFFSET_F28(\ctx)
     201        mtc1 $t0,$28
     202
     203        lw $t0, OFFSET_F29(\ctx)
     204        mtc1 $t0,$29
     205
     206        lw $t0, OFFSET_F30(\ctx)
     207        mtc1 $t0,$30
     208# endif /* CONFIG_MIPS_FPU */
     209       
     210#endif /* KERNEL */
     211        lw $ra,OFFSET_PC(\ctx)
     212        lw $sp,OFFSET_SP(\ctx)
     213.endm
     214
    82215#endif
     216
     217
     218#endif
Note: See TracChangeset for help on using the changeset viewer.