~ubuntu-branches/ubuntu/trusty/gst-libav1.0/trusty-proposed

« back to all changes in this revision

Viewing changes to gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S

  • Committer: Package Import Robot
  • Author(s): Sebastian Dröge
  • Date: 2013-09-24 17:07:00 UTC
  • mfrom: (1.1.17) (7.1.9 experimental)
  • Revision ID: package-import@ubuntu.com-20130924170700-4dg62s3pwl0pdakz
Tags: 1.2.0-1
* New upstream stable release:
  + debian/control:
    - Build depend on GStreamer and gst-plugins-base >= 1.2.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
19
 */
20
20
 
21
 
#include "asm.S"
 
21
#include "libavutil/arm/asm.S"
22
22
 
23
23
function ff_ac3_bit_alloc_calc_bap_armv6, export=1
24
24
        ldr             r12, [sp]
26
26
        beq             4f
27
27
        push            {r4-r11,lr}
28
28
        add             r5,  sp,  #40
29
 
        movrel          r4,  X(ff_ac3_bin_to_band_tab)
30
 
        movrel          lr,  X(ff_ac3_band_start_tab)
 
29
        movrelx         r4,  X(ff_ac3_bin_to_band_tab), r11
 
30
        movrelx         lr,  X(ff_ac3_band_start_tab)
31
31
        ldm             r5,  {r5-r7}
32
32
        ldrb            r4,  [r4, r2]
33
33
        add             r1,  r1,  r2,  lsl #1           @ psd + start
34
34
        add             r0,  r0,  r4,  lsl #1           @ mask + band
35
 
        add             r4,  lr,  r4
 
35
        add             r4,  r4,  lr
36
36
        add             r7,  r7,  r2                    @ bap + start
37
 
        ldrb            r10, [r4], #1
38
37
1:
39
38
        ldrsh           r9,  [r0], #2                   @ mask[band]
40
39
        mov             r8,  #0xff0
41
40
        sub             r9,  r9,  r12                   @   - snr_offset
42
 
        mov             r11, r10
43
 
        ldrb            r10, [r4], #1                   @ band_start_tab[band++]
 
41
        ldrb            r10, [r4, #1]!                  @ band_start_tab[++band]
44
42
        subs            r9,  r9,  r5                    @   - floor
45
43
        it              lt
46
44
        movlt           r9,  #0
47
45
        cmp             r10, r3                         @   - end
48
46
        and             r9,  r9,  r8, lsl #1            @   & 0x1fe0
49
47
        ite             gt
50
 
        subgt           r8,  r3,  r11
51
 
        suble           r8,  r10, r11
 
48
        subgt           r8,  r3,  r2
 
49
        suble           r8,  r10, r2
 
50
        mov             r2,  r10
52
51
        add             r9,  r9,  r5                    @   + floor => m
53
52
        tst             r8,  #1
54
 
        add             r2,  r7,  r8
 
53
        add             r11, r7,  r8
55
54
        bne             3f
56
55
        b               5f
57
56
2:
65
64
        ldrb            lr,  [r6, lr]
66
65
        strb            r8,  [r7], #1                   @ bap[bin]
67
66
        strb            lr,  [r7], #1
68
 
5:      cmp             r7,  r2
 
67
5:      cmp             r7,  r11
69
68
        blo             2b
70
 
        cmp             r3,  r11
 
69
        cmp             r3,  r10
71
70
        bgt             1b
72
71
        pop             {r4-r11,pc}
73
72
3: