From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10092 invoked by alias); 10 Oct 2014 10:27:13 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 10079 invoked by uid 89); 10 Oct 2014 10:27:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-lb0-f169.google.com Received: from mail-lb0-f169.google.com (HELO mail-lb0-f169.google.com) (209.85.217.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 10 Oct 2014 10:27:12 +0000 Received: by mail-lb0-f169.google.com with SMTP id 10so2817065lbg.0 for ; Fri, 10 Oct 2014 03:27:08 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.152.197.35 with SMTP id ir3mr3877417lac.82.1412936828482; Fri, 10 Oct 2014 03:27:08 -0700 (PDT) Received: by 10.152.8.103 with HTTP; Fri, 10 Oct 2014 03:27:08 -0700 (PDT) In-Reply-To: References: Date: Fri, 10 Oct 2014 10:41:00 -0000 Message-ID: Subject: Re: [PATCH 2/X, i386, PR54232] Enable EBX for x86 in 32bits PIC code From: Uros Bizjak To: Evgeny Stupachenko Cc: Jeff Law , Vladimir Makarov , GCC Patches Content-Type: text/plain; charset=UTF-8 X-SW-Source: 2014-10/txt/msg00904.txt.bz2 On Fri, Oct 10, 2014 at 9:43 AM, Evgeny Stupachenko wrote: > i386 specific part of the patch: > > 2014-10-08 Ilya Enkovich > Vladimir Makarov > * gcc/config/i386/i386.c (ix86_use_pseudo_pic_reg): New. > (ix86_init_pic_reg): New. > (ix86_select_alt_pic_regnum): Add check on pseudo register. > (ix86_save_reg): Likewise. > (ix86_expand_prologue): Remove irrelevant code. > (ix86_output_function_epilogue): Add check on pseudo register. > (set_pic_reg_ever_alive): New. > (legitimize_pic_address): Replace df_set_regs_ever_live with new > set_pic_reg_ever_alive. > (legitimize_tls_address): Likewise. > (ix86_pic_register_p): New check. > (ix86_delegitimize_address): Add check on pseudo register. > (ix86_expand_call): Insert move from pseudo PIC register to ABI > defined REAL_PIC_OFFSET_TABLE_REGNUM. > (TARGET_INIT_PIC_REG): New. > (TARGET_USE_PSEUDO_PIC_REG): New. > (PIC_OFFSET_TABLE_REGNUM): New check. Couple of nits below. +/* Set regs_ever_live for PIC base address register + to true if required. */ +static void +set_pic_reg_ever_alive () Please rename this function to set_pic_reg_ever_live. -#define PIC_OFFSET_TABLE_REGNUM \ - ((TARGET_64BIT && (ix86_cmodel == CM_SMALL_PIC \ - || TARGET_PECOFF)) \ - || !flag_pic ? INVALID_REGNUM \ - : reload_completed ? REGNO (pic_offset_table_rtx) \ +#define PIC_OFFSET_TABLE_REGNUM \ + ((TARGET_64BIT && (ix86_cmodel == CM_SMALL_PIC \ + || TARGET_PECOFF)) \ + || !flag_pic ? INVALID_REGNUM \ + : pic_offset_table_rtx ? INVALID_REGNUM \ : REAL_PIC_OFFSET_TABLE_REGNUM) No negative conditions, please. Also, please follow established multi-level condition format, please see e.g. HARD_REGNO_NREGS definition in i386.h. OK for mainline after infrastructure patch is approved. Thanks, Uros.