]> code.delx.au - pulseaudio/commitdiff
core: Document ARM-optimised svolume code a bit
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Thu, 18 Oct 2012 05:12:48 +0000 (10:42 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Fri, 19 Oct 2012 14:14:10 +0000 (19:44 +0530)
src/pulsecore/svolume_arm.c

index 92b05a42c7e574b844d7cf92f0e15370e11ca4c1..b5ccc67b6b2ddb5776c41ce6d5ea38aa12de3d61 100644 (file)
@@ -50,19 +50,19 @@ static void pa_volume_s16ne_arm(int16_t *samples, const int32_t *volumes, unsign
     ve = volumes + channels;
 
     __asm__ __volatile__ (
-        " mov r6, %1                      \n\t"
+        " mov r6, %1                      \n\t" /* r6 = volumes */
         " mov %3, %3, LSR #1              \n\t" /* length /= sizeof (int16_t) */
         " tst %3, #1                      \n\t" /* check for odd samples */
         " beq  2f                         \n\t"
 
-        "1:                               \n\t"
-        " ldr  r0, [r6], #4               \n\t" /* odd samples volumes */
-        " ldrh r2, [%0]                   \n\t"
+        "1:                               \n\t" /* odd samples volumes */
+        " ldr  r0, [r6], #4               \n\t" /* r0 = volume */
+        " ldrh r2, [%0]                   \n\t" /* r2 = sample */
 
-        " smulwb r0, r0, r2               \n\t"
-        " ssat r0, #16, r0                \n\t"
+        " smulwb r0, r0, r2               \n\t" /* r0 = (r0 * r2) >> 16 */
+        " ssat r0, #16, r0                \n\t" /* r0 = PA_CLAMP(r0, 0x7FFF) */
 
-        " strh r0, [%0], #2               \n\t"
+        " strh r0, [%0], #2               \n\t" /* sample = r0 */
 
         MOD_INC()