This is the mail archive of the
mailing list for the GCC project.
Re: xtensa PR65730
- From: "augustine dot sterling at gmail dot com" <augustine dot sterling at gmail dot com>
- To: Max Filippov <jcmvbkbc at gmail dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Marc Gauthier <marc at cadence dot com>
- Date: Fri, 10 Apr 2015 11:29:07 -0700
- Subject: Re: xtensa PR65730
- Authentication-results: sourceware.org; auth=none
- References: <CAMo8Bf+bnanaGtodsxENtrgfeSGPnHZKvf0r5D+QtnxdweWnyg at mail dot gmail dot com>
On Fri, Apr 10, 2015 at 6:31 AM, Max Filippov <email@example.com> wrote:
> Hi Sterling,
> I've got the following bug report:
> The core in question doesn't have hardware multiplication, so when
> init_alignment_context calls
> ac->shift = expand_simple_binop (SImode, MULT, ac->shift,
> GEN_INT (BITS_PER_UNIT),
> NULL_RTX, 1, OPTAB_DIRECT);
> it gets NULL, and using that NULL later results in segfault.
> Changing OPTAB_DIRECT to OPTAB_LIB fixes it, I wonder if that fix
> is right?
I think it is, in this case, because if this operation can't be open
coded, it should drop back to a library function.
> OTOH calling helper function to do multiplication by a constant 8 looks
> rather stupid. I guess we're not going to have non-8-bit bytes on xtensa
> anytime soon, maybe this multiplication can be replaced with shift?
I think the optimizer will convert it after this point, so it
shouldn't matter. I would need to verify that though.