From patchwork Tue Jan 25 22:05:34 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anatoly Sokolov X-Patchwork-Id: 80409 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 2DEE1B6EF1 for ; Wed, 26 Jan 2011 09:04:47 +1100 (EST) Received: (qmail 13213 invoked by alias); 25 Jan 2011 22:04:45 -0000 Received: (qmail 13102 invoked by uid 22791); 25 Jan 2011 22:04:44 -0000 X-SWARE-Spam-Status: No, hits=2.0 required=5.0 tests=AWL, BAYES_50, KAM_THEBAT, RCVD_IN_DNSWL_NONE, TW_LG, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from contrabass.post.ru (HELO contrabass.post.ru) (85.21.78.5) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 25 Jan 2011 22:04:36 +0000 Received: from corbina.ru (mail.post.ru [195.14.50.16]) by contrabass.post.ru (Postfix) with ESMTP id 03382CAA8A; Wed, 26 Jan 2011 01:04:26 +0300 (MSK) Received: from [95.24.216.25] (account aesok@post.ru HELO Vista.corbina.ru) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPA id 295459935; Wed, 26 Jan 2011 01:04:25 +0300 Date: Wed, 26 Jan 2011 01:05:34 +0300 From: Anatoly Sokolov Message-ID: <1518741991.20110126010534@post.ru> To: gcc-patches@gcc.gnu.org CC: hpenner@de.ibm.com, uweigand@de.ibm.com, Andreas.Krebbel@de.ibm.com Subject: [S390] Hookize PREFERRED_RELOAD_CLASS MIME-Version: 1.0 X-IsSubscribed: yes 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 Hi. This patch removes obsolete PREFERRED_RELOAD_CLASS macro from the S390 back end in the GCC and introduces equivalent TARGET_PREFERRED_RELOAD_CLASS target hook. Not tested. OK to install? * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove. * config/s390/s390-protos.h (s390_preferred_reload_class): Remove. * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define. (s390_preferred_reload_class): Make static. Change return and 'rclass' argument type to reg_class_t. Anatoly. Index: gcc/config/s390/s390.c =================================================================== --- gcc/config/s390/s390.c (revision 169182) +++ gcc/config/s390/s390.c (working copy) @@ -2951,8 +2951,8 @@ /* Given an rtx OP being reloaded into a reg required to be in class RCLASS, return the class of reg to actually use. */ -enum reg_class -s390_preferred_reload_class (rtx op, enum reg_class rclass) +static reg_class_t +s390_preferred_reload_class (rtx op, reg_class_t rclass) { switch (GET_CODE (op)) { @@ -10717,6 +10717,9 @@ #undef TARGET_SCALAR_MODE_SUPPORTED_P #define TARGET_SCALAR_MODE_SUPPORTED_P s390_scalar_mode_supported_p +#undef TARGET_PREFERRED_RELOAD_CLASS +#define TARGET_PREFERRED_RELOAD_CLASS s390_preferred_reload_class + #undef TARGET_SECONDARY_RELOAD #define TARGET_SECONDARY_RELOAD s390_secondary_reload Index: gcc/config/s390/s390.h =================================================================== --- gcc/config/s390/s390.h (revision 169182) +++ gcc/config/s390/s390.h (working copy) @@ -531,11 +531,6 @@ #define REGNO_OK_FOR_BASE_P(REGNO) REGNO_OK_FOR_INDEX_P (REGNO) -/* Given an rtx X being reloaded into a reg required to be in class CLASS, - return the class of reg to actually use. */ -#define PREFERRED_RELOAD_CLASS(X, CLASS) \ - s390_preferred_reload_class ((X), (CLASS)) - /* We need secondary memory to move data between GPRs and FPRs. With DFP the ldgr lgdr instructions are available. But these instructions do not handle GPR pairs so it is not possible for 31 Index: gcc/config/s390/s390-protos.h =================================================================== --- gcc/config/s390/s390-protos.h (revision 169182) +++ gcc/config/s390/s390-protos.h (working copy) @@ -70,7 +70,6 @@ extern bool legitimate_reload_constant_p (rtx); extern rtx legitimize_pic_address (rtx, rtx); extern rtx legitimize_reload_address (rtx, enum machine_mode, int, int); -extern enum reg_class s390_preferred_reload_class (rtx, enum reg_class); extern enum reg_class s390_secondary_input_reload_class (enum reg_class, enum machine_mode, rtx);