Mercurial > libavcodec.hg
comparison arm/h264idct_neon.S @ 12493:8e7fd2d2193f libavcodec
ARM: fix NEON h264_idct_add8
| author | mru |
|---|---|
| date | Tue, 14 Sep 2010 17:11:51 +0000 |
| parents | ba14e3adeccd |
| children |
comparison
equal
deleted
inserted
replaced
| 12492:58a960d6e34c | 12493:8e7fd2d2193f |
|---|---|
| 148 add r5, r1, #16*4 | 148 add r5, r1, #16*4 |
| 149 add r1, r2, #16*32 | 149 add r1, r2, #16*32 |
| 150 mov r2, r3 | 150 mov r2, r3 |
| 151 ldr r6, [sp, #32] | 151 ldr r6, [sp, #32] |
| 152 movrel r7, scan8+16 | 152 movrel r7, scan8+16 |
| 153 mov ip, #8 | 153 mov ip, #7 |
| 154 1: ldrb r8, [r7], #1 | 154 1: ldrb r8, [r7], #1 |
| 155 ldr r0, [r5], #4 | 155 ldr r0, [r5], #4 |
| 156 ldrb r8, [r6, r8] | 156 ldrb r8, [r6, r8] |
| 157 tst ip, #4 | 157 tst ip, #4 |
| 158 addeq r0, r0, r4 | 158 addne r0, r0, r4 |
| 159 addne r0, r0, r9 | 159 addeq r0, r0, r9 |
| 160 cmp r8, #0 | 160 cmp r8, #0 |
| 161 ldrsh r8, [r1] | 161 ldrsh r8, [r1] |
| 162 adrne lr, ff_h264_idct_add_neon | 162 adrne lr, ff_h264_idct_add_neon |
| 163 adreq lr, ff_h264_idct_dc_add_neon | 163 adreq lr, ff_h264_idct_dc_add_neon |
| 164 cmpeq r8, #0 | 164 cmpeq r8, #0 |
| 165 blxne lr | 165 blxne lr |
| 166 subs ip, ip, #1 | 166 subs ip, ip, #1 |
| 167 add r1, r1, #32 | 167 add r1, r1, #32 |
| 168 bne 1b | 168 bge 1b |
| 169 pop {r4-r10,pc} | 169 pop {r4-r10,pc} |
| 170 endfunc | 170 endfunc |
| 171 | 171 |
| 172 .macro idct8x8_cols pass | 172 .macro idct8x8_cols pass |
| 173 .if \pass == 0 | 173 .if \pass == 0 |
