Hi guys,
On Sun, Feb 26, 2012 at 5:39 PM, Ronald S. Bultje <[email protected]> wrote:
> From: Henrik Gramner <[email protected]>
>
> Add support for all x86-64 registers
> Prefer caller-saved register over callee-saved on WIN64
> Support up to 15 function arguments
>
> Signed-off-by: Ronald S. Bultje <[email protected]>
> ---
> libavutil/x86/x86inc.asm | 218
> ++++++++++++++++++++++++----------------------
> 1 files changed, 114 insertions(+), 104 deletions(-)
Just FYI, this one isn't done yet. We have a ton of asm that needs
porting, I'll try to make a start but can't promise anything.
Basically, this patch removes the need to manually allocate registers
on x86-64 beyond the basic 7, but it also means we can't use r10/r11
anymore, since these are now part of the basic 7 on Win64. On Unix64,
they ("R10" and "R11") are available as "r7" and "r8", and r10/r11
actually refer to rbp/R12 (note how "R" is native register name, and
"r" is translated numeric register).
This automatically means any asm currently using "r10" and/or "r11" is
broken and needs to be modified for this patch to work fine. The "new"
way is to just declare the functions as cglobal with a n_regs > 7, and
use the translated register name (x86-64 only, of course). Help much
appreciated. ;-).
Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel