Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/mips32/src/fibril.S

    r9d58539 r0407636  
    3232.set noreorder
    3333
    34 #include <libarch/context_offset.h>
     34#include <abi/asmtool.h>
     35#include <libarch/fibril_context.h>
    3536
    36 .global context_save
    37 .global context_restore
    38 
    39 context_save:
    40         CONTEXT_SAVE_ARCH_CORE $a0
     37FUNCTION_BEGIN(context_save)
     38        sw $s0, CONTEXT_OFFSET_S0($a0)
     39        sw $s1, CONTEXT_OFFSET_S1($a0)
     40        sw $s2, CONTEXT_OFFSET_S2($a0)
     41        sw $s3, CONTEXT_OFFSET_S3($a0)
     42        sw $s4, CONTEXT_OFFSET_S4($a0)
     43        sw $s5, CONTEXT_OFFSET_S5($a0)
     44        sw $s6, CONTEXT_OFFSET_S6($a0)
     45        sw $s7, CONTEXT_OFFSET_S7($a0)
     46        sw $s8, CONTEXT_OFFSET_S8($a0)
     47        sw $gp, CONTEXT_OFFSET_GP($a0)
     48       
     49        sw $k1, CONTEXT_OFFSET_TLS($a0)
     50       
     51#ifdef CONFIG_FPU
     52        mfc1 $t0, $20
     53        sw $t0, CONTEXT_OFFSET_F20($a0)
     54       
     55        mfc1 $t0, $21
     56        sw $t0, CONTEXT_OFFSET_F21($a0)
     57       
     58        mfc1 $t0, $22
     59        sw $t0, CONTEXT_OFFSET_F22($a0)
     60       
     61        mfc1 $t0, $23
     62        sw $t0, CONTEXT_OFFSET_F23($a0)
     63       
     64        mfc1 $t0, $24
     65        sw $t0, CONTEXT_OFFSET_F24($a0)
     66       
     67        mfc1 $t0, $25
     68        sw $t0, CONTEXT_OFFSET_F25($a0)
     69       
     70        mfc1 $t0, $26
     71        sw $t0, CONTEXT_OFFSET_F26($a0)
     72       
     73        mfc1 $t0, $27
     74        sw $t0, CONTEXT_OFFSET_F27($a0)
     75       
     76        mfc1 $t0, $28
     77        sw $t0, CONTEXT_OFFSET_F28($a0)
     78       
     79        mfc1 $t0, $29
     80        sw $t0, CONTEXT_OFFSET_F29($a0)
     81       
     82        mfc1 $t0, $30
     83        sw $t0, CONTEXT_OFFSET_F30($a0)
     84#endif /* CONFIG_FPU */
     85       
     86        sw $ra, CONTEXT_OFFSET_PC($a0)
     87        sw $sp, CONTEXT_OFFSET_SP($a0)
    4188       
    4289        # context_save returns 1
    4390        j $ra
    4491        li $v0, 1
     92FUNCTION_END(context_save)
    4593
    46 context_restore:
    47         CONTEXT_RESTORE_ARCH_CORE $a0
     94FUNCTION_BEGIN(context_restore)
     95        lw $s0, CONTEXT_OFFSET_S0($a0)
     96        lw $s1, CONTEXT_OFFSET_S1($a0)
     97        lw $s2, CONTEXT_OFFSET_S2($a0)
     98        lw $s3, CONTEXT_OFFSET_S3($a0)
     99        lw $s4, CONTEXT_OFFSET_S4($a0)
     100        lw $s5, CONTEXT_OFFSET_S5($a0)
     101        lw $s6, CONTEXT_OFFSET_S6($a0)
     102        lw $s7, CONTEXT_OFFSET_S7($a0)
     103        lw $s8, CONTEXT_OFFSET_S8($a0)
     104        lw $gp, CONTEXT_OFFSET_GP($a0)
     105        lw $k1, CONTEXT_OFFSET_TLS($a0)
     106       
     107#ifdef CONFIG_FPU
     108        lw $t0, CONTEXT_OFFSET_F20($a0)
     109        mtc1 $t0, $20
     110       
     111        lw $t0, CONTEXT_OFFSET_F21($a0)
     112        mtc1 $t0, $21
     113       
     114        lw $t0, CONTEXT_OFFSET_F22($a0)
     115        mtc1 $t0, $22
     116       
     117        lw $t0, CONTEXT_OFFSET_F23($a0)
     118        mtc1 $t0, $23
     119       
     120        lw $t0, CONTEXT_OFFSET_F24($a0)
     121        mtc1 $t0, $24
     122       
     123        lw $t0, CONTEXT_OFFSET_F25($a0)
     124        mtc1 $t0, $25
     125       
     126        lw $t0, CONTEXT_OFFSET_F26($a0)
     127        mtc1 $t0, $26
     128       
     129        lw $t0, CONTEXT_OFFSET_F27($a0)
     130        mtc1 $t0, $27
     131       
     132        lw $t0, CONTEXT_OFFSET_F28($a0)
     133        mtc1 $t0, $28
     134       
     135        lw $t0, CONTEXT_OFFSET_F29($a0)
     136        mtc1 $t0, $29
     137       
     138        lw $t0, CONTEXT_OFFSET_F30($a0)
     139        mtc1 $t0, $30
     140#endif /* CONFIG_FPU */
     141       
     142        lw $ra, CONTEXT_OFFSET_PC($a0)
     143        lw $sp, CONTEXT_OFFSET_SP($a0)
    48144       
    49145        # Just for the jump into first function,
     
    54150        j $ra
    55151        xor $v0, $v0
     152FUNCTION_END(context_restore)
Note: See TracChangeset for help on using the changeset viewer.