Changeset 26346bd in mainline
- Timestamp:
- 2013-03-30T18:26:17Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 582f4d28
- Parents:
- 0ca441c
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/mips32/Makefile.inc
r0ca441c r26346bd 50 50 endif 51 51 52 53 52 SOURCES = \ 54 53 arch/$(BARCH)/src/asm.S \ -
boot/arch/mips32/src/asm.S
r0ca441c r26346bd 37 37 .global halt 38 38 .global jump_to_kernel 39 .global memset 40 .global memcpy 39 41 40 42 .section BOOTSTRAP … … 158 160 j $a0 159 161 nop 162 163 memset: 164 move $v0, $a0 165 beqz $a2, 0f 166 addiu $t1, $a2, -1 167 168 negu $t0, $a0 169 andi $t0, $t0, 0x3 170 sltu $v1, $a2, $t0 171 bnez $v1, 1f 172 andi $a1, $a1, 0xff 173 174 7: 175 sltiu $v1, $a2, 4 176 beqz $v1, 2f 177 move $v1, $v0 178 179 move $t0, $a2 180 181 3: 182 sb $a1, 0($v1) 183 addiu $v1, $v1, 1 184 subu $a3, $v1, $v0 185 sltu $a3, $a3, $t0 186 bnez $a3, 3b 187 addiu $t1, $t1, -1 188 189 beq $a2, $t0, 0f 190 subu $a2, $a2, $t0 191 192 8: 193 srl $a0, $a2, 0x2 194 sll $t4, $a0, 0x2 195 beqz $t4, 4f 196 sll $t2, $a1, 0x10 197 198 sll $t3, $a1, 0x8 199 or $t3, $a1, $t3 200 sll $a3, $a1, 0x18 201 or $t3, $t3, $t2 202 or $t3, $t3, $a3 203 addu $t0, $v0, $t0 204 move $a3, $zero 205 206 5: 207 addiu $a3, $a3, 1 208 sltu $t2, $a3, $a0 209 sw $t3, 0($t0) 210 bnez $t2, 5b 211 addiu $t0, $t0, 4 212 213 addu $v1, $v1, $t4 214 beq $a2, $t4, 0f 215 subu $t1, $t1, $t4 216 217 4: 218 addiu $t1, $t1, 1 219 addu $t1, $v1, $t1 220 sb $a1, 0($v1) 221 222 6: 223 addiu $v1, $v1, 1 224 bnel $v1, $t1, 6b 225 sb $a1, 0($v1) 226 227 0: 228 jr $ra 229 nop 230 231 1: 232 j 7b 233 move $t0, $a2 234 235 2: 236 bnez $t0, 3b 237 nop 238 239 j 8b 240 subu $a2, $a2, $t0 241 242 memcpy: 243 move $t2, $a0 /* save dst */ 244 245 addiu $v0, $a1, 3 246 li $v1, -4 /* 0xfffffffffffffffc */ 247 and $v0, $v0, $v1 248 beq $a1, $v0, 3f 249 move $t0, $a0 250 251 0: 252 beq $a2, $zero, 2f 253 move $a3, $zero 254 255 1: 256 addu $v0, $a1, $a3 257 lbu $a0, 0($v0) 258 addu $v1, $t0, $a3 259 addiu $a3, $a3, 1 260 bne $a3, $a2, 1b 261 sb $a0, 0($v1) 262 263 2: 264 jr $ra 265 move $v0, $t2 266 267 3: 268 addiu $v0, $a0, 3 269 and $v0, $v0, $v1 270 bne $a0, $v0, 0b 271 srl $t1, $a2, 2 272 273 beq $t1, $zero, 5f 274 move $a3, $zero 275 276 move $a3, $zero 277 move $a0, $zero 278 279 4: 280 addu $v0, $a1, $a0 281 lw $v1, 0($v0) 282 addiu $a3, $a3, 1 283 addu $v0, $t0, $a0 284 sw $v1, 0($v0) 285 bne $a3, $t1, 4b 286 addiu $a0, $a0, 4 287 288 5: 289 andi $a2, $a2, 0x3 290 beq $a2, $zero, 2b 291 nop 292 293 sll $v0, $a3, 2 294 addu $t1, $v0, $t0 295 move $a3, $zero 296 addu $t0, $v0, $a1 297 298 6: 299 addu $v0, $t0, $a3 300 lbu $a0, 0($v0) 301 addu $v1, $t1, $a3 302 addiu $a3, $a3, 1 303 bne $a3, $a2, 6b 304 sb $a0, 0($v1) 305 306 jr $ra 307 move $v0, $t2 -
boot/generic/include/memstr.h
r0ca441c r26346bd 35 35 #include <typedefs.h> 36 36 37 #define memset(dst, val, cnt) __builtin_memset((dst), (val), (cnt)) 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 37 40 extern void *memmove(void *, const void *, size_t); 38 41 -
kernel/arch/mips32/src/asm.S
r0ca441c r26346bd 57 57 nop 58 58 59 .global memset 60 .global memcpy 59 61 .global memcpy_from_uspace 60 62 .global memcpy_to_uspace 61 63 .global memcpy_from_uspace_failover_address 62 64 .global memcpy_to_uspace_failover_address 65 66 memset: 67 move $v0, $a0 68 beqz $a2, 0f 69 addiu $t1, $a2, -1 70 71 negu $t0, $a0 72 andi $t0, $t0, 0x3 73 sltu $v1, $a2, $t0 74 bnez $v1, 1f 75 andi $a1, $a1, 0xff 76 77 7: 78 sltiu $v1, $a2, 4 79 beqz $v1, 2f 80 move $v1, $v0 81 82 move $t0, $a2 83 84 3: 85 sb $a1, 0($v1) 86 addiu $v1, $v1, 1 87 subu $a3, $v1, $v0 88 sltu $a3, $a3, $t0 89 bnez $a3, 3b 90 addiu $t1, $t1, -1 91 92 beq $a2, $t0, 0f 93 subu $a2, $a2, $t0 94 95 8: 96 srl $a0, $a2, 0x2 97 sll $t4, $a0, 0x2 98 beqz $t4, 4f 99 sll $t2, $a1, 0x10 100 101 sll $t3, $a1, 0x8 102 or $t3, $a1, $t3 103 sll $a3, $a1, 0x18 104 or $t3, $t3, $t2 105 or $t3, $t3, $a3 106 addu $t0, $v0, $t0 107 move $a3, $zero 108 109 5: 110 addiu $a3, $a3, 1 111 sltu $t2, $a3, $a0 112 sw $t3, 0($t0) 113 bnez $t2, 5b 114 addiu $t0, $t0, 4 115 116 addu $v1, $v1, $t4 117 beq $a2, $t4, 0f 118 subu $t1, $t1, $t4 119 120 4: 121 addiu $t1, $t1, 1 122 addu $t1, $v1, $t1 123 sb $a1, 0($v1) 124 125 6: 126 addiu $v1, $v1, 1 127 bnel $v1, $t1, 6b 128 sb $a1, 0($v1) 129 130 0: 131 jr $ra 132 nop 133 134 1: 135 j 7b 136 move $t0, $a2 137 138 2: 139 bnez $t0, 3b 140 nop 141 142 j 8b 143 subu $a2, $a2, $t0 144 145 memcpy: 63 146 memcpy_from_uspace: 64 147 memcpy_to_uspace: -
uspace/lib/c/arch/mips32/Makefile.inc
r0ca441c r26346bd 28 28 29 29 ARCH_SOURCES = \ 30 arch/$(UARCH)/src/asm.S \ 30 31 arch/$(UARCH)/src/entry.S \ 31 32 arch/$(UARCH)/src/entryjmp.S \
Note:
See TracChangeset
for help on using the changeset viewer.