diff options
-rw-r--r-- | apps/codecs/libatrac/atrac3.c | 2 | ||||
-rw-r--r-- | apps/codecs/libatrac/atrac3_armv5e.S | 98 | ||||
-rw-r--r-- | apps/codecs/libwma/wmadeci.c | 8 |
3 files changed, 54 insertions, 54 deletions
diff --git a/apps/codecs/libatrac/atrac3.c b/apps/codecs/libatrac/atrac3.c index dbc7328c29..22e787d6e3 100644 --- a/apps/codecs/libatrac/atrac3.c +++ b/apps/codecs/libatrac/atrac3.c | |||
@@ -1259,7 +1259,7 @@ int atrac3_decode_init(ATRAC3Context *q, struct mp3entry *id3) | |||
1259 | vlcs_initialized = 1; | 1259 | vlcs_initialized = 1; |
1260 | 1260 | ||
1261 | } | 1261 | } |
1262 | 1262 | ||
1263 | init_atrac3_transforms(); | 1263 | init_atrac3_transforms(); |
1264 | 1264 | ||
1265 | /* init the joint-stereo decoding data */ | 1265 | /* init the joint-stereo decoding data */ |
diff --git a/apps/codecs/libatrac/atrac3_armv5e.S b/apps/codecs/libatrac/atrac3_armv5e.S index 1add5faef5..1d9d35a5da 100644 --- a/apps/codecs/libatrac/atrac3_armv5e.S +++ b/apps/codecs/libatrac/atrac3_armv5e.S | |||
@@ -59,105 +59,105 @@ atrac3_iqmf_dewindowing_armv5e: | |||
59 | /* r1 = input samples */ | 59 | /* r1 = input samples */ |
60 | /* r2 = window coefficients */ | 60 | /* r2 = window coefficients */ |
61 | /* r3 = counter */ | 61 | /* r3 = counter */ |
62 | stmfd sp!, {r4-r11, lr} /* save non-scratch registers */ | 62 | stmfd sp!, {r4-r11, lr} /* save non-scratch registers */ |
63 | 63 | ||
64 | .iqmf_dewindow_outer_loop: /* outer loop 0...counter-1 */ | 64 | .iqmf_dewindow_outer_loop: /* outer loop 0...counter-1 */ |
65 | /* 0.. 7 */ | 65 | /* 0.. 7 */ |
66 | ldmia r2!, {r4, r5, r8, r9} /* load win[0..7] */ | 66 | ldmia r2!, {r4, r5, r8, r9} /* load win[0..7] */ |
67 | ldmia r1!, {r6, r7, r10, r11} /* load in[0..3] to avoid stall on arm11 */ | 67 | ldmia r1!, {r6, r7, r10, r11} /* load in[0..3] to avoid stall on arm11 */ |
68 | smulwb lr, r6, r4 /* s1 = in[0] * win[0] */ | 68 | smulwb lr, r6, r4 /* s1 = in[0] * win[0] */ |
69 | smulwt r12, r7, r4 /* s2 = in[1] * win[1] */ | 69 | smulwt r12, r7, r4 /* s2 = in[1] * win[1] */ |
70 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ | 70 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ |
71 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 71 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
72 | 72 | ||
73 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 73 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
74 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ | 74 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ |
75 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 75 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
76 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ | 76 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ |
77 | smlawt r12, r11, r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 77 | smlawt r12, r11, r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
78 | 78 | ||
79 | /* 8..15 */ | 79 | /* 8..15 */ |
80 | ldmia r2!, {r4, r5, r8, r9} /* load win[8..15] */ | 80 | ldmia r2!, {r4, r5, r8, r9} /* load win[8..15] */ |
81 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 81 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
82 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ | 82 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ |
83 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 83 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
84 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ | 84 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ |
85 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 85 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
86 | 86 | ||
87 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 87 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
88 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ | 88 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ |
89 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 89 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
90 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ | 90 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ |
91 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 91 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
92 | 92 | ||
93 | /* 16..23 */ | 93 | /* 16..23 */ |
94 | ldmia r2!, {r4, r5, r8, r9} /* load win[16..23] */ | 94 | ldmia r2!, {r4, r5, r8, r9} /* load win[16..23] */ |
95 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 95 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
96 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ | 96 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ |
97 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 97 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
98 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ | 98 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ |
99 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 99 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
100 | 100 | ||
101 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 101 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
102 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ | 102 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ |
103 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 103 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
104 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ | 104 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ |
105 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 105 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
106 | 106 | ||
107 | /* 24..31 */ | 107 | /* 24..31 */ |
108 | ldmia r2!, {r4, r5, r8, r9} /* load win[24..31] */ | 108 | ldmia r2!, {r4, r5, r8, r9} /* load win[24..31] */ |
109 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 109 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
110 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ | 110 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ |
111 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 111 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
112 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ | 112 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ |
113 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 113 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
114 | 114 | ||
115 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 115 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
116 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ | 116 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ |
117 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 117 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
118 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ | 118 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ |
119 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 119 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
120 | 120 | ||
121 | /* 32..39 */ | 121 | /* 32..39 */ |
122 | ldmia r2!, {r4, r5, r8, r9} /* load win[32..39] */ | 122 | ldmia r2!, {r4, r5, r8, r9} /* load win[32..39] */ |
123 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 123 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
124 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ | 124 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ |
125 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 125 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
126 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ | 126 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ |
127 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 127 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
128 | 128 | ||
129 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 129 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
130 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ | 130 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ |
131 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 131 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
132 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ | 132 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ |
133 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 133 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
134 | 134 | ||
135 | /* 40..47 */ | 135 | /* 40..47 */ |
136 | ldmia r2!, {r4, r5, r8, r9} /* load win[40..47] */ | 136 | ldmia r2!, {r4, r5, r8, r9} /* load win[40..47] */ |
137 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 137 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
138 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ | 138 | smlawb lr, r6, r4, lr /* s1 += in[i ] * win[i ] >> 16 */ |
139 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 139 | smlawt r12, r7, r4, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
140 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ | 140 | smlawb lr, r10, r5, lr /* s1 += in[i ] * win[i ] >> 16 */ |
141 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 141 | smlawt r12, r11,r5, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
142 | 142 | ||
143 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ | 143 | ldmia r1!, {r6, r7, r10, r11} /* load in[i...i+3] */ |
144 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ | 144 | smlawb lr, r6, r8, lr /* s1 += in[i ] * win[i ] >> 16 */ |
145 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 145 | smlawt r12, r7, r8, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
146 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ | 146 | smlawb lr, r10, r9, lr /* s1 += in[i ] * win[i ] >> 16 */ |
147 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ | 147 | smlawt r12, r11,r9, r12 /* s2 += in[i+1] * win[i+1] >> 16 */ |
148 | 148 | ||
149 | 149 | ||
150 | mov lr , lr , lsl #1 | 150 | mov lr , lr , lsl #1 |
151 | mov r12, r12, lsl #1 | 151 | mov r12, r12, lsl #1 |
152 | 152 | ||
153 | stmia r0!, {r12, lr} /* store result out[0]=s2, out[1]=s1 */ | 153 | stmia r0!, {r12, lr} /* store result out[0]=s2, out[1]=s1 */ |
154 | sub r1, r1, #184 /* roll back 64 entries = 184 bytes */ | 154 | sub r1, r1, #184 /* roll back 64 entries = 184 bytes */ |
155 | sub r2, r2, #96 /* roll back 48 entries * 2 bytes = 96 bytes = win[0] */ | 155 | sub r2, r2, #96 /* roll back 48 entries * 2 bytes = 96 bytes = win[0] */ |
156 | 156 | ||
157 | subs r3, r3, #1 /* outer loop -= 1 */ | 157 | subs r3, r3, #1 /* outer loop -= 1 */ |
158 | bgt .iqmf_dewindow_outer_loop | 158 | bgt .iqmf_dewindow_outer_loop |
159 | 159 | ||
160 | ldmpc regs=r4-r11 /* restore registers */ | 160 | ldmpc regs=r4-r11 /* restore registers */ |
161 | 161 | ||
162 | .atrac3_iqmf_dewindowing_armv5e_end: | 162 | .atrac3_iqmf_dewindowing_armv5e_end: |
163 | .size atrac3_iqmf_dewindowing_armv5e,.atrac3_iqmf_dewindowing_armv5e_end-atrac3_iqmf_dewindowing_armv5e | 163 | .size atrac3_iqmf_dewindowing_armv5e,.atrac3_iqmf_dewindowing_armv5e_end-atrac3_iqmf_dewindowing_armv5e |
diff --git a/apps/codecs/libwma/wmadeci.c b/apps/codecs/libwma/wmadeci.c index f24ac13a0e..9333f19ff1 100644 --- a/apps/codecs/libwma/wmadeci.c +++ b/apps/codecs/libwma/wmadeci.c | |||
@@ -1232,7 +1232,7 @@ static int wma_decode_block(WMADecodeContext *s) | |||
1232 | for(ch = 0; ch < s->nb_channels; ++ch) | 1232 | for(ch = 0; ch < s->nb_channels; ++ch) |
1233 | { | 1233 | { |
1234 | /* BLOCK_MAX_SIZE is 2048 (samples) and MAX_CHANNELS is 2. */ | 1234 | /* BLOCK_MAX_SIZE is 2048 (samples) and MAX_CHANNELS is 2. */ |
1235 | static uint32_t scratch_buf[BLOCK_MAX_SIZE * MAX_CHANNELS] IBSS_ATTR; | 1235 | static uint32_t scratch_buf[BLOCK_MAX_SIZE * MAX_CHANNELS] IBSS_ATTR; |
1236 | if (s->channel_coded[ch]) | 1236 | if (s->channel_coded[ch]) |
1237 | { | 1237 | { |
1238 | int n4, index; | 1238 | int n4, index; |
@@ -1348,9 +1348,9 @@ int wma_decode_superframe_frame(WMADecodeContext* s, | |||
1348 | int done = 0; | 1348 | int done = 0; |
1349 | 1349 | ||
1350 | for(ch = 0; ch < s->nb_channels; ch++) | 1350 | for(ch = 0; ch < s->nb_channels; ch++) |
1351 | memmove(&((*s->frame_out)[ch][0]), | 1351 | memmove(&((*s->frame_out)[ch][0]), |
1352 | &((*s->frame_out)[ch][s->frame_len]), | 1352 | &((*s->frame_out)[ch][s->frame_len]), |
1353 | s->frame_len * sizeof(fixed32)); | 1353 | s->frame_len * sizeof(fixed32)); |
1354 | 1354 | ||
1355 | if ((s->use_bit_reservoir) && (s->current_frame == 0)) | 1355 | if ((s->use_bit_reservoir) && (s->current_frame == 0)) |
1356 | { | 1356 | { |