Blame gst-libs/gst/video/video-orc.orc

Packit 971217
.function video_orc_blend_little
Packit 971217
.flags 1d
Packit 971217
.dest 4 d guint8
Packit 971217
.source 4 s guint8
Packit 971217
.temp 4 t
Packit 971217
.temp 2 tw
Packit 971217
.temp 1 tb
Packit 971217
.temp 4 a
Packit 971217
.temp 8 d_wide
Packit 971217
.temp 8 s_wide
Packit 971217
.temp 8 a_wide
Packit 971217
.const 4 a_alpha 0x000000ff
Packit 971217
Packit 971217
loadl t, s
Packit 971217
convlw tw, t
Packit 971217
convwb tb, tw
Packit 971217
splatbl a, tb
Packit 971217
x4 convubw a_wide, a
Packit 971217
x4 shruw a_wide, a_wide, 8
Packit 971217
x4 convubw s_wide, t
Packit 971217
loadl t, d
Packit 971217
x4 convubw d_wide, t
Packit 971217
x4 subw s_wide, s_wide, d_wide
Packit 971217
x4 mullw s_wide, s_wide, a_wide
Packit 971217
x4 div255w s_wide, s_wide
Packit 971217
x4 addw d_wide, d_wide, s_wide
Packit 971217
x4 convwb t, d_wide
Packit 971217
orl t, t, a_alpha
Packit 971217
storel d, t
Packit 971217
Packit 971217
.function video_orc_blend_big
Packit 971217
.flags 1d
Packit 971217
.dest 4 d guint8
Packit 971217
.source 4 s guint8
Packit 971217
.temp 4 t
Packit 971217
.temp 4 t2
Packit 971217
.temp 2 tw
Packit 971217
.temp 1 tb
Packit 971217
.temp 4 a
Packit 971217
.temp 8 d_wide
Packit 971217
.temp 8 s_wide
Packit 971217
.temp 8 a_wide
Packit 971217
.const 4 a_alpha 0xff000000
Packit 971217
Packit 971217
loadl t, s
Packit 971217
shrul t2, t, 24
Packit 971217
convlw tw, t2
Packit 971217
convwb tb, tw
Packit 971217
splatbl a, tb
Packit 971217
x4 convubw a_wide, a
Packit 971217
x4 shruw a_wide, a_wide, 8
Packit 971217
x4 convubw s_wide, t
Packit 971217
loadl t, d
Packit 971217
x4 convubw d_wide, t
Packit 971217
x4 subw s_wide, s_wide, d_wide
Packit 971217
x4 mullw s_wide, s_wide, a_wide
Packit 971217
x4 div255w s_wide, s_wide
Packit 971217
x4 addw d_wide, d_wide, s_wide
Packit 971217
x4 convwb t, d_wide
Packit 971217
orl t, t, a_alpha
Packit 971217
storel d, t
Packit 971217
Packit 971217
.function video_orc_unpack_I420
Packit 971217
.dest 4 d guint8
Packit 971217
.source 1 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.const 1 c255 255
Packit 971217
.temp 2 uv
Packit 971217
.temp 2 ay
Packit 971217
.temp 1 tu
Packit 971217
.temp 1 tv
Packit 971217
Packit 971217
loadupdb tu, u
Packit 971217
loadupdb tv, v
Packit 971217
mergebw uv, tu, tv
Packit 971217
mergebw ay, c255, y
Packit 971217
mergewl d, ay, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_I420
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uv
Packit 971217
.temp 2 uu
Packit 971217
.temp 2 vv
Packit 971217
.temp 1 t1
Packit 971217
.temp 1 t2
Packit 971217
Packit 971217
x2 splitlw uv, ay, ayuv
Packit 971217
x2 select1wb y, ay
Packit 971217
x2 splitwb vv, uu, uv
Packit 971217
select0wb u, uu
Packit 971217
select0wb v, vv
Packit 971217
Packit 971217
.function video_orc_pack_Y
Packit 971217
.dest 1 y guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
select0lw ay, ayuv
Packit 971217
select1wb y, ay
Packit 971217
Packit 971217
.function video_orc_unpack_YUY2
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 4 yuy2 guint8
Packit 971217
.const 2 c255 0xff
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitwb uv, yy, yuy2
Packit 971217
x2 mergebw ayay, c255, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_YUY2
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
select0lw uv, uvuv
Packit 971217
x2 select1wb yy, ayay
Packit 971217
x2 mergebw yuy2, yy, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_UYVY
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
select0lw uv, uvuv
Packit 971217
x2 select1wb yy, ayay
Packit 971217
x2 mergebw yuy2, uv, yy
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_UYVY
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 4 uyvy guint8
Packit 971217
.const 2 c255 0xff
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitwb yy, uv, uyvy
Packit 971217
x2 mergebw ayay, c255, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_VYUY
Packit 971217
.dest 4 vyuy guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 vu
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
select0lw vu, uvuv
Packit 971217
x2 select1wb yy, ayay
Packit 971217
swapw vu, vu
Packit 971217
x2 mergebw vyuy, vu, yy
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_VYUY
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 4 vyuy guint8
Packit 971217
.const 2 c255 0xff
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitwb yy, uv, vyuy
Packit 971217
swapw uv, uv
Packit 971217
x2 mergebw ayay, c255, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_YVYU
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 4 uyvy guint8
Packit 971217
.const 2 c255 0xff
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitwb uv, yy, uyvy
Packit 971217
swapw uv, uv
Packit 971217
x2 mergebw ayay, c255, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_YVYU
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
select0lw uv, uvuv
Packit 971217
x2 select1wb yy, ayay
Packit 971217
swapw uv, uv
Packit 971217
x2 mergebw yuy2, yy, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_YUV9
Packit 971217
.dest 8 d guint8
Packit 971217
.source 2 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.const 1 c255 255
Packit 971217
.temp 2 tuv
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uv
Packit 971217
.temp 1 tu
Packit 971217
.temp 1 tv
Packit 971217
Packit 971217
loadupdb tu, u
Packit 971217
loadupdb tv, v
Packit 971217
mergebw tuv, tu, tv
Packit 971217
mergewl uv, tuv, tuv
Packit 971217
x2 mergebw ay, c255, y
Packit 971217
x2 mergewl d, ay, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_Y42B
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 2 yy guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.const 1 c255 255
Packit 971217
.temp 2 uv
Packit 971217
.temp 2 ay
Packit 971217
.temp 4 uvuv
Packit 971217
.temp 4 ayay
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
x2 mergebw ayay, c255, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
.function video_orc_pack_Y42B
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
select0lw uv, uvuv
Packit 971217
splitwb v, u, uv
Packit 971217
x2 select1wb y, ayay
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_Y444
Packit 971217
.dest 4 ayuv guint8
Packit 971217
.source 1 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.const 1 c255 255
Packit 971217
.temp 2 uv
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
mergebw ay, c255, y
Packit 971217
mergewl ayuv, ay, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_Y444
Packit 971217
.dest 1 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.temp 2 ay
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
splitlw uv, ay, ayuv
Packit 971217
splitwb v, u, uv
Packit 971217
select1wb y, ay
Packit 971217
Packit 971217
.function video_orc_unpack_GRAY8
Packit 971217
.dest 4 ayuv guint8
Packit 971217
.source 1 y guint8
Packit 971217
.const 1 c255 255
Packit 971217
.const 2 c0x8080 0x8080
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
mergebw ay, c255, y
Packit 971217
mergewl ayuv, ay, c0x8080
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_GRAY8
Packit 971217
.dest 1 y guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
select0lw ay, ayuv
Packit 971217
select1wb y, ay
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_BGRA
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 bgra guint8
Packit 971217
Packit 971217
swapl argb, bgra
Packit 971217
Packit 971217
.function video_orc_pack_BGRA
Packit 971217
.dest 4 bgra guint8
Packit 971217
.source 4 argb guint8
Packit 971217
Packit 971217
swapl bgra, argb
Packit 971217
Packit 971217
.function video_orc_pack_RGBA_le
Packit 971217
.dest 4 rgba guint8
Packit 971217
.source 4 argb guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
loadl r, argb
Packit 971217
shrul a, r, 8
Packit 971217
shll r, r, 24
Packit 971217
orl rgba, r, a
Packit 971217
Packit 971217
.function video_orc_unpack_RGBA_le
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 rgba guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
loadl r, rgba
Packit 971217
shll a, r, 8
Packit 971217
shrul r, r, 24
Packit 971217
orl argb, r, a
Packit 971217
Packit 971217
.function video_orc_pack_RGBA_be
Packit 971217
.dest 4 rgba guint8
Packit 971217
.source 4 argb guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
loadl r, argb
Packit 971217
shrul a, r, 24
Packit 971217
shll r, r, 8
Packit 971217
orl rgba, r, a
Packit 971217
Packit 971217
.function video_orc_unpack_RGBA_be
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 rgba guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
loadl r, rgba
Packit 971217
shll a, r, 24
Packit 971217
shrul r, r, 8
Packit 971217
orl argb, r, a
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_ABGR_le
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 abgr guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
swapl r, abgr
Packit 971217
shll a, r, 8
Packit 971217
shrul r, r, 24
Packit 971217
orl argb, r, a
Packit 971217
Packit 971217
.function video_orc_pack_ABGR_le
Packit 971217
.dest 4 abgr guint8
Packit 971217
.source 4 argb guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
swapl r, argb
Packit 971217
shll a, r, 8
Packit 971217
shrul r, r, 24
Packit 971217
orl abgr, r, a
Packit 971217
Packit 971217
.function video_orc_unpack_ABGR_be
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 abgr guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
swapl r, abgr
Packit 971217
shll a, r, 24
Packit 971217
shrul r, r, 8
Packit 971217
orl argb, r, a
Packit 971217
Packit 971217
.function video_orc_pack_ABGR_be
Packit 971217
.dest 4 abgr guint8
Packit 971217
.source 4 argb guint8
Packit 971217
.temp 4 a
Packit 971217
.temp 4 r
Packit 971217
Packit 971217
swapl r, argb
Packit 971217
shll a, r, 24
Packit 971217
shrul r, r, 8
Packit 971217
orl abgr, r, a
Packit 971217
Packit 971217
Packit 971217
.function video_orc_unpack_NV12
Packit 971217
.dest 8 d guint8
Packit 971217
.source 2 y guint8
Packit 971217
.source 2 uv guint8
Packit 971217
.const 1 c255 255
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergebw ay, c255, y
Packit 971217
x2 mergewl d, ay, uvuv
Packit 971217
Packit 971217
.function video_orc_pack_NV12
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 2 uv guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitlw uvuv, ay, ayuv
Packit 971217
x2 select1wb y, ay
Packit 971217
select0lw uv, uvuv
Packit 971217
Packit 971217
.function video_orc_unpack_NV21
Packit 971217
.dest 8 d guint8
Packit 971217
.source 2 y guint8
Packit 971217
.source 2 vu guint8
Packit 971217
.const 1 c255 255
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
swapw uv, vu
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergebw ay, c255, y
Packit 971217
x2 mergewl d, ay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_pack_NV21
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 2 vu guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uvuv
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
x2 splitlw uvuv, ay, ayuv
Packit 971217
x2 select1wb y, ay
Packit 971217
select0lw uv, uvuv
Packit 971217
swapw vu, uv
Packit 971217
Packit 971217
.function video_orc_unpack_NV24
Packit 971217
.dest 4 d guint8
Packit 971217
.source 1 y guint8
Packit 971217
.source 2 uv guint8
Packit 971217
.const 1 c255 255
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
mergebw ay, c255, y
Packit 971217
mergewl d, ay, uv
Packit 971217
Packit 971217
.function video_orc_pack_NV24
Packit 971217
.dest 1 y guint8
Packit 971217
.dest 2 uv guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
splitlw uv, ay, ayuv
Packit 971217
select1wb y, ay
Packit 971217
Packit 971217
.function video_orc_unpack_A420
Packit 971217
.dest 4 d guint8
Packit 971217
.source 1 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.source 1 a guint8
Packit 971217
.temp 2 uv
Packit 971217
.temp 2 ay
Packit 971217
.temp 1 tu
Packit 971217
.temp 1 tv
Packit 971217
Packit 971217
loadupdb tu, u
Packit 971217
loadupdb tv, v
Packit 971217
mergebw uv, tu, tv
Packit 971217
mergebw ay, a, y
Packit 971217
mergewl d, ay, uv
Packit 971217
Packit 971217
.function video_orc_pack_A420
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.dest 2 a guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uv
Packit 971217
.temp 2 uu
Packit 971217
.temp 2 vv
Packit 971217
Packit 971217
x2 splitlw uv, ay, ayuv
Packit 971217
x2 select1wb y, ay
Packit 971217
x2 select0wb a, ay
Packit 971217
x2 splitwb vv, uu, uv
Packit 971217
select0wb u, uu
Packit 971217
select0wb v, vv
Packit 971217
Packit 971217
.function video_orc_pack_AY
Packit 971217
.dest 1 y guint8
Packit 971217
.dest 1 a guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
select0lw ay, ayuv
Packit 971217
select1wb y, ay
Packit 971217
select0wb a, ay
Packit 971217
Packit 971217
.function video_orc_unpack_RGB15_le
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 rgb15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, rgb15
Packit 971217
andw r, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw b, t, 0x001f
Packit 971217
shlw b, b, 5
Packit 971217
mulhsw r, r, 0x0210
Packit 971217
mulhsw g, g, 0x4200
Packit 971217
mulhsw b, b, 0x4200
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll rb, rb, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_unpack_RGB15_be
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 rgb15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, rgb15
Packit 971217
andw r, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw b, t, 0x001f
Packit 971217
shlw b, b, 5
Packit 971217
mulhsw r, r, 0x0210
Packit 971217
mulhsw g, g, 0x4200
Packit 971217
mulhsw b, b, 0x4200
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll ag, ag, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_unpack_RGB15_le_trunc
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 rgb15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, rgb15
Packit 971217
andw r, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw b, t, 0x001f
Packit 971217
shruw r, r, 7
Packit 971217
shruw g, g, 2
Packit 971217
shlw b, b, 3
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll rb, rb, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_unpack_RGB15_be_trunc
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 rgb15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, rgb15
Packit 971217
andw r, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw b, t, 0x001f
Packit 971217
shruw r, r, 7
Packit 971217
shruw g, g, 2
Packit 971217
shlw b, b, 3
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll ag, ag, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_pack_RGB15_le
Packit 971217
.dest 2 rgb15 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf800
Packit 971217
andl g, t, 0xf80000
Packit 971217
andl b, t, 0xf8000000
Packit 971217
shrul r, r, 1
Packit 971217
shrul g, g, 14
Packit 971217
shrul b, b, 27
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select0lw rgb15, t2
Packit 971217
Packit 971217
.function video_orc_pack_RGB15_be
Packit 971217
.dest 2 rgb15 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf80000
Packit 971217
andl g, t, 0xf800
Packit 971217
andl b, t, 0xf8
Packit 971217
shrul r, r, 9
Packit 971217
shrul g, g, 6
Packit 971217
shrul b, b, 3
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select1lw rgb15, t2
Packit 971217
Packit 971217
.function video_orc_unpack_BGR15_le
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 bgr15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, bgr15
Packit 971217
andw b, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw r, t, 0x001f
Packit 971217
shlw r, r, 5
Packit 971217
mulhsw b, b, 0x0210
Packit 971217
mulhsw g, g, 0x4200
Packit 971217
mulhsw r, r, 0x4200
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll rb, rb, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_unpack_BGR15_be
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 bgr15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, bgr15
Packit 971217
andw b, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw r, t, 0x001f
Packit 971217
shlw r, r, 5
Packit 971217
mulhsw b, b, 0x0210
Packit 971217
mulhsw g, g, 0x4200
Packit 971217
mulhsw r, r, 0x4200
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll ag, ag, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_unpack_BGR15_le_trunc
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 bgr15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, bgr15
Packit 971217
andw b, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw r, t, 0x001f
Packit 971217
shruw b, b, 7
Packit 971217
shruw g, g, 2
Packit 971217
shlw r, r, 3
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll rb, rb, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_unpack_BGR15_be_trunc
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 bgr15 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ag
Packit 971217
.temp 4 rb
Packit 971217
Packit 971217
loadw t, bgr15
Packit 971217
andw b, t, 0x7c00
Packit 971217
andw g, t, 0x03e0
Packit 971217
andw r, t, 0x001f
Packit 971217
shruw b, b, 7
Packit 971217
shruw g, g, 2
Packit 971217
shlw r, r, 3
Packit 971217
mergewl ag, 0xff, g
Packit 971217
mergewl rb, r, b
Packit 971217
shll ag, ag, 8
Packit 971217
orl argb, ag, rb
Packit 971217
Packit 971217
.function video_orc_pack_BGR15_le
Packit 971217
.dest 2 rgb15 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf800
Packit 971217
andl g, t, 0xf80000
Packit 971217
andl b, t, 0xf8000000
Packit 971217
shrul b, b, 17
Packit 971217
shrul g, g, 14
Packit 971217
shrul r, r, 11
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select0lw rgb15, t2
Packit 971217
Packit 971217
.function video_orc_pack_BGR15_be
Packit 971217
.dest 2 rgb15 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf80000
Packit 971217
andl g, t, 0xf800
Packit 971217
andl b, t, 0xf8
Packit 971217
shll b, b, 7
Packit 971217
shrul g, g, 6
Packit 971217
shrul r, r, 19
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select1lw rgb15, t2
Packit 971217
Packit 971217
.function video_orc_unpack_RGB16
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 rgb16 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ar
Packit 971217
.temp 4 gb
Packit 971217
.temp 8 t2
Packit 971217
Packit 971217
loadw t, rgb16
Packit 971217
andw r, t, 0xf800
Packit 971217
andw g, t, 0x07e0
Packit 971217
andw b, t, 0x001f
Packit 971217
shruw r, r, 6
Packit 971217
shlw b, b, 5
Packit 971217
mulhsw r, r, 0x4200
Packit 971217
mulhsw g, g, 0x2080
Packit 971217
mulhsw b, b, 0x4200
Packit 971217
mergewl ar, 0xff, r
Packit 971217
mergewl gb, g, b
Packit 971217
mergelq t2, ar, gb
Packit 971217
x4 convsuswb argb, t2
Packit 971217
Packit 971217
.function video_orc_unpack_RGB16_trunc
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 rgb16 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ar
Packit 971217
.temp 4 gb
Packit 971217
.temp 8 t2
Packit 971217
Packit 971217
loadw t, rgb16
Packit 971217
andw r, t, 0xf800
Packit 971217
andw g, t, 0x07e0
Packit 971217
andw b, t, 0x001f
Packit 971217
shruw r, r, 8
Packit 971217
shruw g, g, 3
Packit 971217
shlw b, b, 3
Packit 971217
mergewl ar, 0xff, r
Packit 971217
mergewl gb, g, b
Packit 971217
mergelq t2, ar, gb
Packit 971217
x4 convsuswb argb, t2
Packit 971217
Packit 971217
.function video_orc_pack_RGB16_le
Packit 971217
.dest 2 rgb15 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf800
Packit 971217
andl g, t, 0xfc0000
Packit 971217
andl b, t, 0xf8000000
Packit 971217
shrul g, g, 13
Packit 971217
shrul b, b, 27
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select0lw rgb15, t2
Packit 971217
Packit 971217
.function video_orc_pack_RGB16_be
Packit 971217
.dest 2 rgb16 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf80000
Packit 971217
andl g, t, 0xfc00
Packit 971217
andl b, t, 0xf8
Packit 971217
shrul r, r, 8
Packit 971217
shrul g, g, 5
Packit 971217
shrul b, b, 3
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select1lw rgb16, t2
Packit 971217
Packit 971217
.function video_orc_unpack_BGR16
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 bgr16 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ar
Packit 971217
.temp 4 gb
Packit 971217
.temp 8 t2
Packit 971217
Packit 971217
loadw t, bgr16
Packit 971217
andw b, t, 0xf800
Packit 971217
andw g, t, 0x07e0
Packit 971217
andw r, t, 0x001f
Packit 971217
shruw b, b, 6
Packit 971217
shlw r, r, 5
Packit 971217
mulhsw b, b, 0x4200
Packit 971217
mulhsw g, g, 0x2080
Packit 971217
mulhsw r, r, 0x4200
Packit 971217
mergewl ar, 0xff, r
Packit 971217
mergewl gb, g, b
Packit 971217
mergelq t2, ar, gb
Packit 971217
x4 convsuswb argb, t2
Packit 971217
Packit 971217
.function video_orc_unpack_BGR16_trunc
Packit 971217
.dest 4 argb guint32
Packit 971217
.source 2 bgr16 guint16
Packit 971217
.temp 2 t
Packit 971217
.temp 2 r
Packit 971217
.temp 2 g
Packit 971217
.temp 2 b
Packit 971217
.temp 4 ar
Packit 971217
.temp 4 gb
Packit 971217
.temp 8 t2
Packit 971217
Packit 971217
loadw t, bgr16
Packit 971217
andw b, t, 0xf800
Packit 971217
andw g, t, 0x07e0
Packit 971217
andw r, t, 0x001f
Packit 971217
shruw b, b, 8
Packit 971217
shruw g, g, 3
Packit 971217
shlw r, r, 3
Packit 971217
mergewl ar, 0xff, r
Packit 971217
mergewl gb, g, b
Packit 971217
mergelq t2, ar, gb
Packit 971217
x4 convsuswb argb, t2
Packit 971217
Packit 971217
.function video_orc_pack_BGR16_le
Packit 971217
.dest 2 rgb15 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf800
Packit 971217
andl g, t, 0xfc0000
Packit 971217
andl b, t, 0xf8000000
Packit 971217
shrul r, r, 11
Packit 971217
shrul g, g, 13
Packit 971217
shrul b, b, 16
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select0lw rgb15, t2
Packit 971217
Packit 971217
.function video_orc_pack_BGR16_be
Packit 971217
.dest 2 rgb15 guint16
Packit 971217
.source 4 argb guint32
Packit 971217
.temp 4 t
Packit 971217
.temp 4 r
Packit 971217
.temp 4 g
Packit 971217
.temp 4 b
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
loadl t, argb
Packit 971217
andl r, t, 0xf80000
Packit 971217
andl g, t, 0xfc00
Packit 971217
andl b, t, 0xf8
Packit 971217
shll b, b, 8
Packit 971217
shrul g, g, 5
Packit 971217
shrul r, r, 19
Packit 971217
orl t2, r, g
Packit 971217
orl t2, t2, b
Packit 971217
select1lw rgb15, t2
Packit 971217
Packit 971217
.function video_orc_resample_bilinear_u32
Packit 971217
.dest 4 d1 guint8
Packit 971217
.source 4 s1 guint8
Packit 971217
.param 4 p1
Packit 971217
.param 4 p2
Packit 971217
Packit 971217
ldreslinl d1, s1, p1, p2
Packit 971217
Packit 971217
.function video_orc_merge_linear_u8
Packit 971217
.dest 1 d1
Packit 971217
.source 1 s1
Packit 971217
.source 1 s2
Packit 971217
.param 1 p1
Packit 971217
.temp 2 t1
Packit 971217
.temp 2 t2
Packit 971217
.temp 1 a
Packit 971217
.temp 1 t
Packit 971217
Packit 971217
loadb a, s1
Packit 971217
convubw t1, s1
Packit 971217
convubw t2, s2
Packit 971217
subw t2, t2, t1
Packit 971217
mullw t2, t2, p1
Packit 971217
addw t2, t2, 128
Packit 971217
convhwb t, t2
Packit 971217
addb d1, t, a
Packit 971217
Packit 971217
Packit 971217
.function video_orc_memset_2d
Packit 971217
.flags 2d
Packit 971217
.dest 1 d1 guint8
Packit 971217
.param 1 p1
Packit 971217
Packit 971217
storeb d1, p1
Packit 971217
Packit 971217
.function video_orc_memcpy_2d
Packit 971217
.flags 2d
Packit 971217
.dest 1 d1 guint8
Packit 971217
.source 1 s1 guint8
Packit 971217
Packit 971217
copyb d1, s1
Packit 971217
Packit 971217
.function video_orc_convert_u16_to_u8
Packit 971217
.source 2 s guint16
Packit 971217
.dest 1 d guint8
Packit 971217
Packit 971217
convhwb d, s
Packit 971217
Packit 971217
.function video_orc_convert_u8_to_u16
Packit 971217
.source 1 s guint8
Packit 971217
.dest 2 d guint16
Packit 971217
Packit 971217
mergebw d, s, s
Packit 971217
Packit 971217
.function video_orc_splat_u16
Packit 971217
.dest 2 d1 guint8
Packit 971217
.param 2 p1
Packit 971217
Packit 971217
storew d1, p1
Packit 971217
Packit 971217
.function video_orc_splat_u32
Packit 971217
.dest 4 d1 guint8
Packit 971217
.param 4 p1
Packit 971217
Packit 971217
storel d1, p1
Packit 971217
Packit 971217
.function video_orc_splat_u64
Packit 971217
.dest 8 d1 guint8
Packit 971217
.longparam 8 p1
Packit 971217
Packit 971217
storeq d1, p1
Packit 971217
Packit 971217
.function video_orc_splat2_u64
Packit 971217
.dest 8 d1 guint8
Packit 971217
.param 4 p1
Packit 971217
.temp 4 p
Packit 971217
Packit 971217
loadpl p, p1
Packit 971217
x4 mergebw d1, p, p
Packit 971217
Packit 971217
.function video_orc_convert_I420_UYVY
Packit 971217
.dest 4 d1 guint8
Packit 971217
.dest 4 d2 guint8
Packit 971217
.source 2 y1 guint8
Packit 971217
.source 2 y2 guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
x2 mergebw d1, uv, y1
Packit 971217
x2 mergebw d2, uv, y2
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_I420_YUY2
Packit 971217
.dest 4 d1 guint8
Packit 971217
.dest 4 d2 guint8
Packit 971217
.source 2 y1 guint8
Packit 971217
.source 2 y2 guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
x2 mergebw d1, y1, uv
Packit 971217
x2 mergebw d2, y2, uv
Packit 971217
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_I420_AYUV
Packit 971217
.dest 4 d1 guint8
Packit 971217
.dest 4 d2 guint8
Packit 971217
.source 1 y1 guint8
Packit 971217
.source 1 y2 guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.param 1 alpha
Packit 971217
.temp 2 uv
Packit 971217
.temp 2 ay
Packit 971217
.temp 1 tu
Packit 971217
.temp 1 tv
Packit 971217
Packit 971217
loadupdb tu, u
Packit 971217
loadupdb tv, v
Packit 971217
mergebw uv, tu, tv
Packit 971217
mergebw ay, alpha, y1
Packit 971217
mergewl d1, ay, uv
Packit 971217
mergebw ay, alpha, y2
Packit 971217
mergewl d2, ay, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_YUY2_I420
Packit 971217
.dest 2 y1 guint8
Packit 971217
.dest 2 y2 guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 4 yuv1 guint8
Packit 971217
.source 4 yuv2 guint8
Packit 971217
.temp 2 t1
Packit 971217
.temp 2 t2
Packit 971217
.temp 2 ty
Packit 971217
Packit 971217
x2 splitwb t1, ty, yuv1
Packit 971217
storew y1, ty
Packit 971217
x2 splitwb t2, ty, yuv2
Packit 971217
storew y2, ty
Packit 971217
x2 avgub t1, t1, t2
Packit 971217
splitwb v, u, t1
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_UYVY_YUY2
Packit 971217
.flags 2d
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 4 uyvy guint8
Packit 971217
Packit 971217
x2 swapw yuy2, uyvy
Packit 971217
Packit 971217
Packit 971217
.function video_orc_planar_chroma_420_422
Packit 971217
.flags 2d
Packit 971217
.dest 1 d1 guint8
Packit 971217
.dest 1 d2 guint8
Packit 971217
.source 1 s guint8
Packit 971217
Packit 971217
copyb d1, s
Packit 971217
copyb d2, s
Packit 971217
Packit 971217
Packit 971217
.function video_orc_planar_chroma_420_444
Packit 971217
.flags 2d
Packit 971217
.dest 2 d1 guint8
Packit 971217
.dest 2 d2 guint8
Packit 971217
.source 1 s guint8
Packit 971217
.temp 2 t
Packit 971217
Packit 971217
splatbw t, s
Packit 971217
storew d1, t
Packit 971217
storew d2, t
Packit 971217
Packit 971217
Packit 971217
.function video_orc_planar_chroma_422_444
Packit 971217
.flags 2d
Packit 971217
.dest 2 d1 guint8
Packit 971217
.source 1 s guint8
Packit 971217
.temp 2 t
Packit 971217
Packit 971217
splatbw t, s
Packit 971217
storew d1, t
Packit 971217
Packit 971217
Packit 971217
.function video_orc_planar_chroma_444_422
Packit 971217
.flags 2d
Packit 971217
.dest 1 d guint8
Packit 971217
.source 2 s guint8
Packit 971217
.temp 1 t1
Packit 971217
.temp 1 t2
Packit 971217
Packit 971217
splitwb t1, t2, s
Packit 971217
avgub d, t1, t2
Packit 971217
Packit 971217
Packit 971217
.function video_orc_planar_chroma_444_420
Packit 971217
.flags 2d
Packit 971217
.dest 1 d guint8
Packit 971217
.source 2 s1 guint8
Packit 971217
.source 2 s2 guint8
Packit 971217
.temp 2 t
Packit 971217
.temp 1 t1
Packit 971217
.temp 1 t2
Packit 971217
Packit 971217
x2 avgub t, s1, s2
Packit 971217
splitwb t1, t2, t
Packit 971217
avgub d, t1, t2
Packit 971217
Packit 971217
Packit 971217
.function video_orc_planar_chroma_422_420
Packit 971217
.flags 2d
Packit 971217
.dest 1 d guint8
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
Packit 971217
avgub d, s1, s2
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_YUY2_AYUV
Packit 971217
.flags 2d
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 4 yuy2 guint8
Packit 971217
.param 1 alpha
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitwb uv, yy, yuy2
Packit 971217
x2 mergebw ayay, alpha, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_UYVY_AYUV
Packit 971217
.flags 2d
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 4 uyvy guint8
Packit 971217
.param 1 alpha
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitwb yy, uv, uyvy
Packit 971217
x2 mergebw ayay, alpha, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_YUY2_Y42B
Packit 971217
.flags 2d
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 4 yuy2 guint8
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
x2 splitwb uv, y, yuy2
Packit 971217
splitwb v, u, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_UYVY_Y42B
Packit 971217
.flags 2d
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 4 uyvy guint8
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
x2 splitwb y, uv, uyvy
Packit 971217
splitwb v, u, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_YUY2_Y444
Packit 971217
.flags 2d
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 2 uu guint8
Packit 971217
.dest 2 vv guint8
Packit 971217
.source 4 yuy2 guint8
Packit 971217
.temp 2 uv
Packit 971217
.temp 1 u
Packit 971217
.temp 1 v
Packit 971217
Packit 971217
x2 splitwb uv, y, yuy2
Packit 971217
splitwb v, u, uv
Packit 971217
splatbw uu, u
Packit 971217
splatbw vv, v
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_UYVY_Y444
Packit 971217
.flags 2d
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 2 uu guint8
Packit 971217
.dest 2 vv guint8
Packit 971217
.source 4 uyvy guint8
Packit 971217
.temp 2 uv
Packit 971217
.temp 1 u
Packit 971217
.temp 1 v
Packit 971217
Packit 971217
x2 splitwb y, uv, uyvy
Packit 971217
splitwb v, u, uv
Packit 971217
splatbw uu, u
Packit 971217
splatbw vv, v
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_UYVY_I420
Packit 971217
.dest 2 y1 guint8
Packit 971217
.dest 2 y2 guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 4 yuv1 guint8
Packit 971217
.source 4 yuv2 guint8
Packit 971217
.temp 2 t1
Packit 971217
.temp 2 t2
Packit 971217
.temp 2 ty
Packit 971217
Packit 971217
x2 splitwb ty, t1, yuv1
Packit 971217
storew y1, ty
Packit 971217
x2 splitwb ty, t2, yuv2
Packit 971217
storew y2, ty
Packit 971217
x2 avgub t1, t1, t2
Packit 971217
splitwb v, u, t1
Packit 971217
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_I420
Packit 971217
.flags 2d
Packit 971217
.dest 2 y1 guint8
Packit 971217
.dest 2 y2 guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 8 ayuv1 guint8
Packit 971217
.source 8 ayuv2 guint8
Packit 971217
.temp 4 ay
Packit 971217
.temp 4 uv1
Packit 971217
.temp 4 uv2
Packit 971217
.temp 4 uv
Packit 971217
.temp 2 uu
Packit 971217
.temp 2 vv
Packit 971217
.temp 1 t1
Packit 971217
.temp 1 t2
Packit 971217
Packit 971217
x2 splitlw uv1, ay, ayuv1
Packit 971217
x2 select1wb y1, ay
Packit 971217
x2 splitlw uv2, ay, ayuv2
Packit 971217
x2 select1wb y2, ay
Packit 971217
x4 avgub uv, uv1, uv2
Packit 971217
x2 splitwb vv, uu, uv
Packit 971217
splitwb t1, t2, uu
Packit 971217
avgub u, t1, t2
Packit 971217
splitwb t1, t2, vv
Packit 971217
avgub v, t1, t2
Packit 971217
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_YUY2
Packit 971217
.flags 2d
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
splitlw uv1, uv2, uvuv
Packit 971217
x2 avgub uv1, uv1, uv2
Packit 971217
x2 select1wb yy, ayay
Packit 971217
x2 mergebw yuy2, yy, uv1
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_UYVY
Packit 971217
.flags 2d
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 2 yy
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
splitlw uv1, uv2, uvuv
Packit 971217
x2 avgub uv1, uv1, uv2
Packit 971217
x2 select1wb yy, ayay
Packit 971217
x2 mergebw yuy2, uv1, yy
Packit 971217
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_Y42B
Packit 971217
.flags 2d
Packit 971217
.dest 2 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 8 ayuv guint8
Packit 971217
.temp 4 ayay
Packit 971217
.temp 4 uvuv
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
Packit 971217
x2 splitlw uvuv, ayay, ayuv
Packit 971217
splitlw uv1, uv2, uvuv
Packit 971217
x2 avgub uv1, uv1, uv2
Packit 971217
splitwb v, u, uv1
Packit 971217
x2 select1wb y, ayay
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_Y444
Packit 971217
.flags 2d
Packit 971217
.dest 1 y guint8
Packit 971217
.dest 1 u guint8
Packit 971217
.dest 1 v guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.temp 2 ay
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
splitlw uv, ay, ayuv
Packit 971217
splitwb v, u, uv
Packit 971217
select1wb y, ay
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_Y42B_YUY2
Packit 971217
.flags 2d
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 2 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
x2 mergebw yuy2, y, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_Y42B_UYVY
Packit 971217
.flags 2d
Packit 971217
.dest 4 uyvy guint8
Packit 971217
.source 2 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.temp 2 uv
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
x2 mergebw uyvy, uv, y
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_Y42B_AYUV
Packit 971217
.flags 2d
Packit 971217
.dest 8 ayuv guint8
Packit 971217
.source 2 yy guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.param 1 alpha
Packit 971217
.temp 2 uv
Packit 971217
.temp 2 ay
Packit 971217
.temp 4 uvuv
Packit 971217
.temp 4 ayay
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
x2 mergebw ayay, alpha, yy
Packit 971217
mergewl uvuv, uv, uv
Packit 971217
x2 mergewl ayuv, ayay, uvuv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_Y444_YUY2
Packit 971217
.flags 2d
Packit 971217
.dest 4 yuy2 guint8
Packit 971217
.source 2 y guint8
Packit 971217
.source 2 u guint8
Packit 971217
.source 2 v guint8
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 uvuv
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
Packit 971217
x2 mergebw uvuv, u, v
Packit 971217
splitlw uv1, uv2, uvuv
Packit 971217
x2 avgub uv, uv1, uv2
Packit 971217
x2 mergebw yuy2, y, uv
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_Y444_UYVY
Packit 971217
.flags 2d
Packit 971217
.dest 4 uyvy guint8
Packit 971217
.source 2 y guint8
Packit 971217
.source 2 u guint8
Packit 971217
.source 2 v guint8
Packit 971217
.temp 2 uv
Packit 971217
.temp 4 uvuv
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
Packit 971217
x2 mergebw uvuv, u, v
Packit 971217
splitlw uv1, uv2, uvuv
Packit 971217
x2 avgub uv, uv1, uv2
Packit 971217
x2 mergebw uyvy, uv, y
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_Y444_AYUV
Packit 971217
.flags 2d
Packit 971217
.dest 4 ayuv guint8
Packit 971217
.source 1 yy guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.param 1 alpha
Packit 971217
.temp 2 uv
Packit 971217
.temp 2 ay
Packit 971217
Packit 971217
mergebw uv, u, v
Packit 971217
mergebw ay, alpha, yy
Packit 971217
mergewl ayuv, ay, uv
Packit 971217
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_ARGB
Packit 971217
.flags 2d
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.param 2 p1
Packit 971217
.param 2 p2
Packit 971217
.param 2 p3
Packit 971217
.param 2 p4
Packit 971217
.param 2 p5
Packit 971217
.temp 1 a
Packit 971217
.temp 1 y
Packit 971217
.temp 1 u
Packit 971217
.temp 1 v
Packit 971217
.temp 2 wy
Packit 971217
.temp 2 wu
Packit 971217
.temp 2 wv
Packit 971217
.temp 2 wr
Packit 971217
.temp 2 wg
Packit 971217
.temp 2 wb
Packit 971217
.temp 1 r
Packit 971217
.temp 1 g
Packit 971217
.temp 1 b
Packit 971217
.temp 4 x
Packit 971217
.const 1 c128 128
Packit 971217
Packit 971217
x4 subb x, ayuv, c128 
Packit 971217
splitlw wv, wy, x
Packit 971217
splitwb y, a, wy
Packit 971217
splitwb v, u, wv
Packit 971217
Packit 971217
splatbw wy, y
Packit 971217
splatbw wu, u
Packit 971217
splatbw wv, v
Packit 971217
Packit 971217
mulhsw wy, wy, p1
Packit 971217
Packit 971217
mulhsw wr, wv, p2
Packit 971217
addw wr, wy, wr
Packit 971217
convssswb r, wr
Packit 971217
mergebw wr, a, r
Packit 971217
Packit 971217
mulhsw wb, wu, p3
Packit 971217
addw wb, wy, wb
Packit 971217
convssswb b, wb
Packit 971217
Packit 971217
mulhsw wg, wu, p4
Packit 971217
addw wg, wy, wg
Packit 971217
mulhsw wy, wv, p5
Packit 971217
addw wg, wg, wy
Packit 971217
Packit 971217
convssswb g, wg
Packit 971217
Packit 971217
mergebw wb, g, b
Packit 971217
mergewl x, wr, wb
Packit 971217
x4 addb argb, x, c128
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_BGRA
Packit 971217
.flags 2d
Packit 971217
.dest 4 bgra guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.param 2 p1
Packit 971217
.param 2 p2
Packit 971217
.param 2 p3
Packit 971217
.param 2 p4
Packit 971217
.param 2 p5
Packit 971217
.temp 1 a
Packit 971217
.temp 1 y
Packit 971217
.temp 1 u
Packit 971217
.temp 1 v
Packit 971217
.temp 2 wy
Packit 971217
.temp 2 wu
Packit 971217
.temp 2 wv
Packit 971217
.temp 2 wr
Packit 971217
.temp 2 wg
Packit 971217
.temp 2 wb
Packit 971217
.temp 1 r
Packit 971217
.temp 1 g
Packit 971217
.temp 1 b
Packit 971217
.temp 4 x
Packit 971217
.const 1 c128 128
Packit 971217
Packit 971217
x4 subb x, ayuv, c128 
Packit 971217
splitlw wv, wy, x
Packit 971217
splitwb y, a, wy
Packit 971217
splitwb v, u, wv
Packit 971217
Packit 971217
splatbw wy, y
Packit 971217
splatbw wu, u
Packit 971217
splatbw wv, v
Packit 971217
Packit 971217
mulhsw wy, wy, p1
Packit 971217
Packit 971217
mulhsw wr, wv, p2
Packit 971217
addw wr, wy, wr
Packit 971217
convssswb r, wr
Packit 971217
mergebw wr, r, a
Packit 971217
Packit 971217
mulhsw wb, wu, p3
Packit 971217
addw wb, wy, wb
Packit 971217
convssswb b, wb
Packit 971217
Packit 971217
mulhsw wg, wu, p4
Packit 971217
addw wg, wy, wg
Packit 971217
mulhsw wy, wv, p5
Packit 971217
addw wg, wg, wy
Packit 971217
Packit 971217
convssswb g, wg
Packit 971217
Packit 971217
mergebw wb, b, g
Packit 971217
mergewl x, wb, wr
Packit 971217
x4 addb bgra, x, c128
Packit 971217
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_ABGR
Packit 971217
.flags 2d
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.param 2 p1
Packit 971217
.param 2 p2
Packit 971217
.param 2 p3
Packit 971217
.param 2 p4
Packit 971217
.param 2 p5
Packit 971217
.temp 1 a
Packit 971217
.temp 1 y
Packit 971217
.temp 1 u
Packit 971217
.temp 1 v
Packit 971217
.temp 2 wy
Packit 971217
.temp 2 wu
Packit 971217
.temp 2 wv
Packit 971217
.temp 2 wr
Packit 971217
.temp 2 wg
Packit 971217
.temp 2 wb
Packit 971217
.temp 1 r
Packit 971217
.temp 1 g
Packit 971217
.temp 1 b
Packit 971217
.temp 4 x
Packit 971217
.const 1 c128 128
Packit 971217
Packit 971217
x4 subb x, ayuv, c128 
Packit 971217
splitlw wv, wy, x
Packit 971217
splitwb y, a, wy
Packit 971217
splitwb v, u, wv
Packit 971217
Packit 971217
splatbw wy, y
Packit 971217
splatbw wu, u
Packit 971217
splatbw wv, v
Packit 971217
Packit 971217
mulhsw wy, wy, p1
Packit 971217
Packit 971217
mulhsw wr, wv, p2
Packit 971217
addw wr, wy, wr
Packit 971217
convssswb r, wr
Packit 971217
Packit 971217
mulhsw wb, wu, p3
Packit 971217
addw wb, wy, wb
Packit 971217
convssswb b, wb
Packit 971217
mergebw wb, a, b
Packit 971217
Packit 971217
mulhsw wg, wu, p4
Packit 971217
addw wg, wy, wg
Packit 971217
mulhsw wy, wv, p5
Packit 971217
addw wg, wg, wy
Packit 971217
Packit 971217
convssswb g, wg
Packit 971217
Packit 971217
mergebw wr, g, r
Packit 971217
mergewl x, wb, wr
Packit 971217
x4 addb argb, x, c128
Packit 971217
Packit 971217
.function video_orc_convert_AYUV_RGBA
Packit 971217
.flags 2d
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 4 ayuv guint8
Packit 971217
.param 2 p1
Packit 971217
.param 2 p2
Packit 971217
.param 2 p3
Packit 971217
.param 2 p4
Packit 971217
.param 2 p5
Packit 971217
.temp 1 a
Packit 971217
.temp 1 y
Packit 971217
.temp 1 u
Packit 971217
.temp 1 v
Packit 971217
.temp 2 wy
Packit 971217
.temp 2 wu
Packit 971217
.temp 2 wv
Packit 971217
.temp 2 wr
Packit 971217
.temp 2 wg
Packit 971217
.temp 2 wb
Packit 971217
.temp 1 r
Packit 971217
.temp 1 g
Packit 971217
.temp 1 b
Packit 971217
.temp 4 x
Packit 971217
.const 1 c128 128
Packit 971217
Packit 971217
x4 subb x, ayuv, c128 
Packit 971217
splitlw wv, wy, x
Packit 971217
splitwb y, a, wy
Packit 971217
splitwb v, u, wv
Packit 971217
Packit 971217
splatbw wy, y
Packit 971217
splatbw wu, u
Packit 971217
splatbw wv, v
Packit 971217
Packit 971217
mulhsw wy, wy, p1
Packit 971217
Packit 971217
mulhsw wr, wv, p2
Packit 971217
addw wr, wy, wr
Packit 971217
convssswb r, wr
Packit 971217
Packit 971217
mulhsw wb, wu, p3
Packit 971217
addw wb, wy, wb
Packit 971217
convssswb b, wb
Packit 971217
mergebw wb, b, a
Packit 971217
Packit 971217
mulhsw wg, wu, p4
Packit 971217
addw wg, wy, wg
Packit 971217
mulhsw wy, wv, p5
Packit 971217
addw wg, wg, wy
Packit 971217
Packit 971217
convssswb g, wg
Packit 971217
Packit 971217
mergebw wr, r, g
Packit 971217
mergewl x, wr, wb
Packit 971217
x4 addb argb, x, c128
Packit 971217
Packit 971217
.function video_orc_convert_I420_BGRA
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 1 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.param 2 p1
Packit 971217
.param 2 p2
Packit 971217
.param 2 p3
Packit 971217
.param 2 p4
Packit 971217
.param 2 p5
Packit 971217
.temp 2 wy
Packit 971217
.temp 2 wu
Packit 971217
.temp 2 wv
Packit 971217
.temp 2 wr
Packit 971217
.temp 2 wg
Packit 971217
.temp 2 wb
Packit 971217
.temp 1 r
Packit 971217
.temp 1 g
Packit 971217
.temp 1 b
Packit 971217
.temp 4 x
Packit 971217
.const 1 c128 128
Packit 971217
.const 4 c4128 128
Packit 971217
Packit 971217
subb r, y, c128
Packit 971217
splatbw wy, r
Packit 971217
loadupdb r, u
Packit 971217
subb r, r, c128
Packit 971217
splatbw wu, r
Packit 971217
loadupdb r, v
Packit 971217
subb r, r, c128
Packit 971217
splatbw wv, r
Packit 971217
Packit 971217
mulhsw wy, wy, p1
Packit 971217
Packit 971217
mulhsw wr, wv, p2
Packit 971217
addw wr, wy, wr
Packit 971217
convssswb r, wr
Packit 971217
mergebw wr, r, 127
Packit 971217
Packit 971217
mulhsw wb, wu, p3
Packit 971217
addw wb, wy, wb
Packit 971217
convssswb b, wb
Packit 971217
Packit 971217
mulhsw wg, wu, p4
Packit 971217
addw wg, wy, wg
Packit 971217
mulhsw wy, wv, p5
Packit 971217
addw wg, wg, wy
Packit 971217
Packit 971217
convssswb g, wg
Packit 971217
Packit 971217
mergebw wb, b, g
Packit 971217
mergewl x, wb, wr
Packit 971217
x4 addb argb, x, c4128
Packit 971217
Packit 971217
.function video_orc_convert_I420_ARGB
Packit 971217
.dest 4 argb guint8
Packit 971217
.source 1 y guint8
Packit 971217
.source 1 u guint8
Packit 971217
.source 1 v guint8
Packit 971217
.param 2 p1
Packit 971217
.param 2 p2
Packit 971217
.param 2 p3
Packit 971217
.param 2 p4
Packit 971217
.param 2 p5
Packit 971217
.temp 2 wy
Packit 971217
.temp 2 wu
Packit 971217
.temp 2 wv
Packit 971217
.temp 2 wr
Packit 971217
.temp 2 wg
Packit 971217
.temp 2 wb
Packit 971217
.temp 1 r
Packit 971217
.temp 1 g
Packit 971217
.temp 1 b
Packit 971217
.temp 4 x
Packit 971217
.const 1 c128 128
Packit 971217
.const 4 c4128 128
Packit 971217
Packit 971217
subb r, y, c128
Packit 971217
splatbw wy, r
Packit 971217
loadupdb r, u
Packit 971217
subb r, r, c128
Packit 971217
splatbw wu, r
Packit 971217
loadupdb r, v
Packit 971217
subb r, r, c128
Packit 971217
splatbw wv, r
Packit 971217
Packit 971217
mulhsw wy, wy, p1
Packit 971217
Packit 971217
mulhsw wr, wv, p2
Packit 971217
addw wr, wy, wr
Packit 971217
convssswb r, wr
Packit 971217
mergebw wr, 127, r
Packit 971217
Packit 971217
mulhsw wb, wu, p3
Packit 971217
addw wb, wy, wb
Packit 971217
convssswb b, wb
Packit 971217
Packit 971217
mulhsw wg, wu, p4
Packit 971217
addw wg, wy, wg
Packit 971217
mulhsw wy, wv, p5
Packit 971217
addw wg, wg, wy
Packit 971217
Packit 971217
convssswb g, wg
Packit 971217
Packit 971217
mergebw wb, g, b
Packit 971217
mergewl x, wr, wb
Packit 971217
x4 addb argb, x, c4128
Packit 971217
Packit 971217
.function video_orc_matrix8
Packit 971217
.backup _custom_video_orc_matrix8
Packit 971217
.source 4 argb guint8
Packit 971217
.dest 4 ayuv guint8
Packit 971217
.longparam 8 p1
Packit 971217
.longparam 8 p2
Packit 971217
.longparam 8 p3
Packit 971217
.longparam 8 p4
Packit 971217
.const 1 c128 128
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
.temp 1 b1
Packit 971217
.temp 1 b2
Packit 971217
.temp 4 l1
Packit 971217
.temp 4 ayuv2
Packit 971217
.temp 8 aq
Packit 971217
.temp 8 q1
Packit 971217
.temp 8 pr1
Packit 971217
.temp 8 pr2
Packit 971217
.temp 8 pr3
Packit 971217
Packit 971217
loadpq pr1, p1
Packit 971217
loadpq pr2, p2
Packit 971217
loadpq pr3, p3
Packit 971217
Packit 971217
x4 subb l1, argb, c128
Packit 971217
Packit 971217
select0lw w1, l1
Packit 971217
select1lw w2, l1
Packit 971217
select0wb b1, w1
Packit 971217
select1wb b2, w1
Packit 971217
Packit 971217
convubw w1, b1
Packit 971217
convuwl l1, w1
Packit 971217
x4 mergebw aq, l1, l1
Packit 971217
Packit 971217
splatbl l1, b2
Packit 971217
mergelq q1, l1, l1
Packit 971217
x4 mulhsw q1, q1, pr1
Packit 971217
x4 addw aq, aq, q1
Packit 971217
Packit 971217
select0wb b1, w2
Packit 971217
splatbl l1,b1
Packit 971217
mergelq q1, l1, l1
Packit 971217
x4 mulhsw q1, q1, pr2
Packit 971217
x4 addw aq, aq, q1
Packit 971217
Packit 971217
select1wb b2, w2
Packit 971217
splatbl l1, b2
Packit 971217
mergelq q1, l1, l1
Packit 971217
x4 mulhsw q1, q1, pr3
Packit 971217
x4 addw aq, aq, q1
Packit 971217
Packit 971217
x4 convssswb ayuv2, aq
Packit 971217
x4 addb ayuv, ayuv2, c128
Packit 971217
Packit 971217
#.function video_orc_resample_h_near_u32
Packit 971217
#.source 4 src guint32
Packit 971217
#.source 4 idx
Packit 971217
#.dest 4 dest guint32
Packit 971217
#.temp 4 t
Packit 971217
#
Packit 971217
#loadidxl t, src, idx
Packit 971217
#storel dest, t
Packit 971217
Packit 971217
.function video_orc_resample_h_near_u32_lq
Packit 971217
.dest 4 d1 guint32
Packit 971217
.source 4 s1 guint32
Packit 971217
.param 4 p1
Packit 971217
.param 4 p2
Packit 971217
Packit 971217
ldresnearl d1, s1, p1, p2
Packit 971217
Packit 971217
.function video_orc_resample_h_2tap_1u8_lq
Packit 971217
.dest 1 d1 guint8
Packit 971217
.source 1 s1 guint8
Packit 971217
.param 4 p1
Packit 971217
.param 4 p2
Packit 971217
Packit 971217
ldreslinb d1, s1, p1, p2
Packit 971217
Packit 971217
.function video_orc_resample_h_2tap_4u8_lq
Packit 971217
.dest 4 d1 guint32
Packit 971217
.source 4 s1 guint32
Packit 971217
.param 4 p1
Packit 971217
.param 4 p2
Packit 971217
Packit 971217
ldreslinl d1, s1, p1, p2
Packit 971217
Packit 971217
.function video_orc_resample_h_2tap_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 2 t1 gint16
Packit 971217
.source 2 t2 gint16
Packit 971217
.dest 1 d guint8
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, t1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, t2
Packit 971217
addw w1, w1, w2
Packit 971217
addw w1, w1, 32
Packit 971217
shrsw w1, w1, 6
Packit 971217
convsuswb d, w1
Packit 971217
Packit 971217
.function video_orc_resample_h_2tap_u16
Packit 971217
.source 2 s1 guint16
Packit 971217
.source 2 s2 guint16
Packit 971217
.source 2 t1 gint16
Packit 971217
.source 2 t2 gint16
Packit 971217
.dest 2 d guint16
Packit 971217
.temp 4 w1
Packit 971217
.temp 4 w2
Packit 971217
.temp 4 tl1
Packit 971217
.temp 4 tl2
Packit 971217
Packit 971217
convuwl w1, s1
Packit 971217
convswl tl1, t1
Packit 971217
mulll w1, w1, tl1
Packit 971217
convuwl w2, s2
Packit 971217
convswl tl2, t2
Packit 971217
mulll w2, w2, tl2
Packit 971217
addl w1, w1, w2
Packit 971217
addl w1, w1, 4096
Packit 971217
shrsl w1, w1, 12
Packit 971217
convsuslw d, w1
Packit 971217
Packit 971217
.function video_orc_resample_v_2tap_u8_lq
Packit 971217
.source 1 src1 guint8
Packit 971217
.source 1 src2 guint8
Packit 971217
.dest 1 dest guint8
Packit 971217
.param 2 p1 gint16
Packit 971217
.temp 1 t
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, src1
Packit 971217
convubw w2, src2
Packit 971217
subw w2, w2, w1
Packit 971217
mullw w2, w2, p1
Packit 971217
addw w2, w2, 128
Packit 971217
convhwb t, w2
Packit 971217
addb dest, t, src1
Packit 971217
Packit 971217
.function video_orc_resample_v_2tap_u16
Packit 971217
.source 2 src1 guint16
Packit 971217
.source 2 src2 guint16
Packit 971217
.dest 2 dest guint16
Packit 971217
.param 2 p1 gint16
Packit 971217
.temp 4 l1
Packit 971217
.temp 4 l2
Packit 971217
.temp 4 l3
Packit 971217
Packit 971217
convuwl l1, src1
Packit 971217
convuwl l2, src2
Packit 971217
subl l2, l2, l1
Packit 971217
convuwl l3, p1
Packit 971217
mulll l2, l2, l3
Packit 971217
addl l2, l2, 4096
Packit 971217
shrsl l2, l2, 12
Packit 971217
addl l1, l1, l2
Packit 971217
convsuslw dest, l1
Packit 971217
Packit 971217
.function video_orc_resample_v_2tap_u8
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.dest 1 d1 guint8
Packit 971217
.param 2 p1 gint16
Packit 971217
.temp 1 t
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
.temp 4 t1
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
convubw w2, s2
Packit 971217
subw w2, w2, w1
Packit 971217
mulswl t2, w2, p1
Packit 971217
addl t2, t2, 4095
Packit 971217
shrsl t2, t2, 12
Packit 971217
convlw w2, t2
Packit 971217
addw w2, w2, w1
Packit 971217
convsuswb d1, w2
Packit 971217
Packit 971217
.function video_orc_resample_v_4tap_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 1 s4 guint8
Packit 971217
.dest 1 d1 guint8
Packit 971217
.param 2 p1 gint16
Packit 971217
.param 2 p2 gint16
Packit 971217
.param 2 p3 gint16
Packit 971217
.param 2 p4 gint16
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, p1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, p2
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s3
Packit 971217
mullw w2, w2, p3
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s4
Packit 971217
mullw w2, w2, p4
Packit 971217
addw w1, w1, w2
Packit 971217
addw w1, w1, 32
Packit 971217
shrsw w1, w1, 6
Packit 971217
convsuswb d1, w1
Packit 971217
Packit 971217
.function video_orc_resample_v_4tap_u8
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 1 s4 guint8
Packit 971217
.dest 1 d1 guint8
Packit 971217
.param 2 p1 gint16
Packit 971217
.param 2 p2 gint16
Packit 971217
.param 2 p3 gint16
Packit 971217
.param 2 p4 gint16
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
.temp 4 t1
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mulswl t1, w1, p1
Packit 971217
convubw w2, s2
Packit 971217
mulswl t2, w2, p2
Packit 971217
addl t1, t1, t2
Packit 971217
convubw w2, s3
Packit 971217
mulswl t2, w2, p3
Packit 971217
addl t1, t1, t2
Packit 971217
convubw w2, s4
Packit 971217
mulswl t2, w2, p4
Packit 971217
addl t1, t1, t2
Packit 971217
addl t1, t1, 4095
Packit 971217
shrsl t1, t1, 12
Packit 971217
convsuslw w1, t1
Packit 971217
convsuswb d1, w1
Packit 971217
Packit 971217
# crashes ORC for now but is potentially faster
Packit 971217
#.function video_orc_resample_h_4tap_u8
Packit 971217
#.source 1 s1 guint8
Packit 971217
#.source 1 s2 guint8
Packit 971217
#.source 1 s3 guint8
Packit 971217
#.source 1 s4 guint8
Packit 971217
#.source 2 t1 gint16
Packit 971217
#.source 2 t2 gint16
Packit 971217
#.source 2 t3 gint16
Packit 971217
#.source 2 t4 gint16
Packit 971217
#.dest 1 d1 guint8
Packit 971217
#.temp 2 w1
Packit 971217
#.temp 2 w2
Packit 971217
#.temp 4 l1
Packit 971217
#.temp 4 l2
Packit 971217
#
Packit 971217
#convubw w1, s1
Packit 971217
#mulswl l1, w1, t1
Packit 971217
#convubw w2, s2
Packit 971217
#mulswl l2, w2, t2
Packit 971217
#addl l1, l1, l2
Packit 971217
#convubw w2, s3
Packit 971217
#mulswl l2, w2, t3
Packit 971217
#addl l1, l1, l2
Packit 971217
#convubw w2, s4
Packit 971217
#mulswl l2, w2, t4
Packit 971217
#addl l1, l1, l2
Packit 971217
#addl l1, l1, 4095
Packit 971217
#shrsl l1, l1, 12
Packit 971217
#convsuslw w1, l1
Packit 971217
#convsuswb d1, w1
Packit 971217
Packit 971217
.function video_orc_resample_h_multaps_u8
Packit 971217
.source 1 s guint8
Packit 971217
.source 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 2 w1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mulswl d, w1, t
Packit 971217
Packit 971217
.function video_orc_resample_h_muladdtaps_u8
Packit 971217
.flags 2d
Packit 971217
.source 1 s guint8
Packit 971217
.source 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 2 w1
Packit 971217
.temp 4 t1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mulswl t1, w1, t
Packit 971217
addl d, d, t1
Packit 971217
Packit 971217
.function video_orc_resample_scaletaps_u8
Packit 971217
.source 4 s gint32
Packit 971217
.dest 1 d guint8
Packit 971217
.temp 2 w1
Packit 971217
.temp 4 t1
Packit 971217
Packit 971217
addl t1, s, 4095
Packit 971217
shrsl t1, t1, 12
Packit 971217
convsuslw w1, t1
Packit 971217
convsuswb d, w1
Packit 971217
Packit 971217
.function video_orc_resample_h_multaps_u8_lq
Packit 971217
.source 1 s guint8
Packit 971217
.source 2 t gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mullw d, w1, t
Packit 971217
Packit 971217
.function video_orc_resample_h_muladdtaps_u8_lq
Packit 971217
.flags 2d
Packit 971217
.source 1 s guint8
Packit 971217
.source 2 t gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mullw w1, w1, t
Packit 971217
addw d, d, w1
Packit 971217
Packit 971217
.function video_orc_resample_h_multaps3_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 2 t1 gint16
Packit 971217
.source 2 t2 gint16
Packit 971217
.source 2 t3 gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, t1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, t2
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s3
Packit 971217
mullw w2, w2, t3
Packit 971217
addw d, w1, w2
Packit 971217
Packit 971217
.function video_orc_resample_h_muladdtaps3_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 2 t1 gint16
Packit 971217
.source 2 t2 gint16
Packit 971217
.source 2 t3 gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, t1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, t2
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s3
Packit 971217
mullw w2, w2, t3
Packit 971217
addw w1, w1, w2
Packit 971217
addw d, d, w1
Packit 971217
Packit 971217
.function video_orc_resample_h_muladdscaletaps3_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 2 t1 gint16
Packit 971217
.source 2 t2 gint16
Packit 971217
.source 2 t3 gint16
Packit 971217
.source 2 temp gint16
Packit 971217
.dest 1 d guint8
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, t1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, t2
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s3
Packit 971217
mullw w2, w2, t3
Packit 971217
addw w1, w1, w2
Packit 971217
addw w1, w1, temp
Packit 971217
addw w1, w1, 32
Packit 971217
shrsw w1, w1, 6
Packit 971217
convsuswb d, w1
Packit 971217
Packit 971217
.function video_orc_resample_scaletaps_u8_lq
Packit 971217
.source 2 s gint16
Packit 971217
.dest 1 d guint8
Packit 971217
.temp 2 w1
Packit 971217
Packit 971217
addw w1, s, 32
Packit 971217
shrsw w1, w1, 6
Packit 971217
convsuswb d, w1
Packit 971217
Packit 971217
.function video_orc_resample_h_multaps_u16
Packit 971217
.source 2 s guint16
Packit 971217
.source 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 4 l1
Packit 971217
.temp 4 l2
Packit 971217
Packit 971217
convuwl l1, s
Packit 971217
convswl l2, t
Packit 971217
mulll d, l1, l2
Packit 971217
Packit 971217
.function video_orc_resample_h_muladdtaps_u16
Packit 971217
.flags 2d
Packit 971217
.source 2 s guint16
Packit 971217
.source 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 4 l1
Packit 971217
.temp 4 l2
Packit 971217
Packit 971217
convuwl l1, s
Packit 971217
convswl l2, t
Packit 971217
mulll l1, l1, l2
Packit 971217
addl d, d, l1
Packit 971217
Packit 971217
.function video_orc_resample_scaletaps_u16
Packit 971217
.source 4 s gint32
Packit 971217
.dest 2 d guint16
Packit 971217
.temp 4 t1
Packit 971217
Packit 971217
addl t1, s, 4095
Packit 971217
shrsl t1, t1, 12
Packit 971217
convsuslw d, t1
Packit 971217
Packit 971217
.function video_orc_resample_v_multaps_u8
Packit 971217
.source 1 s guint8
Packit 971217
.param 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 2 w1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mulswl d, w1, t
Packit 971217
Packit 971217
.function video_orc_resample_v_muladdtaps_u8
Packit 971217
.source 1 s guint8
Packit 971217
.param 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 2 w1
Packit 971217
.temp 4 t1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mulswl t1, w1, t
Packit 971217
addl d, d, t1
Packit 971217
Packit 971217
.function video_orc_resample_v_multaps_u16
Packit 971217
.source 2 s guint16
Packit 971217
.param 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 4 l1
Packit 971217
Packit 971217
convuwl l1, s
Packit 971217
mulll d, l1, t
Packit 971217
Packit 971217
.function video_orc_resample_v_muladdtaps_u16
Packit 971217
.source 2 s guint16
Packit 971217
.param 2 t gint16
Packit 971217
.dest 4 d gint32
Packit 971217
.temp 4 t1
Packit 971217
.temp 4 t2
Packit 971217
Packit 971217
convuwl t1, s
Packit 971217
convswl t2, t
Packit 971217
mulll t1, t1, t2
Packit 971217
addl d, d, t1
Packit 971217
Packit 971217
.function video_orc_resample_v_multaps_u8_lq
Packit 971217
.source 1 s guint8
Packit 971217
.param 2 t gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mullw d, w1, t
Packit 971217
Packit 971217
.function video_orc_resample_v_multaps4_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 1 s4 guint8
Packit 971217
.param 2 t1 gint16
Packit 971217
.param 2 t2 gint16
Packit 971217
.param 2 t3 gint16
Packit 971217
.param 2 t4 gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, t1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, t2
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s3
Packit 971217
mullw w2, w2, t3
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s4
Packit 971217
mullw w2, w2, t4
Packit 971217
addw d, w1, w2
Packit 971217
Packit 971217
.function video_orc_resample_v_muladdtaps_u8_lq
Packit 971217
.source 1 s guint8
Packit 971217
.param 2 t gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
Packit 971217
convubw w1, s
Packit 971217
mullw w1, w1, t
Packit 971217
addw d, d, w1
Packit 971217
Packit 971217
.function video_orc_resample_v_muladdtaps4_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 1 s4 guint8
Packit 971217
.param 2 t1 gint16
Packit 971217
.param 2 t2 gint16
Packit 971217
.param 2 t3 gint16
Packit 971217
.param 2 t4 gint16
Packit 971217
.dest 2 d gint16
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, t1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, t2
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s3
Packit 971217
mullw w2, w2, t3
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s4
Packit 971217
mullw w2, w2, t4
Packit 971217
addw w1, w1, w2
Packit 971217
addw d, d, w1
Packit 971217
Packit 971217
.function video_orc_resample_v_muladdscaletaps4_u8_lq
Packit 971217
.source 1 s1 guint8
Packit 971217
.source 1 s2 guint8
Packit 971217
.source 1 s3 guint8
Packit 971217
.source 1 s4 guint8
Packit 971217
.source 2 temp gint16
Packit 971217
.param 2 t1 gint16
Packit 971217
.param 2 t2 gint16
Packit 971217
.param 2 t3 gint16
Packit 971217
.param 2 t4 gint16
Packit 971217
.dest 1 d guint8
Packit 971217
.temp 2 w1
Packit 971217
.temp 2 w2
Packit 971217
Packit 971217
convubw w1, s1
Packit 971217
mullw w1, w1, t1
Packit 971217
convubw w2, s2
Packit 971217
mullw w2, w2, t2
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s3
Packit 971217
mullw w2, w2, t3
Packit 971217
addw w1, w1, w2
Packit 971217
convubw w2, s4
Packit 971217
mullw w2, w2, t4
Packit 971217
addw w1, w1, w2
Packit 971217
addw w1, w1, temp
Packit 971217
addw w1, w1, 32
Packit 971217
shrsw w1, w1, 6
Packit 971217
convsuswb d, w1
Packit 971217
Packit 971217
.function video_orc_chroma_down_h2_u8
Packit 971217
.source 8 s guint8
Packit 971217
.dest 8 d guint8
Packit 971217
.temp 4 ayuv1
Packit 971217
.temp 4 ayuv2
Packit 971217
.temp 2 ay1
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
Packit 971217
splitql ayuv2, ayuv1, s
Packit 971217
splitlw uv1, ay1, ayuv1
Packit 971217
select1lw uv2, ayuv2
Packit 971217
x2 avgub uv1, uv1, uv2
Packit 971217
mergewl ayuv1, ay1, uv1
Packit 971217
mergelq d, ayuv1, ayuv2
Packit 971217
Packit 971217
#.function video_orc_chroma_up_h2_cs_u8
Packit 971217
#.source 8 s guint8
Packit 971217
#.source 4 s1 guint8
Packit 971217
#.dest 8 d guint8
Packit 971217
#.temp 4 ayuv1
Packit 971217
#.temp 4 ayuv2
Packit 971217
#.temp 4 ayuv3
Packit 971217
#.temp 2 ay2
Packit 971217
#.temp 2 uv2
Packit 971217
#.temp 2 uv3
Packit 971217
#
Packit 971217
#splitql ayuv2, ayuv1, s
Packit 971217
#ldresnearl ayuv3, s1, 0x20000, 0x20000
Packit 971217
#splitlw uv2, ay2, ayuv2
Packit 971217
#select1lw uv3, ayuv3
Packit 971217
#x2 avgub uv2, uv2, uv3
Packit 971217
#mergewl ayuv2, ay2, uv2
Packit 971217
#mergelq d, ayuv1, ayuv2
Packit 971217
Packit 971217
.function video_orc_chroma_down_v2_u8
Packit 971217
.source 4 s1 guint8
Packit 971217
.source 4 s2 guint8
Packit 971217
.dest 4 d guint8
Packit 971217
.temp 2 ay1
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
Packit 971217
splitlw uv1, ay1, s1
Packit 971217
select1lw uv2, s2
Packit 971217
x2 avgub uv1, uv1, uv2
Packit 971217
mergewl d, ay1, uv1
Packit 971217
Packit 971217
.function video_orc_chroma_up_v2_u8
Packit 971217
.source 4 s1 guint8
Packit 971217
.source 4 s2 guint8
Packit 971217
.dest 4 d1 guint8
Packit 971217
.dest 4 d2 guint8
Packit 971217
.temp 2 ay1
Packit 971217
.temp 2 ay2
Packit 971217
.temp 2 uv1
Packit 971217
.temp 2 uv2
Packit 971217
.temp 4 uuvv1
Packit 971217
.temp 4 uuvv2
Packit 971217
.temp 4 uuvv3
Packit 971217
Packit 971217
splitlw uv1, ay1, s1
Packit 971217
splitlw uv2, ay2, s2
Packit 971217
x2 convubw uuvv1, uv1
Packit 971217
x2 convubw uuvv2, uv2
Packit 971217
Packit 971217
x2 mullw uuvv3, uuvv1, 3
Packit 971217
x2 addw uuvv3, uuvv3, uuvv2
Packit 971217
x2 addw uuvv3, uuvv3, 2
Packit 971217
x2 shruw uuvv3, uuvv3, 2
Packit 971217
x2 convsuswb uv1, uuvv3
Packit 971217
mergewl d1, ay1, uv1
Packit 971217
Packit 971217
x2 mullw uuvv3, uuvv2, 3
Packit 971217
x2 addw uuvv3, uuvv3, uuvv1
Packit 971217
x2 addw uuvv3, uuvv3, 2
Packit 971217
x2 shruw uuvv3, uuvv3, 2
Packit 971217
x2 convsuswb uv2, uuvv3
Packit 971217
mergewl d2, ay2, uv2
Packit 971217
Packit 971217
.function video_orc_chroma_up_v2_u16
Packit 971217
.source 8 s1 guint16
Packit 971217
.source 8 s2 guint16
Packit 971217
.dest 8 d1 guint16
Packit 971217
.dest 8 d2 guint16
Packit 971217
.temp 4 ay1
Packit 971217
.temp 4 ay2
Packit 971217
.temp 4 uv1
Packit 971217
.temp 4 uv2
Packit 971217
.temp 8 uuvv1
Packit 971217
.temp 8 uuvv2
Packit 971217
.temp 8 uuvv3
Packit 971217
Packit 971217
splitql uv1, ay1, s1
Packit 971217
splitql uv2, ay2, s2
Packit 971217
x2 convuwl uuvv1, uv1
Packit 971217
x2 convuwl uuvv2, uv2
Packit 971217
Packit 971217
x2 mulll uuvv3, uuvv1, 3
Packit 971217
x2 addl uuvv3, uuvv3, uuvv2
Packit 971217
x2 addl uuvv3, uuvv3, 2
Packit 971217
x2 shrul uuvv3, uuvv3, 2
Packit 971217
x2 convsuslw uv1, uuvv3
Packit 971217
mergelq d1, ay1, uv1
Packit 971217
Packit 971217
x2 mulll uuvv3, uuvv2, 3
Packit 971217
x2 addl uuvv3, uuvv3, uuvv1
Packit 971217
x2 addl uuvv3, uuvv3, 2
Packit 971217
x2 shrul uuvv3, uuvv3, 2
Packit 971217
x2 convsuslw uv2, uuvv3
Packit 971217
mergelq d2, ay2, uv2
Packit 971217
Packit 971217
.function video_orc_chroma_down_v2_u16
Packit 971217
.source 8 s1 guint16
Packit 971217
.source 8 s2 guint16
Packit 971217
.dest 8 d guint16
Packit 971217
.temp 4 ay1
Packit 971217
.temp 4 uv1
Packit 971217
.temp 4 uv2
Packit 971217
Packit 971217
splitql uv1, ay1, s1
Packit 971217
select1ql uv2, s2
Packit 971217
x2 avguw uv1, uv1, uv2
Packit 971217
mergelq d, ay1, uv1
Packit 971217
Packit 971217
Packit 971217
.function video_orc_chroma_down_v4_u8
Packit 971217
.source 4 s1 guint8
Packit 971217
.source 4 s2 guint8
Packit 971217
.source 4 s3 guint8
Packit 971217
.source 4 s4 guint8
Packit 971217
.dest 4 d guint8
Packit 971217
.temp 2 ay1
Packit 971217
.temp 2 uv1
Packit 971217
.temp 4 uuvv1
Packit 971217
.temp 4 uuvv2
Packit 971217
.temp 4 uuvv3
Packit 971217
Packit 971217
splitlw uv1, ay1, s1
Packit 971217
x2 convubw uuvv1, uv1
Packit 971217
select1lw uv1, s4
Packit 971217
x2 convubw uuvv2, uv1
Packit 971217
x2 addw uuvv3, uuvv1, uuvv2
Packit 971217
select1lw uv1, s2
Packit 971217
x2 convubw uuvv1, uv1
Packit 971217
select1lw uv1, s3
Packit 971217
x2 convubw uuvv2, uv1
Packit 971217
x2 addw uuvv1, uuvv1, uuvv2
Packit 971217
x2 shlw uuvv2, uuvv1, 1
Packit 971217
x2 addw uuvv1, uuvv1, uuvv2
Packit 971217
x2 addw uuvv3, uuvv3, uuvv1
Packit 971217
x2 addw uuvv3, uuvv3, 4
Packit 971217
x2 shruw uuvv3, uuvv3, 3
Packit 971217
x2 convsuswb uv1, uuvv3
Packit 971217
mergewl d, ay1, uv1
Packit 971217
Packit 971217
.function video_orc_chroma_down_v4_u16
Packit 971217
.source 8 s1 guint16
Packit 971217
.source 8 s2 guint16
Packit 971217
.source 8 s3 guint16
Packit 971217
.source 8 s4 guint16
Packit 971217
.dest 8 d guint16
Packit 971217
.temp 4 ay1
Packit 971217
.temp 4 uv1
Packit 971217
.temp 8 uuvv1
Packit 971217
.temp 8 uuvv2
Packit 971217
.temp 8 uuvv3
Packit 971217
Packit 971217
splitql uv1, ay1, s1
Packit 971217
x2 convuwl uuvv1, uv1
Packit 971217
select1ql uv1, s4
Packit 971217
x2 convuwl uuvv2, uv1
Packit 971217
x2 addl uuvv3, uuvv1, uuvv2
Packit 971217
select1ql uv1, s2
Packit 971217
x2 convuwl uuvv1, uv1
Packit 971217
select1ql uv1, s3
Packit 971217
x2 convuwl uuvv2, uv1
Packit 971217
x2 addl uuvv1, uuvv1, uuvv2
Packit 971217
x2 shll uuvv2, uuvv1, 1
Packit 971217
x2 addl uuvv1, uuvv1, uuvv2
Packit 971217
x2 addl uuvv3, uuvv3, uuvv1
Packit 971217
x2 addl uuvv3, uuvv3, 4
Packit 971217
x2 shrul uuvv3, uuvv3, 3
Packit 971217
x2 convsuslw uv1, uuvv3
Packit 971217
mergelq d, ay1, uv1
Packit 971217
Packit 971217
.function video_orc_dither_none_4u8_mask
Packit 971217
.dest 4 p guint8
Packit 971217
.param 4 masks
Packit 971217
.temp 4 m
Packit 971217
Packit 971217
loadpl m, masks
Packit 971217
x4 andnb p, m, p
Packit 971217
Packit 971217
.function video_orc_dither_none_4u16_mask
Packit 971217
.dest 8 p guint16
Packit 971217
.longparam 8 masks
Packit 971217
.temp 8 m
Packit 971217
Packit 971217
loadpq m, masks
Packit 971217
x4 andnw p, m, p
Packit 971217
Packit 971217
.function video_orc_dither_verterr_4u8_mask
Packit 971217
.dest 4 p guint8
Packit 971217
.dest 8 e guint16
Packit 971217
.longparam 8 masks
Packit 971217
.temp 8 m
Packit 971217
.temp 8 t1
Packit 971217
Packit 971217
loadpq m, masks
Packit 971217
x4 convubw t1, p
Packit 971217
x4 addw t1, e, t1
Packit 971217
x4 andw e, m, t1
Packit 971217
x4 andnw t1, m, t1
Packit 971217
x4 convsuswb p, t1
Packit 971217
Packit 971217
.function video_orc_dither_fs_muladd_u8
Packit 971217
.dest 2 e guint16
Packit 971217
.temp 2 t1
Packit 971217
.temp 2 t2
Packit 971217
Packit 971217
loadoffw t2, e, 4
Packit 971217
mullw t2, t2, 5
Packit 971217
addw t1, t2, e
Packit 971217
loadoffw t2, e, 8
Packit 971217
mullw t2, t2, 3
Packit 971217
addw e, t1, t2
Packit 971217
Packit 971217
# due to error propagation we should disable
Packit 971217
# loop_shift for this function and only work on
Packit 971217
# 4 pixels at a time.
Packit 971217
#.function video_orc_dither_fs_add_4u8_mask
Packit 971217
#.flags no-unroll
Packit 971217
#.dest 4 d guint8
Packit 971217
#.dest 8 e1 guint16
Packit 971217
#.dest 8 e2 guint16
Packit 971217
#.longparam 8 masks
Packit 971217
#.temp 8 p
Packit 971217
#.temp 8 t1
Packit 971217
#.temp 8 t2
Packit 971217
#
Packit 971217
#x4 mullw t1, e1, 7
Packit 971217
#x4 addw t1, t1, e2
Packit 971217
#x4 shruw t1, t1, 4
Packit 971217
#x4 convubw p, d
Packit 971217
#x4 addw t1, t1, p
Packit 971217
#x4 andnw p, masks, t1
Packit 971217
#x4 convsuswb d, p
Packit 971217
#x4 andw e2, t1, masks
Packit 971217
Packit 971217
.function video_orc_dither_ordered_u8
Packit 971217
.source 1 e guint8
Packit 971217
.dest 1 d guint8
Packit 971217
Packit 971217
addusb d, d, e
Packit 971217
Packit 971217
.function video_orc_dither_ordered_4u8_mask
Packit 971217
.source 8 e1 guint16
Packit 971217
.dest 4 d guint8
Packit 971217
.longparam 8 masks
Packit 971217
.temp 8 p
Packit 971217
.temp 8 m
Packit 971217
Packit 971217
loadpq m, masks
Packit 971217
x4 convubw p, d
Packit 971217
x4 addw p, p, e1
Packit 971217
x4 andnw p, m, p
Packit 971217
x4 convsuswb d, p
Packit 971217
Packit 971217
.function video_orc_dither_ordered_4u16_mask
Packit 971217
.source 8 e1 guint16
Packit 971217
.dest 8 d guint16
Packit 971217
.longparam 8 masks
Packit 971217
.temp 8 p
Packit 971217
.temp 8 m
Packit 971217
Packit 971217
loadpq m, masks
Packit 971217
x4 addusw p, d, e1
Packit 971217
x4 andnw d, m, p
Packit 971217
Packit 971217
.function video_orc_convert_UYVY_GRAY8
Packit 971217
.flags 2d
Packit 971217
.dest 1 d guint8
Packit 971217
.source 2 s
Packit 971217
.temp 1 t1
Packit 971217
.temp 2 t2
Packit 971217
Packit 971217
loadw t2, s
Packit 971217
convhwb t1, t2
Packit 971217
storeb d, t1