From patchwork Mon Jan 16 20:03:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 715903 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]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3v2PLL2NXjz9t0Z for ; Tue, 17 Jan 2017 07:03:21 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="dKbMP6Pc"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:from:date:message-id:subject:to:content-type; q= dns; s=default; b=xuBzjP4a8Rhl8OOqCK3gLcB/Xe9hAENG+Y0+4Y4Sz/cDk6 +hg379DXNykE8FWfkAtZlP232237fCodI515e0PM8Xdd3cx6uOjGPIELn303e9s8 RD7PXTQiPc6bL9MLC2Y7SxDBF9pZsSh6rBf+av06W4LLhixeQ0TENKk0rCndk= 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 :mime-version:from:date:message-id:subject:to:content-type; s= default; bh=dvXlB6pnTR389ijwADma1Cwv5wQ=; b=dKbMP6Pcyf5sLDzNqYmt UJI71C43CLKVC4vinv/WzOWVADZ7Zz94+l2VIuKxJUx8gUhfnQvAkHTvp09o4RuI bNet7VRt6asbChmYdYeYFHoRP2vB5oOZmSU42qS3rzFkvbq6GGT52IsBmbamzVgy zPpT3sh7ctks1SnRPIS9iuA= Received: (qmail 29461 invoked by alias); 16 Jan 2017 20:03:13 -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 29447 invoked by uid 89); 16 Jan 2017 20:03:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=no version=3.3.2 spammy=hello! X-HELO: mail-ua0-f180.google.com Received: from mail-ua0-f180.google.com (HELO mail-ua0-f180.google.com) (209.85.217.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 16 Jan 2017 20:03:11 +0000 Received: by mail-ua0-f180.google.com with SMTP id 35so88609644uak.1 for ; Mon, 16 Jan 2017 12:03:11 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=lf8C0KGT0X6k8ydww9p9+qE0N/o9OF6wMtwF3DBYvHk=; b=jW2qXf5rc+9r3oRqJK8LHagfW2ukdpR2Oex2dNEpoQv/qFQ4BOt7rlpMhYdWueXFPL 9ScRwHb/yJo1GuBjdr8SJP9niv5mF3CyUc/KuHcMnnJXxZq3TxcdRMch6dn+eFgCeHx+ qfKKHNzze11P5O9xhNnOfDyExrqx6xaejCjsmads8pvGsZCu3UO6+zFtQ+1EJearXfcq eycY+/majM0MHWcCeeyLTSx9A7jDxDjhLTEYZjG24/wjaGQ6nW5/ANiNJvfAa/fvAhkl oGaPn4xOTsBsJAD6vQlO6tV6digEPzJURklWiOPymw90gjmsdfq+UWbId6sXTFmg4K9z MGxw== X-Gm-Message-State: AIkVDXImIaqIZ2I7Tr9J7pnvkbxJW3UJbj04/Xvlo4DJCUtE03XLWhW3tR6anSxPuljZeN7l46pyQY4hI/uhfw== X-Received: by 10.159.38.229 with SMTP id 92mr7845319uay.102.1484596989715; Mon, 16 Jan 2017 12:03:09 -0800 (PST) MIME-Version: 1.0 Received: by 10.103.87.11 with HTTP; Mon, 16 Jan 2017 12:03:09 -0800 (PST) From: Uros Bizjak Date: Mon, 16 Jan 2017 21:03:09 +0100 Message-ID: Subject: [PATCH, i386]: Tighten checks in HARD_REGNO_CALLER_SAVE_MODE To: "gcc-patches@gcc.gnu.org" Hello! In addition to mask registers, QImode and HImode fixups in HARD_REGNO_CALLER_SAVE_MODE apply only to general registers. 2017-01-16 Uros Bizjak * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and QImode fixups to general and mask registers only. Bootstrapped and regression tested on x86_64-linux-gnu. Committed to mainline SVN. Uros. Index: config/i386/i386.h =================================================================== --- config/i386/i386.h (revision 244497) +++ config/i386/i386.h (working copy) @@ -1211,9 +1211,10 @@ extern const char *host_detect_local_cpu (int argc (CC_REGNO_P (REGNO) ? VOIDmode \ : (MODE) == VOIDmode && (NREGS) != 1 ? VOIDmode \ : (MODE) == VOIDmode ? choose_hard_reg_mode ((REGNO), (NREGS), false) \ - : (MODE) == HImode && !(TARGET_PARTIAL_REG_STALL \ + : (MODE) == HImode && !((GENERAL_REGNO_P (REGNO) \ + && TARGET_PARTIAL_REG_STALL) \ || MASK_REGNO_P (REGNO)) ? SImode \ - : (MODE) == QImode && !(TARGET_64BIT || QI_REGNO_P (REGNO) \ + : (MODE) == QImode && !(ANY_QI_REGNO_P (REGNO) \ || MASK_REGNO_P (REGNO)) ? SImode \ : (MODE))