History

x86/utvideodsp: make restore_rgb_planes functions work on x86_32

James Almer committed 9 years ago

Commit 44028541 parent c07af722 files · +15 −7Browse files

Unified · Split

2 files
  1. libavcodec/x86/utvideodsp.asm +14 −6
  2. libavcodec/x86/utvideodsp_init.c +1 −1
libavcodec/x86/utvideodsp.asm+14−6
@@ -21,8 +21,6 @@ · 20 unmodified lines
2121
2222 %include "libavutil/x86/x86util.asm"
2323
24−%if ARCH_X86_64
25−
2624 SECTION_RODATA
2725
2826 pb_128: times 16 db 128
@@ -36,12 +34,18 @@ INIT_XMM sse2 · 7 unmodified lines
3634 ; void restore_rgb_planes(uint8_t *src_r, uint8_t *src_g, uint8_t *src_b,
3735 ; ptrdiff_t linesize_r, ptrdiff_t linesize_g, ptrdiff_t linesize_b,
3836 ; int width, int height)
39−cglobal restore_rgb_planes, 8,9,4, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x
37+cglobal restore_rgb_planes, 7 + ARCH_X86_64, 7 + ARCH_X86_64 * 2, 4, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x
4038 movsxdifnidn wq, wd
4139 add src_rq, wq
4240 add src_gq, wq
4341 add src_bq, wq
4442 neg wq
43+%if ARCH_X86_64 == 0
44+ mov wm, wq
45+DEFINE_ARGS src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, x
46+%define wq r6m
47+%define hd r7mp
48+%endif
4549 mova m3, [pb_128]
4650 .nextrow:
4751 mov xq, wq
@@ -65,7 +69,7 @@ cglobal restore_rgb_planes, 8,9,4, src_r, src_g, src_b, linesize_r, linesize_g, · 17 unmodified lines
6569 jg .nextrow
6670 REP_RET
6771
68−cglobal restore_rgb_planes10, 8,9,5, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x
72+cglobal restore_rgb_planes10, 7 + ARCH_X86_64, 7 + ARCH_X86_64 * 2, 5, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x
6973 shl wd, 1
7074 shl linesize_rq, 1
7175 shl linesize_gq, 1
@@ -76,6 +80,12 @@ cglobal restore_rgb_planes10, 8,9,5, src_r, src_g, src_b, linesize_r, linesize_g · 4 unmodified lines
7680 mova m3, [pw_512]
7781 mova m4, [pw_1023]
7882 neg wq
83+%if ARCH_X86_64 == 0
84+ mov wm, wq
85+DEFINE_ARGS src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, x
86+%define wq r6m
87+%define hd r7mp
88+%endif
7989 .nextrow:
8090 mov xq, wq
8191
@@ -99,5 +109,3 @@ cglobal restore_rgb_planes10, 8,9,5, src_r, src_g, src_b, linesize_r, linesize_g · 17 unmodified lines
99109 sub hd, 1
100110 jg .nextrow
101111 REP_RET
102−
103−%endif
libavcodec/x86/utvideodsp_init.c+1−1
@@ -36,7 +36,7 @@ av_cold void ff_utvideodsp_init_x86(UTVideoDSPContext *c) · 35 unmodified lines
3636 {
3737 int cpu_flags = av_get_cpu_flags();
3838
39− if (ARCH_X86_64 && EXTERNAL_SSE2(cpu_flags)) {
39+ if (EXTERNAL_SSE2(cpu_flags)) {
4040 c->restore_rgb_planes = ff_restore_rgb_planes_sse2;
4141 c->restore_rgb_planes10 = ff_restore_rgb_planes10_sse2;
4242 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t