Hi Ilya,

>> Am 24.09.2018 um 13:29 schrieb Richard Sandiford <richard.sandif...@arm.com>:
>> 
>> Ilya Leoshkevich <i...@linux.ibm.com> writes:
>>> On S/390 there is a need to support more than 32 instruction
>>> alternatives per define_insn.  Currently this is not explicitly
>>> prohibited or unsupported: MAX_RECOG_ALTERNATIVES is equal 35, and,
>>> futhermore, the related code uses uint64_t for bitmaps in most places.
>>> 
>>> However, genattrtab contains the logic to convert (eq_attr "attribute"
>>> "value") RTXs to (eq_attr_alt bitmap) RTXs, where bitmap contains
>>> alternatives, whose "attribute" has the corresponding "value".
>>> Unfortunately, bitmap is only 32 bits.
>>> 
>>> When adding the 33rd alternative, this led to (eq_attr "type" "larl")
>>> becoming (eq_attr_alt -1050625 1), where -1050625 == 0xffeff7ff.  The
>>> cleared bits 12, 21 and 32 correspond to two existing and one newly
>>> added insn of type "larl".  compute_alternative_mask sign extended this
>>> to 0xffffffffffeff7ff, which contained non-existent alternatives, and
>>> this made simplify_test_exp fail with "invalid alternative specified".
>>> 
>>> I'm not sure why it didn't fail the same way before, since the top bit,
>>> which led to sign extension, should have been set even with 32
>>> alternatives.  Maybe simplify_test_exp was not called for "type"
>>> attribute for some reason?
>>> 
>>> This patch widens EQ_ATTR_ALT bitmap to 64 bits, making it possible to
>>> gracefully handle up to 64 alternatives.  It eliminates the problem with
>>> the 33rd alternative on S/390.
>> 
>> Could you test this with --enable-checking=yes,rtl , if you haven't already,
>> to check that there are no mossing XINT->XWINT changes?
>> 
>> OK if that passes, thanks.
>
> I used only plain --enable-checking before, so I reran with your flags,
> and it passed too.  I committed the patch as r264537.

your patch broke Solaris/SPARC and Solaris/x86 bootstraps
(sparc-sun-solaris2.11 and i386-pc-solaris2.11).  See PR bootstrap/87417.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to