diff options
Diffstat (limited to 'apps/plugins/mpegplayer/idct_arm.S')
-rw-r--r-- | apps/plugins/mpegplayer/idct_arm.S | 69 |
1 files changed, 34 insertions, 35 deletions
diff --git a/apps/plugins/mpegplayer/idct_arm.S b/apps/plugins/mpegplayer/idct_arm.S index 7de2d7f881..3cb1554de2 100644 --- a/apps/plugins/mpegplayer/idct_arm.S +++ b/apps/plugins/mpegplayer/idct_arm.S | |||
@@ -268,7 +268,7 @@ | |||
268 | bx lr | 268 | bx lr |
269 | 269 | ||
270 | mpeg2_idct_copy: | 270 | mpeg2_idct_copy: |
271 | stmfd sp!, { r1-r2, r4-r12, lr } | 271 | stmfd sp!, { r1-r2, r4-r11, lr } |
272 | bl .idct | 272 | bl .idct |
273 | ldmfd sp!, { r1-r2 } | 273 | ldmfd sp!, { r1-r2 } |
274 | mov r11, #0 | 274 | mov r11, #0 |
@@ -313,7 +313,7 @@ mpeg2_idct_copy: | |||
313 | add r1, r1, r2 | 313 | add r1, r1, r2 |
314 | cmp r0, r12 | 314 | cmp r0, r12 |
315 | blo 1b | 315 | blo 1b |
316 | ldmfd sp!, { r4-r12, pc } | 316 | ldmfd sp!, { r4-r11, pc } |
317 | 317 | ||
318 | mpeg2_idct_add: | 318 | mpeg2_idct_add: |
319 | cmp r0, #129 | 319 | cmp r0, #129 |
@@ -324,7 +324,7 @@ mpeg2_idct_add: | |||
324 | cmp r1, #0x40 | 324 | cmp r1, #0x40 |
325 | bne 3f | 325 | bne 3f |
326 | 1: | 326 | 1: |
327 | stmfd sp!, { r2-r12, lr } | 327 | stmfd sp!, { r2-r11, lr } |
328 | bl .idct | 328 | bl .idct |
329 | ldmfd sp!, { r1-r2 } | 329 | ldmfd sp!, { r1-r2 } |
330 | mov r11, #0 | 330 | mov r11, #0 |
@@ -385,24 +385,20 @@ mpeg2_idct_add: | |||
385 | add r1, r1, r2 | 385 | add r1, r1, r2 |
386 | cmp r0, r12 | 386 | cmp r0, r12 |
387 | blo 2b | 387 | blo 2b |
388 | ldmfd sp!, { r4-r12, pc } | 388 | ldmfd sp!, { r4-r11, pc } |
389 | 3: | 389 | 3: |
390 | stmfd sp!, { r4-r11 } | 390 | stmfd sp!, { r4-r6, lr } |
391 | ldrsh r1, [r0, #0] /* r1 = block[0] */ | 391 | ldrsh r1, [r0, #0] /* r1 = block[0] */ |
392 | mov r11, #0 | 392 | mov r4, #0 |
393 | strh r11, [r0, #0] /* block[0] = 0 */ | 393 | strh r4, [r0, #0] /* block[0] = 0 */ |
394 | strh r11, [r0, #126] /* block[63] = 0 */ | 394 | strh r4, [r0, #126] /* block[63] = 0 */ |
395 | add r1, r1, #64 /* r1 = DC << 7 */ | 395 | add r1, r1, #64 /* r1 = DC << 7 */ |
396 | add r0, r2, r3, asl #3 | 396 | add r0, r2, r3, asl #3 |
397 | 4: | 397 | 4: |
398 | ldrb r4, [r2, #0] | 398 | ldrb r4, [r2, #0] |
399 | ldrb r5, [r2, #1] | 399 | ldrb r5, [r2, #1] |
400 | ldrb r6, [r2, #2] | 400 | ldrb r6, [r2, #2] |
401 | ldrb r7, [r2, #3] | 401 | ldrb lr, [r2, #3] |
402 | ldrb r8, [r2, #4] | ||
403 | ldrb r9, [r2, #5] | ||
404 | ldrb r10, [r2, #6] | ||
405 | ldrb r11, [r2, #7] | ||
406 | add r4, r4, r1, asr #7 | 402 | add r4, r4, r1, asr #7 |
407 | cmp r4, #255 | 403 | cmp r4, #255 |
408 | mvnhi r4, r4, asr #31 | 404 | mvnhi r4, r4, asr #31 |
@@ -415,28 +411,31 @@ mpeg2_idct_add: | |||
415 | cmp r6, #255 | 411 | cmp r6, #255 |
416 | mvnhi r6, r6, asr #31 | 412 | mvnhi r6, r6, asr #31 |
417 | strb r6, [r2, #2] | 413 | strb r6, [r2, #2] |
418 | add r7, r7, r1, asr #7 | 414 | add lr, lr, r1, asr #7 |
419 | cmp r7, #255 | 415 | cmp lr, #255 |
420 | mvnhi r7, r7, asr #31 | 416 | mvnhi lr, lr, asr #31 |
421 | strb r7, [r2, #3] | 417 | strb lr, [r2, #3] |
422 | add r8, r8, r1, asr #7 | 418 | ldrb r4, [r2, #4] |
423 | cmp r8, #255 | 419 | ldrb r5, [r2, #5] |
424 | mvnhi r8, r8, asr #31 | 420 | ldrb r6, [r2, #6] |
425 | strb r8, [r2, #4] | 421 | ldrb lr, [r2, #7] |
426 | add r9, r9, r1, asr #7 | 422 | add r4, r4, r1, asr #7 |
427 | cmp r9, #255 | 423 | cmp r4, #255 |
428 | mvnhi r9, r9, asr #31 | 424 | mvnhi r4, r4, asr #31 |
429 | strb r9, [r2, #5] | 425 | strb r4, [r2, #4] |
430 | add r10, r10, r1, asr #7 | 426 | add r5, r5, r1, asr #7 |
431 | cmp r10, #255 | 427 | cmp r5, #255 |
432 | mvnhi r10, r10, asr #31 | 428 | mvnhi r5, r5, asr #31 |
433 | strb r10, [r2, #6] | 429 | strb r5, [r2, #5] |
434 | add r11, r11, r1, asr #7 | 430 | add r6, r6, r1, asr #7 |
435 | cmp r11, #255 | 431 | cmp r6, #255 |
436 | mvnhi r11, r11, asr #31 | 432 | mvnhi r6, r6, asr #31 |
437 | strb r11, [r2, #7] | 433 | strb r6, [r2, #6] |
434 | add lr, lr, r1, asr #7 | ||
435 | cmp lr, #255 | ||
436 | mvnhi lr, lr, asr #31 | ||
437 | strb lr, [r2, #7] | ||
438 | add r2, r2, r3 | 438 | add r2, r2, r3 |
439 | cmp r2, r0 | 439 | cmp r2, r0 |
440 | blo 4b | 440 | blo 4b |
441 | ldmfd sp!, { r4-r11 } | 441 | ldmfd sp!, { r4-r6, pc } |
442 | bx lr | ||