From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 480F93858427; Mon, 3 Oct 2022 19:49:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 480F93858427 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1664826573; bh=J68pRL2bI5ALMgYZAqF2NCxl0FoGsy3n5MOqJm5kNUE=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Iq1DnkYoZLwDI2blP4AU2KkFFIaOjfs6W2TENmzfHk2wlnagM0godj4eYPZvHM3jk 8o2v+ubNkBH/ceeol2fIHMpi8UDcDcYf2Z6yZHJqlNhKvp3BK1Hirx89aMQwFiVeP2 9BueJCrT7mJPtI0gEf4vzODZdstkdCBb4JhXnz7U= From: "bergner at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/98519] rs6000: @pcrel unsupported on this instruction error in pveclib Date: Mon, 03 Oct 2022 19:49:31 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: bergner at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: segher at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D98519 --- Comment #27 from Peter Bergner --- (In reply to Michael Meissner from comment #23) > If we change rs6000_legitimate_address_p to return false if we have a > prefixed address and we are in asm, we get an insn not found error: >=20 > --- /home/meissner/tmp/gcc-tmp/TskwFJ_rs6000.c 2021-02-16 > 11:44:05.520201674 -0500 > +++ gcc/config/rs6000/rs6000.c 2021-02-16 11:41:41.444740394 -0500 > @@ -9532,7 +9532,7 @@ rs6000_legitimate_address_p (machine_mod >=20=20 > /* Handle prefixed addresses (PC-relative or 34-bit offset). */ > if (address_is_prefixed (x, mode, NON_PREFIXED_DEFAULT)) > - return 1; > + return !recog_data.is_asm; >=20=20 > /* Handle restricted vector d-form offsets in ISA 3.0. */ > if (quad_offset_p) I don't think this change is correct as is, since pcrel addresses could be legitimate in asm if we had a constraint the user could use. I think this would also have to check that the constraint being used isn't the new pcrel constraint. > And we look at calls to satisfies_constraint_m, the is_asm field it not s= et > for each of the references: The above said, is this the real problem? Ie, should we fix the is_asm fie= ld not always being correctly set so we can make a change here rather than in rs6000_legitimate_address_p?=