On Sat, Jan 19, 2013 at 08:33:25PM +0100, [email protected] wrote:
> Adds support for x86_64 x32-ABI and fixes inline assembly.
> 
> configure:
> - add x86_64_x32 and x86_64_x64 subarch for 32-bit and 64-bit ABI respectively
> - x86_64 remains enabled for both
> - pass x32 option to yasm (yasm not working yet, --disable-yasm is required)

Why is that option not working yet?

> libavutil/x86/asm.h:
> - REG* macros retain their meaning from x86_32.
>   Roughly 99.5% of all usage of GPRs is used directly or indirectly to refer
>   to memory. This ensures only very few changes are necessary in this area.
> - new macro REG_8 - refers to r8 (x64) or r8d (x32)
> - new macro REG_PTR_MOD - as argument modifier to specify pointer-sized 
> arguments
>   ("q" for x64, "k" for x32 and x86_32)
> - new macros REGra, REGrb, REGrc, REGrd, REGrD, REGrS, REGrBP
>   - refer to 64bit GRPs on all 64-bit arches, or 32bit GRP otherwise
>     (64bit registers required for push/pop, cpuid on x32)
> 
> x86_reg remains int64_t on all 64-bit arches.
> Usage that refers to memory has been converted to intptr_t
> (186 out of 188 occurences).
> 
> Indirect jmps/calls need special attention since they require 64bit operands.
> Suitable casts have been added.

Hmmm, this is a big patch about a slightly controversial new ABI :)

Could you split it into several pieces please?  That will make reviewing
and getting it merged much simpler.  For example, the intptr_t changes
can likely go in soon, the rest may need more thorough discussion.

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

Reply via email to