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
