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
21 21
22%include "libavutil/x86/x86util.asm"22%include "libavutil/x86/x86util.asm"
23 23
24%if ARCH_X86_64
25
26SECTION_RODATA24SECTION_RODATA
27 25
28pb_128: times 16 db 12826pb_128: times 16 db 128
@@ -36,12 +34,18 @@ INIT_XMM sse2 · 7 unmodified lines
36; void restore_rgb_planes(uint8_t *src_r, uint8_t *src_g, uint8_t *src_b,34; void restore_rgb_planes(uint8_t *src_r, uint8_t *src_g, uint8_t *src_b,
37; ptrdiff_t linesize_r, ptrdiff_t linesize_g, ptrdiff_t linesize_b,35; ptrdiff_t linesize_r, ptrdiff_t linesize_g, ptrdiff_t linesize_b,
38; int width, int height)36; int width, int height)
39cglobal restore_rgb_planes, 8,9,4, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x37cglobal 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
40 movsxdifnidn wq, wd38 movsxdifnidn wq, wd
41 add src_rq, wq39 add src_rq, wq
42 add src_gq, wq40 add src_gq, wq
43 add src_bq, wq41 add src_bq, wq
44 neg wq42 neg wq
43%if ARCH_X86_64 == 0
44 mov wm, wq
45DEFINE_ARGS src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, x
46%define wq r6m
47%define hd r7mp
48%endif
45 mova m3, [pb_128]49 mova m3, [pb_128]
46.nextrow:50.nextrow:
47 mov xq, wq51 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
65 jg .nextrow69 jg .nextrow
66 REP_RET70 REP_RET
67 71
68cglobal restore_rgb_planes10, 8,9,5, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x72cglobal 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
69 shl wd, 173 shl wd, 1
70 shl linesize_rq, 174 shl linesize_rq, 1
71 shl linesize_gq, 175 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
76 mova m3, [pw_512]80 mova m3, [pw_512]
77 mova m4, [pw_1023]81 mova m4, [pw_1023]
78 neg wq82 neg wq
83%if ARCH_X86_64 == 0
84 mov wm, wq
85DEFINE_ARGS src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, x
86%define wq r6m
87%define hd r7mp
88%endif
79.nextrow:89.nextrow:
80 mov xq, wq90 mov xq, wq
81 91
@@ -99,5 +109,3 @@ cglobal restore_rgb_planes10, 8,9,5, src_r, src_g, src_b, linesize_r, linesize_g · 17 unmodified lines
99 sub hd, 1109 sub hd, 1
100 jg .nextrow110 jg .nextrow
101 REP_RET111 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
36{36{
37 int cpu_flags = av_get_cpu_flags();37 int cpu_flags = av_get_cpu_flags();
38 38
39 if (ARCH_X86_64 && EXTERNAL_SSE2(cpu_flags)) {39 if (EXTERNAL_SSE2(cpu_flags)) {
40 c->restore_rgb_planes = ff_restore_rgb_planes_sse2;40 c->restore_rgb_planes = ff_restore_rgb_planes_sse2;
41 c->restore_rgb_planes10 = ff_restore_rgb_planes10_sse2;41 c->restore_rgb_planes10 = ff_restore_rgb_planes10_sse2;
42 }42 }

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