On Jan 30, 2006, at 11:50 AM, Andrew Pinski wrote:
I'm trying to get:

void foo() {
   int rowfraclo[2];
   rowfraclo[1] = 42;
   asm ("movd mm6, %a0" : : "p" (rowfraclo+1));
}

With the below patch (still running the testsuite) I can get the
compiler to generate that code.  So, the question is how better can I
do this?

I don't know how better you can do but this actually fixes PR 23200.

I found an answer to my question. The solution is to use ARRAY_REF to form the PLUS_EXPR as it survives untouched longer. I use wrap with INDIRECT_REF and use "m" for the constraint and at -O0, I get the code I want, and no additional registers are burned. :-)

Reply via email to