comparison x86/vp8dsp.asm @ 12276:1c299b8f2930 libavcodec

Enable no-loop memory/register saving for ssse3/sse4 also.
author rbultje
date Mon, 26 Jul 2010 14:07:57 +0000
parents 709d5848abf8
children da5b503f050d
comparison
equal deleted inserted replaced
12275:709d5848abf8 12276:1c299b8f2930
2198 SPLATB_REG m2, hev_thr_reg, m7 ; hev_thresh 2198 SPLATB_REG m2, hev_thr_reg, m7 ; hev_thresh
2199 2199
2200 ; align stack 2200 ; align stack
2201 mov stack_reg, rsp ; backup stack pointer 2201 mov stack_reg, rsp ; backup stack pointer
2202 and rsp, ~(mmsize-1) ; align stack 2202 and rsp, ~(mmsize-1) ; align stack
2203 %ifidn %2, sse2 2203 %if mmsize == 16
2204 sub rsp, mmsize * 7 2204 sub rsp, mmsize * 7
2205 %else 2205 %else
2206 sub rsp, mmsize * 8 ; stack layout: [0]=E, [1]=I, [2]=hev_thr 2206 sub rsp, mmsize * 8 ; stack layout: [0]=E, [1]=I, [2]=hev_thr
2207 ; [3]=hev() result 2207 ; [3]=hev() result
2208 ; [4]=filter tmp result 2208 ; [4]=filter tmp result
2217 %define lim_res [rsp+mmsize*4] 2217 %define lim_res [rsp+mmsize*4]
2218 %define p0backup [rsp+mmsize*3] 2218 %define p0backup [rsp+mmsize*3]
2219 %define q0backup [rsp+mmsize*4] 2219 %define q0backup [rsp+mmsize*4]
2220 %define p2backup [rsp+mmsize*5] 2220 %define p2backup [rsp+mmsize*5]
2221 %define q2backup [rsp+mmsize*6] 2221 %define q2backup [rsp+mmsize*6]
2222 %ifidn %2, sse2 2222 %if mmsize == 16
2223 %define lim_sign [rsp] 2223 %define lim_sign [rsp]
2224 %else 2224 %else
2225 %define lim_sign [rsp+mmsize*7] 2225 %define lim_sign [rsp+mmsize*7]
2226 %endif 2226 %endif
2227 2227