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

Reply via email to