From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1005) id 50CFA3858D33; Tue, 13 Jun 2023 02:58:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 50CFA3858D33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1686625116; bh=Llw5xxAPMz4NX/RffxE8ZHBeH7ZAqiD2ZCQft1XzlcA=; h=From:To:Subject:Date:From; b=MMXsNh1G9KejMI7Xw3HAi0tS3Mx6Pxd3Ovf7OcXVg1MhNW7fzysuAq7nTWGYpqR03 DO0TNHks+izH/eVqFL1m3TA8LTnCJacuSxPmT8N0HviiNavmTgtKRDuI5Z26w06poD qRmiUw91c4uUDWK1N+RdS1sO8izYBFxF85qBP72c= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Michael Meissner To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/meissner/heads/work122)] Update ChangeLog.meissner X-Act-Checkin: gcc X-Git-Author: Michael Meissner X-Git-Refname: refs/users/meissner/heads/work122 X-Git-Oldrev: 1e79bbf02e6321874f28e84fdcaa8a2cf94c514d X-Git-Newrev: d14423e2decc297a34a6eb24aa033c8549dab4ef Message-Id: <20230613025836.50CFA3858D33@sourceware.org> Date: Tue, 13 Jun 2023 02:58:36 +0000 (GMT) List-Id: https://gcc.gnu.org/g:d14423e2decc297a34a6eb24aa033c8549dab4ef commit d14423e2decc297a34a6eb24aa033c8549dab4ef Author: Michael Meissner Date: Mon Jun 12 22:58:32 2023 -0400 Update ChangeLog.meissner Diff: --- gcc/ChangeLog.meissner | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner index 6bee719341e..9fcb57178b8 100644 --- a/gcc/ChangeLog.meissner +++ b/gcc/ChangeLog.meissner @@ -11,34 +11,23 @@ There are several problems with the current GCC: 1) The constraints in fusion.md (generated by genfusion.pl) use "m" for LWA and LD, when they should use "YZ". - 2) The calls to address_is_non_pfx_d_or_x doesn't work with lwa using - SImode as the mode. You need to pass in DImode instead of SImode. This - is to allow lwz to be treated differently than lwa. - - 3) The rules for automatically setting the prefixed attribute were not + 2) The rules for automatically setting the prefixed attribute were not checking that these fused load and compare immediate fusion operations might have prefixed addresses. - 4) We should use lwa_operand for lwa instead of ds_form_mem_operand. The - lwa_operand has some additional checks for the lwa instruction. - The fix is to modify genfusion.pl that it sets the "YZ" constraint instead of "m" for the ld and lwa instructions. -This patch also passes DImode to the address_is_non_pfx_d_or_x function for the -lwa instruction so that it properly cheks for DS form restrictions when -splitting the insn because it won't fuse. - -This patch also modifies the prefixed attribute so that it checks load + compare -immediate instructions for be a load instruction. This means that the -lwa_cmpdi_cr0_SI_clobber_CC_none insn must ask for a DImode scratch register -instead of SImode scratch register and also set the sign_extend attribute. The -code for checking if a load is a lwa expects that the register is DImode, the -memory is SImode, and the sign_extend attribute is set. +This patch also modifies the prefixed and maybe_prefixed attributes so that they +check load + compare immediate instructions for be a load instruction. The +patch also modifies genfusion.pl so that the lwa_cmp* insns also sets things up +so that the prefixed_load_p function declares the address to be prefixed. These +modifications include using a DImode scratch register instead of SImode, and +setting the "sign_extend" attribute. I also added a test case for this condition. -2023-06-08 Michael Meissner +2023-06-12 Michael Meissner gcc/ @@ -47,6 +36,7 @@ gcc/ * config/rs6000/fusion.md: Regenerate. * config/rs6000/rs6000.md (prefixed attribute): Add support for load plus compare immediate fused insns. + (maybe_prefixed): Likewise. gcc/testsuite/ @@ -54,6 +44,8 @@ gcc/testsuite/ ==================== Branch work122, patch #5 was reverted ==================== +==================== Branch work122, patch #5 was reverted ==================== + ==================== Branch work122, patch #4 was reverted ==================== ==================== Branch work122, patch #3 was reverted ====================