Mercurial > libavcodec.hg
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 |