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