1// This assembler file contains instructions like ssax
2// that were not assembler properly with NDKr5b's gas version.
3//
4
5///////        unittest.s  ////////
6@ For little endian
7@.arch armv7a
8
9.align  2
10armSP_FFTFwd_CToC_SC16_Radix4_fs_OutOfPlace_unsafe:
11push    {r4, lr}
12sub     sp, sp, #32     @ 0x20
13mov     ip, #4  @ 0x4
14lsr     lr, r6, #2
15str     ip, [sp, #4]
16str     lr, [sp]
17str     r5, [sp, #16]
18lsl     ip, lr, #2
19lsl     r3, lr, #3
20add     r3, r3, ip
21rsb     r3, r3, #8      @ 0x8
22str     r1, [sp, #20]
23ldrd    r4, [r0], ip
24ldrd    r6, [r0], ip
25ldrd    r8, [r0], ip
26ldrd    sl, [r0], r3
27strd    r2, [sp, #8]
28subs    lr, lr, #2      @ 0x2
29str     lr, [sp, #24]
30sadd16  r2, r4, r8
31ssub16  r1, r4, r8
32sadd16  r3, r6, sl
33ssub16  lr, r6, sl
34sadd16  r4, r2, r3
35ssub16  r8, r2, r3
36ssax    r6, r1, lr
37sasx sl, r1, lr
38sadd16  r2, r5, r9
39ssub16  r1, r5, r9
40sadd16  r3, r7, fp
41ssub16  lr, r7, fp
42sadd16  r5, r2, r3
43ssub16  r9, r2, r3
44ldrd    r2, [sp, #8]
45ssax    r7, r1, lr
46sasx    fp, r1, lr
47strd    r4, [r2], ip
48strd    r6, [r2], ip
49strd    r8, [r2], ip
50strd    sl, [r2], r3
51ldr     lr, [sp, #24]
52bgt     armSP_FFTFwd_CToC_SC16_Radix4_fs_OutOfPlace_unsafe+0x30
53ldrd    r6, [sp]
54ldr     r1, [sp, #20]
55sub     r0, r2, ip
56ldr     r2, [sp, #16]
57add     sp, sp, #32     @ 0x20
58pop     {r4, pc}
59