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 "*3" >> +(define_insn "*3_reg" >> [(set (match_operand:GPR 0 "register_operand" "=d") >> (SHIFT:GPR (match_operand:GPR 1 "register_operand" "") >> - (ma

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 "*3" +(define_insn "*3_reg" [(set (match_operand:GPR 0 "register_operand" "=d") (SHIFT:GPR (match_operand:GPR 1 "register_operand" "") - (match_operand:SI 2 "shift_count_or_setmem_operand" "Y")))] +

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 /home/andreas/clean/../gcc/gcc/toplev.h:

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 (ba

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

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

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 opcode

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 registe