From patchwork Wed Nov 22 20:20:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John David Anglin X-Patchwork-Id: 168548 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:6f03:b0:164:83eb:24d7 with SMTP id r3csp1479143rwn; Wed, 22 Nov 2023 12:25:49 -0800 (PST) X-Google-Smtp-Source: AGHT+IEmIne/n148wrGCVSqk/1djK8rWe79fDsL4JM8roPmO1/rpqvBVM7FdG4Zg0ndbDJCDGfwN X-Received: by 2002:a05:620a:135a:b0:778:8cce:b25c with SMTP id c26-20020a05620a135a00b007788cceb25cmr3197302qkl.22.1700684748800; Wed, 22 Nov 2023 12:25:48 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1700684748; cv=pass; d=google.com; s=arc-20160816; b=HitgjxcAWLw4zrUIA4A3xCjOYc5ucGWvLPtDbRALIXQjSU4SDP9wUsQhlnW3485Qbc sUSXvG5vx93xzzSpVZtGe8izMrkYvurCaQ3XdCZdIwFyS3MVC/HTCC3Q96k8gCpVapkg jSDz4mQRu/q/PlS0MkLdASYd+4V0B0VcwmAaxv4l4abNaQsNIIN/F7kG4BufR/q9/DCx SomAdO8d8i3DbOlzCPFTfpMyeGt5LPRIi9BcW113f+APhF5hjDQck0yBjkt5OmFhVJDb uwPzE/u+MKllb3eBSUA722sH6WzIuRh3Fdou+IHM3++JeQF9HAEi+9YoOyQzzr1C0NBH Vizw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-disposition :mime-version:message-id:subject:cc:to:from:date:arc-filter :dmarc-filter:delivered-to; bh=kNdXorJzGSsOLKlrz8u7jyDAjlHZY9qiwehZROChwTU=; fh=SBiGsR97PVGxFJqoMDaBUsQ3MQpRXJ5LQmE1RAaqJbE=; b=wyY1qq4cue7do40RUcQ0QH5dl56aFTiVnjXme8JZ3L53H0XufwBijrRmZwjLAN6nws uNn4E0YQRXjnPnzXjHkWwshvNuk9Y02xxpJ52Ls/6wLhh+JhkYAKdWCCaG2WjxdXQitN Z8+Y+Rb7IOs+FRpS2ZfXSCMnVnuuV5vdeS1fXCHsG1oyNlr6mge/OJsF2awcxh9EKhOz T2blI9qyZeiZjVGed0HewyJltOHLo8gS+9lee9nxB8Ob7S4LAbJOYw+z1yNzygA9vvKX QV2eBbe4AO4YTYdQ6yoQS8MAecGR27tJIqkbOh3godBERf/SGcnMoMkTPdegruGQSEP1 zpBw== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id i14-20020a05620a27ce00b0076d86b5d4ffsi341291qkp.693.2023.11.22.12.25.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Nov 2023 12:25:48 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B3F683870887 for ; Wed, 22 Nov 2023 20:21:21 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from dellerweb.de (unknown [IPv6:2a02:c207:3003:236::1]) by sourceware.org (Postfix) with ESMTPS id D3A0F3858C30 for ; Wed, 22 Nov 2023 20:20:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D3A0F3858C30 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=parisc-linux.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=parisc-linux.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D3A0F3858C30 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a02:c207:3003:236::1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700684457; cv=none; b=kawJDwM0d1uEC0/iaGggVFLdAEKqZhwhmgIXejMa9Tvm/TlWpNHXN4E8oT4woOxMoRD/8vT19baqmrMwm47sUm51HBPonEWXHyTZC7/RLcf4N2JwgAUVIoagxdytbz86o4UxudzBcIjdUssmM2NPoDfhluu7cUH+Dk7nMzZ8ZCQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700684457; c=relaxed/simple; bh=xM6imqtOGBkbsk+AnubO3cLzwWJUdnwXo/hbhFtkl4Q=; h=Date:From:To:Subject:Message-ID:MIME-Version; b=nDEb7A3XJFXM7lbf2gQtf3lvhiNp1eUmsBEKxjI7XwPdlA4nV01uF5pzAhsMSQPwlqZ6NmMQyJxfrGLTK0KE5N22sXB/6c3GfyQljud9M8q1B1PqwyFT6Ov7ZbgdbOycjC1ACZlG28Lhk48DRVFYf3qlwk7gyojYIqQePFnqDTk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from mx3210.localdomain (unknown [142.126.114.79]) by dellerweb.de (Postfix) with ESMTPSA id 7470E16003B0; Wed, 22 Nov 2023 21:20:45 +0100 (CET) Received: by mx3210.localdomain (Postfix, from userid 1000) id 991C822012C; Wed, 22 Nov 2023 20:20:23 +0000 (UTC) Date: Wed, 22 Nov 2023 20:20:23 +0000 From: John David Anglin To: GCC Patches Cc: Sam James Subject: [committed] hppa: Fix integer REG+D address reloads Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783297210816935836 X-GMAIL-MSGID: 1783297210816935836 Tested on hppa-unknown-linux-gnu and hppa64-hp-hpux11.11. Fixes testcase in PR. Committed to trunk. Dave --- hppa: Fix integer REG+D address reloads I made a mistake in the previous change to integer_store_memory_operand. There is no support pa_emit_move sequence to handle secondary reloads of integer REG+D instructions. Further, the Q constraint is used for some non-simple instructions (movb and addib). Thus, we need to return true when reload is in progress. 2023-11-22 John David Anglin gcc/ChangeLog: PR target/112617 * config/pa/predicates.md (integer_store_memory_operand): Return true for REG+D addresses when reload_in_progress is true. diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md index 1b50020e1de..4c07c0a3828 100644 --- a/gcc/config/pa/predicates.md +++ b/gcc/config/pa/predicates.md @@ -308,6 +308,13 @@ if (reg_plus_base_memory_operand (op, mode)) { + /* There is no support for handling secondary reloads of integer + REG+D instructions in pa_emit_move_sequence. Further, the Q + constraint is used in more than simple move instructions. So, + we must return true and let reload handle the reload. */ + if (reload_in_progress) + return true; + /* Extract CONST_INT operand. */ if (GET_CODE (op) == SUBREG) op = SUBREG_REG (op);