Changeset 26346bd in mainline for boot/arch/mips32/src/asm.S
- Timestamp:
- 2013-03-30T18:26:17Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 582f4d28
- Parents:
- 0ca441c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.