// This assembler file contains instructions like ssax
// that were not assembled properly with NDKr5b's gas version.

.align  2
armSP_FFTFwd_CToC_SC16_Radix4_fs_OutOfPlace_unsafe:
push    {r4, lr}
sub     sp, sp, #32     @ 0x20
mov     ip, #4  @ 0x4
lsr     lr, r6, #2
str     ip, [sp, #4]
str     lr, [sp]
str     r5, [sp, #16]
lsl     ip, lr, #2
lsl     r3, lr, #3
add     r3, r3, ip
rsb     r3, r3, #8      @ 0x8
str     r1, [sp, #20]
ldrd    r4, r5, [r0], ip
ldrd    r6, r7, [r0], ip
ldrd    r8, r9, [r0], ip
ldrd    sl, fp, [r0], r3
strd    r2, r3, [sp, #8]
subs    lr, lr, #2      @ 0x2
str     lr, [sp, #24]
sadd16  r2, r4, r8
ssub16  r1, r4, r8
sadd16  r3, r6, sl
ssub16  lr, r6, sl
sadd16  r4, r2, r3
ssub16  r8, r2, r3
ssax    r6, r1, lr
sasx sl, r1, lr
sadd16  r2, r5, r9
ssub16  r1, r5, r9
sadd16  r3, r7, fp
ssub16  lr, r7, fp
sadd16  r5, r2, r3
ssub16  r9, r2, r3
ldrd    r2, [sp, #8]
ssax    r7, r1, lr
sasx    fp, r1, lr
strd    r4, r5, [r2], ip
strd    r6, r7, [r2], ip
strd    r8, r9, [r2], ip
strd    sl, fp, [r2], r3
ldr     lr, [sp, #24]
bgt     armSP_FFTFwd_CToC_SC16_Radix4_fs_OutOfPlace_unsafe+0x30
ldrd    r6, [sp]
ldr     r1, [sp, #20]
sub     r0, r2, ip
ldr     r2, [sp, #16]
add     sp, sp, #32     @ 0x20
pop     {r4, pc}
