Changes in uspace/lib/c/arch/mips32/src/fibril.S [9d58539:0407636] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/mips32/src/fibril.S
r9d58539 r0407636 32 32 .set noreorder 33 33 34 #include <libarch/context_offset.h> 34 #include <abi/asmtool.h> 35 #include <libarch/fibril_context.h> 35 36 36 .global context_save 37 .global context_restore 38 39 context_save: 40 CONTEXT_SAVE_ARCH_CORE $a0 37 FUNCTION_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) 41 88 42 89 # context_save returns 1 43 90 j $ra 44 91 li $v0, 1 92 FUNCTION_END(context_save) 45 93 46 context_restore: 47 CONTEXT_RESTORE_ARCH_CORE $a0 94 FUNCTION_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) 48 144 49 145 # Just for the jump into first function, … … 54 150 j $ra 55 151 xor $v0, $v0 152 FUNCTION_END(context_restore)
Note:
See TracChangeset
for help on using the changeset viewer.