All pastes #390736 Raw Edit

Someone

public text v1 · immutable
#390736 ·published 2007-03-11 17:21 UTC
rendered paste body
        "ldr r10, [r9], #4    \n\t" /* load two samples */
#ifdef HAVE_AS3514
        /* The AS3514 reads 3 bytes at a time, it seems, ignoring the lowest.
        This code seems to work well, but we may have to mask off the extra
        bits - at the expense of a few extra cycles in the FIQ */
        "mov r10, r10, ror #2\n\t" /* put left sample at the top bits */
        "str r10, [r12, #0x40]\n\t" /* write top sample, lower sample ignored */
        "mov r10, r10, ror #16\n\t" /* put left sample at the top bits */
        "str r10, [r12, #0x40]\n\t" /* then write it */
#else
        "mov r10, r10, ror #16\n\t" /* put left sample at the top bits */
        "str r10, [r12, #0x40]\n\t" /* write top sample, lower sample ignored */
        "mov r10, r10, lsl #16\n\t" /* shift lower sample up */
        "str r10, [r12, #0x40]\n\t" /* then write it */
#endif
        "subs r8, r8, #4      \n\t" /* check if we have more samples */