.function orc_blend_little .flags 1d .dest 4 d guint8 .source 4 s guint8 .temp 4 t .temp 2 tw .temp 1 tb .temp 4 a .temp 8 d_wide .temp 8 s_wide .temp 8 a_wide .const 4 a_alpha 0x000000ff loadl t, s convlw tw, t convwb tb, tw splatbl a, tb x4 convubw a_wide, a x4 shruw a_wide, a_wide, 8 x4 convubw s_wide, t loadl t, d x4 convubw d_wide, t x4 subw s_wide, s_wide, d_wide x4 mullw s_wide, s_wide, a_wide x4 div255w s_wide, s_wide x4 addw d_wide, d_wide, s_wide x4 convwb t, d_wide orl t, t, a_alpha storel d, t .function orc_blend_big .flags 1d .dest 4 d guint8 .source 4 s guint8 .temp 4 t .temp 4 t2 .temp 2 tw .temp 1 tb .temp 4 a .temp 8 d_wide .temp 8 s_wide .temp 8 a_wide .const 4 a_alpha 0xff000000 loadl t, s shrul t2, t, 24 convlw tw, t2 convwb tb, tw splatbl a, tb x4 convubw a_wide, a x4 shruw a_wide, a_wide, 8 x4 convubw s_wide, t loadl t, d x4 convubw d_wide, t x4 subw s_wide, s_wide, d_wide x4 mullw s_wide, s_wide, a_wide x4 div255w s_wide, s_wide x4 addw d_wide, d_wide, s_wide x4 convwb t, d_wide orl t, t, a_alpha storel d, t .function orc_unpack_I420 .dest 4 d guint8 .source 1 y guint8 .source 1 u guint8 .source 1 v guint8 .const 1 c255 255 .temp 2 uv .temp 2 ay .temp 1 tu .temp 1 tv loadupdb tu, u loadupdb tv, v mergebw uv, tu, tv mergebw ay, c255, y mergewl d, ay, uv .function orc_pack_I420 .dest 2 y guint8 .dest 1 u guint8 .dest 1 v guint8 .source 8 ayuv guint8 .temp 4 ay .temp 4 uv .temp 2 uu .temp 2 vv .temp 1 t1 .temp 1 t2 x2 splitlw uv, ay, ayuv x2 select1wb y, ay x2 splitwb vv, uu, uv splitwb t1, t2, uu avgub u, t1, t2 splitwb t1, t2, vv avgub v, t1, t2 .function orc_unpack_YUY2 .dest 8 ayuv guint8 .source 4 yuy2 guint8 .const 2 c255 0xff .temp 2 yy .temp 2 uv .temp 4 ayay .temp 4 uvuv x2 splitwb uv, yy, yuy2 x2 mergebw ayay, c255, yy mergewl uvuv, uv, uv x2 mergewl ayuv, ayay, uvuv .function orc_pack_YUY2 .dest 4 yuy2 guint8 .source 8 ayuv guint8 .temp 2 yy .temp 2 uv1 .temp 2 uv2 .temp 4 ayay .temp 4 uvuv x2 splitlw uvuv, ayay, ayuv splitlw uv1, uv2, uvuv x2 avgub uv1, uv1, uv2 x2 select1wb yy, ayay x2 mergebw yuy2, yy, uv1 .function orc_pack_UYVY .dest 4 yuy2 guint8 .source 8 ayuv guint8 .temp 2 yy .temp 2 uv1 .temp 2 uv2 .temp 4 ayay .temp 4 uvuv x2 splitlw uvuv, ayay, ayuv splitlw uv1, uv2, uvuv x2 avgub uv1, uv1, uv2 x2 select1wb yy, ayay x2 mergebw yuy2, uv1, yy .function orc_unpack_UYVY .dest 8 ayuv guint8 .source 4 uyvy guint8 .const 2 c255 0xff .temp 2 yy .temp 2 uv .temp 4 ayay .temp 4 uvuv x2 splitwb yy, uv, uyvy x2 mergebw ayay, c255, yy mergewl uvuv, uv, uv x2 mergewl ayuv, ayay, uvuv .function orc_unpack_YVYU .dest 8 ayuv guint8 .source 4 uyvy guint8 .const 2 c255 0xff .temp 2 yy .temp 2 uv .temp 4 ayay .temp 4 uvuv x2 splitwb uv, yy, uyvy swapw uv, uv x2 mergebw ayay, c255, yy mergewl uvuv, uv, uv x2 mergewl ayuv, ayay, uvuv .function orc_pack_YVYU .dest 4 yuy2 guint8 .source 8 ayuv guint8 .temp 2 yy .temp 2 uv1 .temp 2 uv2 .temp 4 ayay .temp 4 uvuv x2 splitlw uvuv, ayay, ayuv splitlw uv1, uv2, uvuv x2 avgub uv1, uv1, uv2 x2 select1wb yy, ayay swapw uv1, uv1 x2 mergebw yuy2, yy, uv1 .function orc_unpack_YUV9 .dest 8 d guint8 .source 2 y guint8 .source 1 u guint8 .source 1 v guint8 .const 1 c255 255 .temp 2 tuv .temp 4 ay .temp 4 uv .temp 1 tu .temp 1 tv loadupdb tu, u loadupdb tv, v mergebw tuv, tu, tv mergewl uv, tuv, tuv x2 mergebw ay, c255, y x2 mergewl d, ay, uv .function orc_unpack_Y42B .dest 8 ayuv guint8 .source 2 yy guint8 .source 1 u guint8 .source 1 v guint8 .const 1 c255 255 .temp 2 uv .temp 2 ay .temp 4 uvuv .temp 4 ayay mergebw uv, u, v x2 mergebw ayay, c255, yy mergewl uvuv, uv, uv x2 mergewl ayuv, ayay, uvuv .function orc_pack_Y42B .dest 2 y guint8 .dest 1 u guint8 .dest 1 v guint8 .source 8 ayuv guint8 .temp 4 ayay .temp 4 uvuv .temp 2 uv1 .temp 2 uv2 x2 splitlw uvuv, ayay, ayuv splitlw uv1, uv2, uvuv x2 avgub uv1, uv1, uv2 splitwb v, u, uv1 x2 select1wb y, ayay .function orc_unpack_Y444 .dest 4 ayuv guint8 .source 1 y guint8 .source 1 u guint8 .source 1 v guint8 .const 1 c255 255 .temp 2 uv .temp 2 ay mergebw uv, u, v mergebw ay, c255, y mergewl ayuv, ay, uv .function orc_pack_Y444 .dest 1 y guint8 .dest 1 u guint8 .dest 1 v guint8 .source 4 ayuv guint8 .temp 2 ay .temp 2 uv splitlw uv, ay, ayuv splitwb v, u, uv select1wb y, ay .function orc_unpack_GRAY8 .dest 4 ayuv guint8 .source 1 y guint8 .const 1 c255 255 .const 2 c0x8080 0x8080 .temp 2 ay mergebw ay, c255, y mergewl ayuv, ay, c0x8080 .function orc_pack_GRAY8 .dest 1 y guint8 .source 4 ayuv guint8 .temp 2 ay select0lw ay, ayuv select1wb y, ay .function orc_unpack_BGRA .dest 4 argb guint8 .source 4 bgra guint8 swapl argb, bgra .function orc_pack_BGRA .dest 4 bgra guint8 .source 4 argb guint8 swapl bgra, argb .function orc_pack_RGBA .dest 4 rgba guint8 .source 4 argb guint8 .temp 1 a .temp 1 r .temp 1 g .temp 1 b .temp 2 rg .temp 2 ba .temp 2 ar .temp 2 gb splitlw gb, ar, argb splitwb b, g, gb splitwb r, a, ar mergebw ba, b, a mergebw rg, r, g mergewl rgba, rg, ba .function orc_unpack_RGBA .dest 4 argb guint8 .source 4 rgba guint8 .temp 1 a .temp 1 r .temp 1 g .temp 1 b .temp 2 rg .temp 2 ba .temp 2 ar .temp 2 gb splitlw ba, rg, rgba splitwb g, r, rg splitwb a, b, ba mergebw ar, a, r mergebw gb, g, b mergewl argb, ar, gb .function orc_unpack_ABGR .dest 4 argb guint8 .source 4 abgr guint8 .temp 1 a .temp 1 r .temp 1 g .temp 1 b .temp 2 gr .temp 2 ab .temp 2 ar .temp 2 gb splitlw gr, ab, abgr splitwb r, g, gr splitwb b, a, ab mergebw ar, a, r mergebw gb, g, b mergewl argb, ar, gb .function orc_pack_ABGR .dest 4 abgr guint8 .source 4 argb guint8 .temp 1 a .temp 1 r .temp 1 g .temp 1 b .temp 2 gr .temp 2 ab .temp 2 ar .temp 2 gb splitlw gb, ar, argb splitwb b, g, gb splitwb r, a, ar mergebw ab, a, b mergebw gr, g, r mergewl abgr, ab, gr .function orc_unpack_NV12 .dest 8 d guint8 .source 2 y guint8 .source 2 uv guint8 .const 1 c255 255 .temp 4 ay .temp 4 uvuv mergewl uvuv, uv, uv x2 mergebw ay, c255, y x2 mergewl d, ay, uvuv .function orc_pack_NV12 .dest 2 y guint8 .dest 2 uv guint8 .source 8 ayuv guint8 .temp 4 ay .temp 4 uvuv .temp 2 uv1 .temp 2 uv2 x2 splitlw uvuv, ay, ayuv x2 select1wb y, ay splitlw uv1, uv2, uvuv x2 avgub uv, uv1, uv2 .function orc_unpack_NV21 .dest 8 d guint8 .source 2 y guint8 .source 2 vu guint8 .const 1 c255 255 .temp 2 uv .temp 4 ay .temp 4 uvuv swapw uv, vu mergewl uvuv, uv, uv x2 mergebw ay, c255, y x2 mergewl d, ay, uvuv .function orc_pack_NV21 .dest 2 y guint8 .dest 2 vu guint8 .source 8 ayuv guint8 .temp 4 ay .temp 4 uvuv .temp 2 uv1 .temp 2 uv2 .temp 2 uv x2 splitlw uvuv, ay, ayuv x2 select1wb y, ay splitlw uv1, uv2, uvuv x2 avgub uv, uv1, uv2 swapw vu, uv .function orc_unpack_A420 .dest 4 d guint8 .source 1 y guint8 .source 1 u guint8 .source 1 v guint8 .source 1 a guint8 .temp 2 uv .temp 2 ay .temp 1 tu .temp 1 tv loadupdb tu, u loadupdb tv, v mergebw uv, tu, tv mergebw ay, a, y mergewl d, ay, uv .function orc_pack_A420 .dest 2 y guint8 .dest 1 u guint8 .dest 1 v guint8 .dest 2 a guint8 .source 8 ayuv guint8 .temp 4 ay .temp 4 uv .temp 2 uu .temp 2 vv .temp 1 t1 .temp 1 t2 x2 splitlw uv, ay, ayuv x2 select1wb y, ay x2 select0wb a, ay x2 splitwb vv, uu, uv splitwb t1, t2, uu avgub u, t1, t2 splitwb t1, t2, vv avgub v, t1, t2 .function orc_resample_bilinear_u32 .dest 4 d1 guint8 .source 4 s1 guint8 .param 4 p1 .param 4 p2 ldreslinl d1, s1, p1, p2 .function orc_merge_linear_u8 .dest 1 d1 .source 1 s1 .source 1 s2 .param 1 p1 .temp 2 t1 .temp 2 t2 .temp 1 a .temp 1 t loadb a, s1 convubw t1, s1 convubw t2, s2 subw t2, t2, t1 mullw t2, t2, p1 addw t2, t2, 128 convhwb t, t2 addb d1, t, a