On Sat, 1 Dec 2012, Christophe Gisquet wrote: > 2012/11/30 Loren Merritt <[email protected]>: > >>> +cglobal sbr_hf_apply_noise_0, 4,5,8, Y,s_m,q_filt,noise,kx,m_max >>> + mova m0, [ps_noise0] >>> + mov r4d, m_maxm >>> + call hf_apply_noise_main >>> + RET >> >> TAIL_CALL hf_apply_noise_main, 1 > > Which makes me think that every caller should have the same epilog > (same stack offset etc). Is there a way I just do a jmp here and let > the "jumpee" do the epilog.
Move the callee after the callers in sourcecode order, and make it a plain label, not a cglobal. Then it doesn't reset the registers in use, so RET does the same thing it would have in the previous function. Also don't have to repeat DECLARE_ARGS that way. One of the callers can fallthrough rather than jump. > Another thing I'm wondering (can't make sure for the next 4 days): > mov r4d, m_maxm > If I'm not mistaken, m_max should already be in r5 for linux > x86_64/amd64 ABI (whatever I should call it). > So I could save that mov and have instead hf_apply_noise_main use r5 > under that condition. Yes. But probably negligible. --Loren Merritt _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
