Re: general_operand() not accepting CONCAT?

2007-05-20 Thread Rask Ingemann Lambertsen
On Fri, Apr 27, 2007 at 08:24:11AM -0700, Richard Henderson wrote: On Fri, Apr 27, 2007 at 04:00:13PM +0200, Rask Ingemann Lambertsen wrote: I don't see how emit_move_complex_push() can ever generate a push instruction. Here's a backtrace: emit_move_insn (gen_rtx_MEM (submode, XEXP

Reload bug with register elimination + reload inheritance (Was: general_operand() not accepting CONCAT?)

2007-05-01 Thread Rask Ingemann Lambertsen
On Fri, Apr 27, 2007 at 08:24:11AM -0700, Richard Henderson wrote: This doesn't look like frame pointer elimination at all, just different stack slots allocated. But that said, if there's a bug in elimination, it should be fixed, not hacked around in one backend. $ ./xgcc -B./

Re: general_operand() not accepting CONCAT?

2007-04-27 Thread Rask Ingemann Lambertsen
On Thu, Apr 26, 2007 at 01:52:37PM -0700, Richard Henderson wrote: On Thu, Apr 26, 2007 at 09:49:16PM +0200, Rask Ingemann Lambertsen wrote: Unfortunately, the fallback code isn't exactly optimum, as it produces something like addw$-N*2, %sp movw%sp,%basereg

Re: general_operand() not accepting CONCAT?

2007-04-27 Thread Richard Henderson
On Fri, Apr 27, 2007 at 04:00:13PM +0200, Rask Ingemann Lambertsen wrote: I don't see how emit_move_complex_push() can ever generate a push instruction. Here's a backtrace: emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)), read_complex_part (y, imag_first)); return

Re: general_operand() not accepting CONCAT?

2007-04-26 Thread Rask Ingemann Lambertsen
On Wed, Apr 25, 2007 at 09:11:52AM -0700, Richard Henderson wrote: On Wed, Apr 25, 2007 at 01:51:34PM +0200, Rask Ingemann Lambertsen wrote: (define_mode_macro GT16 [SI DI TI SF DF XF SC DC XC SD DD TD CHI CSI CDI CTI]) (define_insn_and_split *pushmode1 You almost certainly do not

Re: general_operand() not accepting CONCAT?

2007-04-26 Thread Richard Henderson
On Thu, Apr 26, 2007 at 09:49:16PM +0200, Rask Ingemann Lambertsen wrote: Unfortunately, the fallback code isn't exactly optimum, as it produces something like addw$-N*2, %sp movw%sp,%basereg movw%wordN, N*2(%basereg) ... movw%word0,

general_operand() not accepting CONCAT?

2007-04-25 Thread Rask Ingemann Lambertsen
I just got /home/rask/cvssrc/gcc/gcc/testsuite/gcc.c-torture/compile/complex-3.c:17: error: unrecognizable insn: (insn 69 67 70 5 (set (mem:SC (pre_dec:HI (reg/f:HI 12 sp)) [0 S8 A8]) (concat:SC (reg:SF 36) (reg:SF 37))) -1 (nil) (nil)) which I thought I'd covered with

Re: general_operand() not accepting CONCAT?

2007-04-25 Thread Ian Lance Taylor
Rask Ingemann Lambertsen [EMAIL PROTECTED] writes: I just got /home/rask/cvssrc/gcc/gcc/testsuite/gcc.c-torture/compile/complex-3.c:17: error: unrecognizable insn: (insn 69 67 70 5 (set (mem:SC (pre_dec:HI (reg/f:HI 12 sp)) [0 S8 A8]) (concat:SC (reg:SF 36) (reg:SF

Re: general_operand() not accepting CONCAT?

2007-04-25 Thread Richard Henderson
On Wed, Apr 25, 2007 at 01:51:34PM +0200, Rask Ingemann Lambertsen wrote: (define_mode_macro GT16 [SI DI TI SF DF XF SC DC XC SD DD TD CHI CSI CDI CTI]) (define_insn_and_split *pushmode1 You almost certainly do not want to handle complex yourself, and instead rely on the fallback code in