On 01/08/2013 01:48 PM, Ronald S. Bultje wrote:
> Hi,
> 
> On Tue, Jan 8, 2013 at 10:27 AM, Luca Barbato <[email protected]> wrote:
>> On 08/01/13 17:50, Luca Barbato wrote:
>>> On 08/01/13 17:27, Daniel Kang wrote:
>>>> ---
>>>> This actually passes 32/64 bit Linux and 32 bit Windows.
>>>>
>>>
>>> Linux/amd64 with yasm-1.2 still fails.
>>>
>>
>> More information:
>>
>> gcc-4.6.2 works
>> gcc-4.7 fails
>> clang-3.3/trunk fails
> 
> 64bit failure suggests that we're not sign-extending some stack args
> correctly, or something along those lines. Daniel, make sure you're
> loading integers using movsxd on x86-64, or accessing them as dwords
> (r2d, namedargd) instead of qwords (r2, r2q, namedargq).

Another thing that I sometimes do, when needing to multiply or add to
the param anyway, is use lea, which will zero-extend (so it needs to be
assumed to be non-negative).

-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to