This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 3/5] Use x constraints for operands to vfmaddss and vfmaddsd
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: Peter Collingbourne <pcc at google dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Mon, 13 May 2013 18:04:38 +0200
- Subject: Re: [PATCH 3/5] Use x constraints for operands to vfmaddss and vfmaddsd
- References: <1368459372-2415-1-git-send-email-pcc at google dot com> <1368459372-2415-4-git-send-email-pcc at google dot com>
On Mon, May 13, 2013 at 08:36:10AM -0700, Peter Collingbourne wrote:
> While these instructions accept memory operands, only one operand
> may be a memory operand. Giving two operands xm constraints gives
> the compiler the option of using memory for both operands, which
> would result in invalid assembly code. Using x for all operands is
> more appropriate, as most x86_64 calling conventions will pass the
> arguments in registers anyway.
>
Not in all cases. When you must spill registers it is advantageous to
access loop invariants with memory operand. Give one multiplication
operand xm constraint and x to other.