Re: s390: SImode pointers vs LR

2015-08-06 Thread Andreas Krebbel
On Tue, Jun 02, 2015 at 05:32:02PM +0200, Andreas Krebbel wrote: ... +(define_insn *shiftmode3_imm + [(set (match_operand:GPR 0 register_operand =d) +(SHIFT:GPR (match_operand:GPR 1 register_operand d0) + (match_operand 2 immediate_operand J)))] + +

Re: s390: SImode pointers vs LR

2015-06-03 Thread Andreas Krebbel
On 06/03/2015 12:53 AM, Richard Henderson wrote: On 06/02/2015 08:32 AM, Andreas Krebbel wrote: -(define_insn *shiftmode3 +(define_insn *shiftmode3_reg [(set (match_operand:GPR 0 register_operand =d) (SHIFT:GPR (match_operand:GPR 1 register_operand d0) -

Re: s390: SImode pointers vs LR

2015-06-03 Thread Andreas Krebbel
On 06/02/2015 07:13 PM, Jeff Law wrote: But isn't that 3 registers used in the address computation if the (const_int 1) gets reloaded? one of the value shifted, two for the shift count? I'm not familiar with the s390, so if you can handle that kind of insn, then, umm, cool. The address

Re: s390: SImode pointers vs LR

2015-06-02 Thread Richard Henderson
On 06/02/2015 08:32 AM, Andreas Krebbel wrote: -(define_insn *shiftmode3 +(define_insn *shiftmode3_reg [(set (match_operand:GPR 0 register_operand =d) (SHIFT:GPR (match_operand:GPR 1 register_operand d0) - (match_operand:SI 2 shift_count_or_setmem_operand Y)))] +

Re: s390: SImode pointers vs LR

2015-06-02 Thread Andreas Krebbel
On 06/01/2015 05:06 PM, Jeff Law wrote: On 06/01/2015 06:23 AM, Andreas Krebbel wrote: On 05/30/2015 02:57 AM, DJ Delorie wrote: In config/s390/s390.c we accept addresses that are SImode: if (!REG_P (base) || (GET_MODE (base) != SImode GET_MODE (base) != Pmode))

Re: s390: SImode pointers vs LR

2015-06-02 Thread Jeff Law
On 06/02/2015 09:32 AM, Andreas Krebbel wrote: Bootstrap failed with: /home/andreas/clean/../gcc/gcc/dwarf2out.c: In function ‘constant_size’: /home/andreas/clean/../gcc/gcc/dwarf2out.c:6572: error: insn does not satisfy its constraints: (insn 39 38 66 6

Re: s390: SImode pointers vs LR

2015-06-01 Thread Andreas Krebbel
On 05/30/2015 02:57 AM, DJ Delorie wrote: In config/s390/s390.c we accept addresses that are SImode: if (!REG_P (base) || (GET_MODE (base) != SImode GET_MODE (base) != Pmode)) return false; However, there doesn't seem to be anything in the s390's opcodes

Re: s390: SImode pointers vs LR

2015-06-01 Thread Jeff Law
On 06/01/2015 06:23 AM, Andreas Krebbel wrote: On 05/30/2015 02:57 AM, DJ Delorie wrote: In config/s390/s390.c we accept addresses that are SImode: if (!REG_P (base) || (GET_MODE (base) != SImode GET_MODE (base) != Pmode)) return false; However, there

s390: SImode pointers vs LR

2015-05-29 Thread DJ Delorie
In config/s390/s390.c we accept addresses that are SImode: if (!REG_P (base) || (GET_MODE (base) != SImode GET_MODE (base) != Pmode)) return false; However, there doesn't seem to be anything in the s390's opcodes that masks the top half of address

Re: s390: SImode pointers vs LR

2015-05-29 Thread Jeff Law
On 05/29/2015 06:57 PM, DJ Delorie wrote: In config/s390/s390.c we accept addresses that are SImode: if (!REG_P (base) || (GET_MODE (base) != SImode GET_MODE (base) != Pmode)) return false; However, there doesn't seem to be anything in the s390's opcodes