This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [ARM] Fix PR middle-end/65958
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Richard Earnshaw <Richard dot Earnshaw at foss dot arm dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Ramana Radhakrishnan <ramana dot radhakrishnan at foss dot arm dot com>
- Date: Tue, 03 Nov 2015 19:05:21 +0100
- Subject: Re: [ARM] Fix PR middle-end/65958
- Authentication-results: sourceware.org; auth=none
- References: <1478566 dot ZKXszbaoG4 at polaris> <9319219 dot YanzbaT3s8 at polaris> <5638F077 dot 5050105 at foss dot arm dot com>
> Unless there really is common code between the two patches, this should
> be separated out into two posts, one for ARM and one for AArch64.
The ARM bits were approved by Ramana and installed right away.
> Hmm, so if PROBE_INTERVAL != 4096 we barf!
Yes, but that's not usual, ARM and SPARC have it too, 4096 happens to be the
limit of reg+off addressing mode on several architectures.
> While that's safe and probably right for Linux, on some OSes there might
> be a minimum page size of 16k or even 64k. It would be nice if we could
> support that.
OK, but we cannot test anything at the moment.
> Ug! Manifest constants should be moved to pre-defines.
> PROBE_STACK_BASE_REG?
OK.
> > +
> > + /* The following code uses indexed address calculation on FIRST. */
> > + gcc_assert ((first % 4096) == 0);
>
> where's 4096 come from?
It's the same constraint as above:
#if (PROBE_INTERVAL % 4096) != 0
#error Cannot use indexed address calculation for stack probing
#endif
to be able to use the 12-bit shifted immediate instructions.
> More manifest constants.
Yeah, consistency first. ;-)
> This should be annotated with the sequence length.
OK, thanks for the review, I'll adjust.
--
Eric Botcazou