Re: i686 pic & DCmode

2013-08-07 Thread Ian Lance Taylor
On Wed, Aug 7, 2013 at 10:34 AM, Nathan Sidwell wrote: > Having poked further, I find this in the testsuite: > > pr11001-strlen-2.c > --begin > register int regvar asm("%eax"); > > char * > do_copy (char *str) > { > return malloc (strlen (str) + 1); > } > --end > > Is that even meaningful? The

Re: i686 pic & DCmode

2013-08-07 Thread Nathan Sidwell
Having poked further, I find this in the testsuite: pr11001-strlen-2.c --begin register int regvar asm("%eax"); char * do_copy (char *str) { return malloc (strlen (str) + 1); } --end Is that even meaningful? The doc's for a global reg var say: 'Choose a register that is normally saved and re

Re: i686 pic & DCmode

2013-08-07 Thread Eric Botcazou
> The usual x86 ports avoid this, because their must_return_in_mem hooks DTRT > already and we never fall into the default case. So why not do the same for i686-elf? > I am very surprised this hasn't bitten someone before -- I presume this > never worked with i686-elf. It is possible this'll cha

i686 pic & DCmode

2013-08-07 Thread Nathan Sidwell
In poking at another set of fails encountered with an i686-elf toolchain (http://gcc.gnu.org/ml/gcc/2013-08/msg00081.html), I find that complex double returns and PIC do not play together. Libgcc's __muldc3 was attempting to return the value in registers, whereas every caller expected it to be