Changeset a5c78a18 in mainline for uspace/lib/c/arch/mips32
- Timestamp:
- 2019-02-03T14:35:44Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b4f1171
- Parents:
- 67ca359
- Location:
- uspace/lib/c/arch/mips32
- Files:
-
- 2 edited
-
include/libarch/fibril_context.h (modified) (3 diffs)
-
src/fibril.S (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/mips32/include/libarch/fibril_context.h
r67ca359 ra5c78a18 30 30 #define LIBC_ARCH_FIBRIL_CONTEXT_H_ 31 31 32 #define CONTEXT_OFFSET_SP 0x0033 #define CONTEXT_OFFSET_PC 0x0434 #define CONTEXT_OFFSET_S0 0x0835 #define CONTEXT_OFFSET_S1 0x0c36 #define CONTEXT_OFFSET_S2 0x1037 #define CONTEXT_OFFSET_S3 0x1438 #define CONTEXT_OFFSET_S4 0x1839 #define CONTEXT_OFFSET_S5 0x1c40 #define CONTEXT_OFFSET_S6 0x2041 #define CONTEXT_OFFSET_S7 0x2442 #define CONTEXT_OFFSET_S8 0x2843 #define CONTEXT_OFFSET_GP 0x2c44 #define CONTEXT_OFFSET_TLS 0x3045 #define CONTEXT_OFFSET_F20 0x3446 #define CONTEXT_OFFSET_F21 0x3847 #define CONTEXT_OFFSET_F22 0x3c48 #define CONTEXT_OFFSET_F23 0x4049 #define CONTEXT_OFFSET_F24 0x4450 #define CONTEXT_OFFSET_F25 0x4851 #define CONTEXT_OFFSET_F26 0x4c52 #define CONTEXT_OFFSET_F27 0x5053 #define CONTEXT_OFFSET_F28 0x5454 #define CONTEXT_OFFSET_F29 0x5855 #define CONTEXT_OFFSET_F30 0x5c56 #define CONTEXT_SIZE 0x6032 #define __CONTEXT_OFFSET_SP 0x00 33 #define __CONTEXT_OFFSET_PC 0x04 34 #define __CONTEXT_OFFSET_S0 0x08 35 #define __CONTEXT_OFFSET_S1 0x0c 36 #define __CONTEXT_OFFSET_S2 0x10 37 #define __CONTEXT_OFFSET_S3 0x14 38 #define __CONTEXT_OFFSET_S4 0x18 39 #define __CONTEXT_OFFSET_S5 0x1c 40 #define __CONTEXT_OFFSET_S6 0x20 41 #define __CONTEXT_OFFSET_S7 0x24 42 #define __CONTEXT_OFFSET_S8 0x28 43 #define __CONTEXT_OFFSET_GP 0x2c 44 #define __CONTEXT_OFFSET_TLS 0x30 45 #define __CONTEXT_OFFSET_F20 0x34 46 #define __CONTEXT_OFFSET_F21 0x38 47 #define __CONTEXT_OFFSET_F22 0x3c 48 #define __CONTEXT_OFFSET_F23 0x40 49 #define __CONTEXT_OFFSET_F24 0x44 50 #define __CONTEXT_OFFSET_F25 0x48 51 #define __CONTEXT_OFFSET_F26 0x4c 52 #define __CONTEXT_OFFSET_F27 0x50 53 #define __CONTEXT_OFFSET_F28 0x54 54 #define __CONTEXT_OFFSET_F29 0x58 55 #define __CONTEXT_OFFSET_F30 0x5c 56 #define __CONTEXT_SIZE 0x60 57 57 58 58 #ifndef __ASSEMBLER__ … … 61 61 #include <stdint.h> 62 62 63 typedef struct context {63 typedef struct __context { 64 64 uint32_t sp; 65 65 uint32_t pc; … … 87 87 uint32_t f29; 88 88 uint32_t f30; 89 } context_t;89 } __context_t; 90 90 91 91 #endif -
uspace/lib/c/arch/mips32/src/fibril.S
r67ca359 ra5c78a18 36 36 37 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)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 89 # __setjmp returns 0 … … 93 93 94 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)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,
Note:
See TracChangeset
for help on using the changeset viewer.
