: +r(RgbBuffer), // %0 output readwrite
+r(SrcYUV), // %1
+r(u), // %2
+r(v), // %3
+r(h) // %4
: r(w) // %5 readonly
add r4, %5, %5 , lsl #1 // r4 = 3*w
mov r8, %5, lsr #3 // r8 = w/8
mov r6, %4, lsr #1 // r6 = h/2
add %4, %1, %5 // %4 = y + w (a row for yuv)
mov r5, %0 // r5 = rgb row's head addr
add %0, r5, r4 // %0 = rgb + 3*w (a row for rgb) next row's head addr
mov r9, #16 //
vdup.8 d8, r9 // d8 = 16
mov
+r(SrcYUV), // %1
+r(u), // %2
+r(v), // %3
+r(h) // %4
: r(w) // %5 readonly
add r4, %5, %5 , lsl #1 // r4 = 3*w
mov r8, %5, lsr #3 // r8 = w/8
mov r6, %4, lsr #1 // r6 = h/2
add %4, %1, %5 // %4 = y + w (a row for yuv)
mov r5, %0 // r5 = rgb row's head addr
add %0, r5, r4 // %0 = rgb + 3*w (a row for rgb) next row's head addr
mov r9, #16 //
vdup.8 d8, r9 // d8 = 16
mov