This is the mail archive of the
mailing list for the GCC project.
Re: s390: SImode pointers vs LR
- From: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- To: Jeff Law <law at redhat dot com>, DJ Delorie <dj at redhat dot com>, gcc at gcc dot gnu dot org
- Date: Wed, 03 Jun 2015 09:06:58 +0200
- Subject: Re: s390: SImode pointers vs LR
- Authentication-results: sourceware.org; auth=none
- References: <201505300057 dot t4U0vj16030907 at greed dot delorie dot com> <556C4EB9 dot 3080906 at linux dot vnet dot ibm dot com> <556C7510 dot 3030702 at redhat dot com> <556DCC72 dot 8090102 at linux dot vnet dot ibm dot com> <556DE44D dot 5090708 at redhat dot com>
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 style operand is only the shift count. Our instructions support base + displacement
here. E.g. sll %r2,%r3(3) is r2 << (r3 + 3)
> The only other thing that comes immediately to mind would be secondary
> reloads. But I always hate suggesting them.
I don't see how this would help here. It is not really that reload needs help moving something
to/from a register. In fact the INSN is good as is and we are trying to prevent reload from doing