ne10_radix4_butterfly_float_neon:
- PUSH {r4-r11,lr}
+ PUSH {r4-r12,lr} @push r12: to keep stack 8 bytes aligned
VPUSH {d8-d15}
- SUB sp, sp, #4 @keep stack 8 bytes aligned
qInp1 .qn Q0.F32
qInp2 .qn Q1.F32
fftEnd:
@/* Retureq From Function*/
- ADD sp, sp, #4
VPOP {d8-d15}
- POP {r4-r11,pc}
+ POP {r4-r12,pc}
@/*
@ * @brief Core radix-4 IFFT of floating-point data. Do not call this function directly.
ne10_radix4_butterfly_inverse_float_neon:
- PUSH {r4-r11,lr}
+ PUSH {r4-r12,lr} @push r12: to keep stack 8 bytes aligned
VPUSH {d8-d15}
- SUB sp, sp, #4 @keep stack 8 bytes aligned
qInp1 .qn Q0.F32
qInp2 .qn Q1.F32
VDUP.S32 q8,grpCount
VCVT.F32.S32 q8, q8
VRECPE.F32 q8, q8
+ @LDR grpCount,[sp,#0] @revert the original value
+ @VDUP.f32 q8,grpCount
VMUL qInp1,qInp1,qRe1
VMUL qInp2,qInp2,qRe1
ifftEnd:
@/* Retureq From Function*/
- ADD sp, sp, #4
VPOP {d8-d15}
- POP {r4-r11,pc}
+ POP {r4-r12,pc}
.end
.thumb_func
ne10_fir_float_neon:
- PUSH {r4-r11,lr}
- SUB sp, sp, #4 @keep stack 8 bytes aligned
+ PUSH {r4-r12,lr} @push r12: to keep stack 8 bytes aligned
@/*ARM Registers*/
pStateStruct .req R0
pSrc .req R1
ADD pStateCurnt,pStateCurnt,mask, LSL #2
@/*Return From Function*/
- ADD sp, sp, #4
- POP {r4-r11,pc}
+ POP {r4-r12,pc}
@/*ARM Registers*/
.unreq pStateStruct
.unreq pSrc
ne10_fir_decimate_float_neon:
- PUSH {r4-r11,lr}
+ PUSH {r4-r12,lr} @push r12: to keep stack 8 bytes aligned
VPUSH {d8-d9}
- SUB sp, sp, #4 @keep stack 8 bytes aligned
@/*ARM Registers*/
pStateStruct .req R0
ADD pX,pX,mask, LSL #2
@// Return From Function
- ADD sp, sp, #4
VPOP {d8-d9}
- POP {r4-r11,pc}
+ POP {r4-r12,pc}
@/*ARM Registers*/
.unreq pStateStruct
.thumb_func
ne10_fir_interpolate_float_neon:
- PUSH {r4-r11,lr}
- SUB sp, sp, #4 @keep stack 8 bytes aligned
+ PUSH {r4-r12,lr} @push r12: to keep stack 8 bytes aligned
@/*ARM Registers*/
ADD pStateCurnt,pStateCurnt,mask, LSL #2
@/*Return From Function*/
- ADD sp, sp, #4
- POP {r4-r11,pc}
+ POP {r4-r12,pc}
@/*ARM Registers*/
.unreq pStateStruct
.unreq pSrc
ne10_fir_lattice_float_neon:
- PUSH {r4-r11,lr}
- SUB sp, sp, #4 @keep stack 8 bytes aligned
+ PUSH {r4-r12,lr} @push r12: to keep stack 8 bytes aligned
@/*ARM Registers*/
pStateStruct .req R0
firLatticeEnd:
@/*Return From Function*/
- ADD sp, sp, #4
- POP {r4-r11,pc}
+ POP {r4-r12,pc}
@/*ARM Registers*/
.unreq pStateStruct
.thumb_func
ne10_iir_lattice_float_neon:
- PUSH {r4-r11,lr}
+ PUSH {r4-r12,lr} @push r12: to keep stack 8 bytes aligned
VPUSH {d8-d9}
- SUB sp, sp, #4 @keep stack 8 bytes aligned
@/*ARM Registers*/
pStateStruct .req R0
.unreq qGnext
.unreq dGnext_0
.unreq dGnext_1
- ADD sp, sp, #4
VPOP {d8-d9}
- POP {r4-r11,pc}
+ POP {r4-r12,pc}
.end