This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Extracting components of complex constants (take 2)


Hi Roger,

> 2003-05-26  Roger Sayle  <roger@eyesopen.com>
> 
> 	* emit-rtl.c (gen_complex_constant_part): New function for getting
> 	the constant real or imaginary part of a complex constant.
> 	(gen_realpart): Use it.
> 	(gen_imagpart): Likewise.

This patch seems to cause the following, a simplified version of
complex-2.c, to fail on h8300-hms.

/* h8300-hms-gcc -O2 */

void bar (__complex__ double x);

void
foo ()
{
  __complex__ double a = 1.0;
  f (a);
}

complex-2.c: In function `foo':
complex-2.c:8: error: unrecognizable insn:
(insn 8 21 9 0 0x402658f0 (set (reg/v:SF 16 [ a ])
        (const_double:SF -2147483648 [0x80000000] 1.0e+0 [0x0.8p+1])) -1 (nil)
    (nil))
complex-2.c:8: internal compiler error: in extract_insn, at recog.c:2188
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

On H8, a floating point constant is not put into the immediate field
of an assembly instruction.  It is output using a constant pool.  Is
there any way you could look into this?

Thanks,

Kazu Hirata


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]