@*****************************************************************************
- @ i422_yuyv_neon.S : ARM NEONv1 I422 to YUYV chroma conversion
+ @ i422_yuyv.S : ARM NEONv1 I422 to YUYV chroma conversion
@*****************************************************************************
@ Copyright (C) 2011 Rémi Denis-Courmont
@
@ This program is distributed in the hope that it will be useful,
@ but WITHOUT ANY WARRANTY; without even the implied warranty of
@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- @ GNU General Public License for more details.
+ @ GNU Lesser General Public License for more details.
@
@ You should have received a copy of the GNU Lesser General Public License
@ along with this program; if not, write to the Free Software Foundation,
@ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
@****************************************************************************/
+ .syntax unified
.fpu neon
.text
#define COUNT ip
#define YPAD lr
- .align
+ .align 2
.global i422_yuyv_neon
.type i422_yuyv_neon, %function
i422_yuyv_neon:
sub OPAD, OPAD, WIDTH, lsl #1
sub YPAD, YPAD, WIDTH
1:
- movgts COUNT, WIDTH
+ movsgt COUNT, WIDTH
pople {r4-r6,pc}
2:
pld [U, #64]
subs COUNT, COUNT, #16
vld1.u8 {q0}, [Y,:128]!
vzip.u8 q0, q1
+ @ TODO: unroll (1 cycle stall)
vst1.u8 {q0-q1}, [O,:128]!
bgt 2b
sub OPAD, OPAD, WIDTH, lsl #1
sub YPAD, YPAD, WIDTH
1:
- movgts COUNT, WIDTH
+ movsgt COUNT, WIDTH
pople {r4-r6,pc}
2:
pld [U, #64]