From patchwork Fri Sep 28 21:45:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Segher Boessenkool X-Patchwork-Id: 976473 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-486653-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=kernel.crashing.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="RV0hRvL3"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42MQGn3WfFz9s55 for ; Sat, 29 Sep 2018 07:46:07 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; q=dns; s=default; b=c7947mQWvcDg aO/DgtPj6xmWxTqefys1a/ruuYWD+uMOGcbbtSnL9dRiCg4RYwLa0ROzqZVmHiGy +C9rPslvpkBuEMvQtBEq11XN+xf6QTuYiFtEtjoNAhrHJIFo7LejIASPXIhAJYo5 aClUlo6qpfTu0FRSTXhFlvH7+bp9RbU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; s=default; bh=kVuWYTD863H56HMoCb t0m2vAAM0=; b=RV0hRvL3hOr9W2L6wvjGPQBsfudJW+DR0YCFZwCf1+O5UEV1He ZgSV9zwQyuTjYnG+cAo49s+KkmWXsMjNRRMQDY9UBrc84BMX7oDKyGkh1YwHely5 FDVXZPy7CNKxu0UGFq/LGywj1uut2wXSzRozuqhcy1zG9QfrDXvDzSmLs= Received: (qmail 19911 invoked by alias); 28 Sep 2018 21:45:59 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 19894 invoked by uid 89); 28 Sep 2018 21:45:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 spammy=AIX, 72, aix X-HELO: gcc1-power7.osuosl.org Received: from gcc1-power7.osuosl.org (HELO gcc1-power7.osuosl.org) (140.211.15.137) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 28 Sep 2018 21:45:54 +0000 Received: by gcc1-power7.osuosl.org (Postfix, from userid 10019) id 6B7D412406E1; Fri, 28 Sep 2018 21:45:52 +0000 (UTC) From: Segher Boessenkool To: gcc-patches@gcc.gnu.org Cc: dje.gcc@gmail.com, Andrew Jenner , Segher Boessenkool Subject: [PATCH] rs6000: Delete HAVE_AS_LWSYNC and TARGET_LWSYNC_INSTRUCTION Date: Fri, 28 Sep 2018 21:45:50 +0000 Message-Id: <9d06a7a3fe0dcc128b47af5717afe5ad653a3201.1538170494.git.segher@kernel.crashing.org> X-IsSubscribed: yes All supported assemblers know lwsync, so we never need to generate this instruction using the .long escape hatch. Tested on powerpc*-linux and on AIX (7.1 and 7.2). Committing. 2018-09-28 Segher Boessenkool * config.in (HAVE_AS_LWSYNC): Delete. * config/powerpcspe/powerpcspe.h (TARGET_LWSYNC_INSTRUCTION): Delete. * config/powerpcspe/sync.md (*lwsync): Always generate lwsync, never do it as a .long . * config/rs6000/rs6000.h (TARGET_LWSYNC_INSTRUCTION): Delete. * config/rs6000/sync.md (*lwsync): Always generate lwsync, never do it as a .long . * configure.ac: Delete HAVE_AS_LWSYNC. * configure: Regenerate. --- gcc/config.in | 6 ------ gcc/config/powerpcspe/powerpcspe.h | 8 ------- gcc/config/powerpcspe/sync.md | 5 +---- gcc/config/rs6000/rs6000.h | 8 ------- gcc/config/rs6000/sync.md | 5 +---- gcc/configure | 43 -------------------------------------- gcc/configure.ac | 13 ------------ 7 files changed, 2 insertions(+), 86 deletions(-) diff --git a/gcc/config.in b/gcc/config.in index 48dfd23..1242326 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -528,12 +528,6 @@ #endif -/* Define if your assembler supports LWSYNC instructions. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_LWSYNC -#endif - - /* Define if your assembler supports the -mabi option. */ #ifndef USED_FOR_TARGET #undef HAVE_AS_MABI_OPTION diff --git a/gcc/config/powerpcspe/powerpcspe.h b/gcc/config/powerpcspe/powerpcspe.h index a30fe34..2bb32c7 100644 --- a/gcc/config/powerpcspe/powerpcspe.h +++ b/gcc/config/powerpcspe/powerpcspe.h @@ -216,14 +216,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define TARGET_MFCRF 0 #endif -/* Define TARGET_LWSYNC_INSTRUCTION if the assembler knows about lwsync. If - not, generate the lwsync code as an integer constant. */ -#ifdef HAVE_AS_LWSYNC -#define TARGET_LWSYNC_INSTRUCTION 1 -#else -#define TARGET_LWSYNC_INSTRUCTION 0 -#endif - /* Define TARGET_TLS_MARKERS if the target assembler does not support arg markers for __tls_get_addr calls. */ #ifndef HAVE_AS_TLS_MARKERS diff --git a/gcc/config/powerpcspe/sync.md b/gcc/config/powerpcspe/sync.md index f4f7bc2..dff3932 100644 --- a/gcc/config/powerpcspe/sync.md +++ b/gcc/config/powerpcspe/sync.md @@ -91,13 +91,10 @@ (define_insn "*lwsync" (unspec:BLK [(match_dup 0)] UNSPEC_LWSYNC))] "" { - /* Some AIX assemblers don't accept lwsync, so we use a .long. */ if (TARGET_NO_LWSYNC) return "sync"; - else if (TARGET_LWSYNC_INSTRUCTION) - return "lwsync"; else - return ".long 0x7c2004ac"; + return "lwsync"; } [(set_attr "type" "sync")]) diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 232d442..d2fe795 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -219,14 +219,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define TARGET_MFCRF 0 #endif -/* Define TARGET_LWSYNC_INSTRUCTION if the assembler knows about lwsync. If - not, generate the lwsync code as an integer constant. */ -#ifdef HAVE_AS_LWSYNC -#define TARGET_LWSYNC_INSTRUCTION 1 -#else -#define TARGET_LWSYNC_INSTRUCTION 0 -#endif - /* Define TARGET_TLS_MARKERS if the target assembler does not support arg markers for __tls_get_addr calls. */ #ifndef HAVE_AS_TLS_MARKERS diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md index ee98049..f18b6b7 100644 --- a/gcc/config/rs6000/sync.md +++ b/gcc/config/rs6000/sync.md @@ -91,13 +91,10 @@ (define_insn "*lwsync" (unspec:BLK [(match_dup 0)] UNSPEC_LWSYNC))] "" { - /* Some AIX assemblers don't accept lwsync, so we use a .long. */ if (TARGET_NO_LWSYNC) return "sync"; - else if (TARGET_LWSYNC_INSTRUCTION) - return "lwsync"; else - return ".long 0x7c2004ac"; + return "lwsync"; } [(set_attr "type" "sync")]) diff --git a/gcc/configure b/gcc/configure index f2d5a6f..5d2fd18 100755 --- a/gcc/configure +++ b/gcc/configure @@ -26723,49 +26723,6 @@ fi case $target in - *-*-aix*) conftest_s=' .csect .text[PR] - lwsync';; - *) conftest_s=' .text - lwsync';; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for lwsync support" >&5 -$as_echo_n "checking assembler for lwsync support... " >&6; } -if test "${gcc_cv_as_powerpc_lwsync+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - gcc_cv_as_powerpc_lwsync=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 19 \) \* 1000 + 2` - then gcc_cv_as_powerpc_lwsync=yes -fi - elif test x$gcc_cv_as != x; then - $as_echo "$conftest_s" > conftest.s - if { ac_try='$gcc_cv_as $gcc_cv_as_flags -a32 -o conftest.o conftest.s >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } - then - gcc_cv_as_powerpc_lwsync=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_powerpc_lwsync" >&5 -$as_echo "$gcc_cv_as_powerpc_lwsync" >&6; } -if test $gcc_cv_as_powerpc_lwsync = yes; then - -$as_echo "#define HAVE_AS_LWSYNC 1" >>confdefs.h - -fi - - - case $target in *-*-aix*) conftest_s=' .machine "476" .csect .text[PR] dci 0';; diff --git a/gcc/configure.ac b/gcc/configure.ac index 470fde6..3c1e0ad 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -4558,19 +4558,6 @@ LCF0: [Define if your assembler supports VSX instructions.])]) case $target in - *-*-aix*) conftest_s=' .csect .text[[PR]] - lwsync';; - *) conftest_s=' .text - lwsync';; - esac - - gcc_GAS_CHECK_FEATURE([lwsync support], - gcc_cv_as_powerpc_lwsync, [2,19,2], -a32, - [$conftest_s],, - [AC_DEFINE(HAVE_AS_LWSYNC, 1, - [Define if your assembler supports LWSYNC instructions.])]) - - case $target in *-*-aix*) conftest_s=' .machine "476" .csect .text[[PR]] dci 0';;