Changeset ab936440 in mainline for uspace/lib/c/arch/mips32/src/fibril.S
- Timestamp:
- 2019-02-12T20:42:42Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f31ca47
- Parents:
- 7f7817a9 (diff), 4805495 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - git-author:
- Matthieu Riolo <matthieu.riolo@…> (2019-02-12 20:26:18)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2019-02-12 20:42:42)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/mips32/src/fibril.S
r7f7817a9 rab936440 35 35 #include <libarch/fibril_context.h> 36 36 37 FUNCTION_BEGIN(__ setjmp)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)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 48 49 sw $k1, CONTEXT_OFFSET_TLS($a0)49 sw $k1, __CONTEXT_OFFSET_TLS($a0) 50 50 51 51 #ifdef CONFIG_FPU 52 52 mfc1 $t0, $20 53 sw $t0, CONTEXT_OFFSET_F20($a0)53 sw $t0, __CONTEXT_OFFSET_F20($a0) 54 54 55 55 mfc1 $t0, $21 56 sw $t0, CONTEXT_OFFSET_F21($a0)56 sw $t0, __CONTEXT_OFFSET_F21($a0) 57 57 58 58 mfc1 $t0, $22 59 sw $t0, CONTEXT_OFFSET_F22($a0)59 sw $t0, __CONTEXT_OFFSET_F22($a0) 60 60 61 61 mfc1 $t0, $23 62 sw $t0, CONTEXT_OFFSET_F23($a0)62 sw $t0, __CONTEXT_OFFSET_F23($a0) 63 63 64 64 mfc1 $t0, $24 65 sw $t0, CONTEXT_OFFSET_F24($a0)65 sw $t0, __CONTEXT_OFFSET_F24($a0) 66 66 67 67 mfc1 $t0, $25 68 sw $t0, CONTEXT_OFFSET_F25($a0)68 sw $t0, __CONTEXT_OFFSET_F25($a0) 69 69 70 70 mfc1 $t0, $26 71 sw $t0, CONTEXT_OFFSET_F26($a0)71 sw $t0, __CONTEXT_OFFSET_F26($a0) 72 72 73 73 mfc1 $t0, $27 74 sw $t0, CONTEXT_OFFSET_F27($a0)74 sw $t0, __CONTEXT_OFFSET_F27($a0) 75 75 76 76 mfc1 $t0, $28 77 sw $t0, CONTEXT_OFFSET_F28($a0)77 sw $t0, __CONTEXT_OFFSET_F28($a0) 78 78 79 79 mfc1 $t0, $29 80 sw $t0, CONTEXT_OFFSET_F29($a0)80 sw $t0, __CONTEXT_OFFSET_F29($a0) 81 81 82 82 mfc1 $t0, $30 83 sw $t0, CONTEXT_OFFSET_F30($a0)83 sw $t0, __CONTEXT_OFFSET_F30($a0) 84 84 #endif /* CONFIG_FPU */ 85 85 86 sw $ra, CONTEXT_OFFSET_PC($a0)87 sw $sp, CONTEXT_OFFSET_SP($a0)86 sw $ra, __CONTEXT_OFFSET_PC($a0) 87 sw $sp, __CONTEXT_OFFSET_SP($a0) 88 88 89 # __ setjmpreturns 089 # __context_save returns 0 90 90 j $ra 91 91 li $v0, 0 92 FUNCTION_END(__ setjmp)92 FUNCTION_END(__context_save) 93 93 94 FUNCTION_BEGIN(__ longjmp)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)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 106 107 107 #ifdef CONFIG_FPU 108 lw $t0, CONTEXT_OFFSET_F20($a0)108 lw $t0, __CONTEXT_OFFSET_F20($a0) 109 109 mtc1 $t0, $20 110 110 111 lw $t0, CONTEXT_OFFSET_F21($a0)111 lw $t0, __CONTEXT_OFFSET_F21($a0) 112 112 mtc1 $t0, $21 113 113 114 lw $t0, CONTEXT_OFFSET_F22($a0)114 lw $t0, __CONTEXT_OFFSET_F22($a0) 115 115 mtc1 $t0, $22 116 116 117 lw $t0, CONTEXT_OFFSET_F23($a0)117 lw $t0, __CONTEXT_OFFSET_F23($a0) 118 118 mtc1 $t0, $23 119 119 120 lw $t0, CONTEXT_OFFSET_F24($a0)120 lw $t0, __CONTEXT_OFFSET_F24($a0) 121 121 mtc1 $t0, $24 122 122 123 lw $t0, CONTEXT_OFFSET_F25($a0)123 lw $t0, __CONTEXT_OFFSET_F25($a0) 124 124 mtc1 $t0, $25 125 125 126 lw $t0, CONTEXT_OFFSET_F26($a0)126 lw $t0, __CONTEXT_OFFSET_F26($a0) 127 127 mtc1 $t0, $26 128 128 129 lw $t0, CONTEXT_OFFSET_F27($a0)129 lw $t0, __CONTEXT_OFFSET_F27($a0) 130 130 mtc1 $t0, $27 131 131 132 lw $t0, CONTEXT_OFFSET_F28($a0)132 lw $t0, __CONTEXT_OFFSET_F28($a0) 133 133 mtc1 $t0, $28 134 134 135 lw $t0, CONTEXT_OFFSET_F29($a0)135 lw $t0, __CONTEXT_OFFSET_F29($a0) 136 136 mtc1 $t0, $29 137 137 138 lw $t0, CONTEXT_OFFSET_F30($a0)138 lw $t0, __CONTEXT_OFFSET_F30($a0) 139 139 mtc1 $t0, $30 140 140 #endif /* CONFIG_FPU */ 141 141 142 lw $ra, CONTEXT_OFFSET_PC($a0)143 lw $sp, CONTEXT_OFFSET_SP($a0)142 lw $ra, __CONTEXT_OFFSET_PC($a0) 143 lw $sp, __CONTEXT_OFFSET_SP($a0) 144 144 145 145 # Just for the jump into first function, … … 147 147 move $t9, $ra 148 148 149 # __ longjmpreturns second argument149 # __context_restore returns second argument 150 150 j $ra 151 151 move $v0, $a1 152 FUNCTION_END(__ longjmp)152 FUNCTION_END(__context_restore)
Note:
See TracChangeset
for help on using the changeset viewer.