From patchwork Fri Nov 11 15:37:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Greenhalgh X-Patchwork-Id: 81856 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp1328816qge; Fri, 11 Nov 2016 07:38:49 -0800 (PST) X-Received: by 10.98.155.9 with SMTP id r9mr8078161pfd.71.1478878729528; Fri, 11 Nov 2016 07:38:49 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id x184si10786147pfx.35.2016.11.11.07.38.49 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Nov 2016 07:38:49 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-441121-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-441121-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-441121-patch=linaro.org@gcc.gnu.org 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:in-reply-to:references :mime-version:content-type; q=dns; s=default; b=cSaI1vvlTm/k9qk6 1I9lr5uYOSvTbLmjPzj1iZtuwztdB/dgQ68+Yj2cXTxpSThKM4ekUS6KqNPXItsM KqcnuEcDlvR5SZx/H43RibdRxEWH729smazMUmqQnjX09P/Jy+xwuMhMLG2VNKpS FjxyaiIVUXYzL1HAX4FQYJsKt9g= 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:in-reply-to:references :mime-version:content-type; s=default; bh=XUn01oIOWgV0i1/ukxVdV9 BLQC0=; b=GLlc1TxcbL+YwTdEnCn5d6IH7zcEZiRCyp+xNQG/rE24F0Fi01Q0Yo rJqlRktnH6XpP5+5Mvq2nR9Zz7G1likFy2ymWzAniMreySsmVnFO5WVaMtnauecb RIUfkkNZPN4/8g4X7hde5jKDSZ5FgSff1BIfF55T488GACeH2H9cA= Received: (qmail 74384 invoked by alias); 11 Nov 2016 15:38:15 -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 74251 invoked by uid 89); 11 Nov 2016 15:38:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Exchange-Antispam-Report-CFA-Test:102415395, HX-Exchange-Antispam-Report-CFA-Test:6060305, HX-Exchange-Antispam-Report-CFA-Test:6061300 X-HELO: EUR03-DB5-obe.outbound.protection.outlook.com Received: from mail-eopbgr40085.outbound.protection.outlook.com (HELO EUR03-DB5-obe.outbound.protection.outlook.com) (40.107.4.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 11 Nov 2016 15:38:07 +0000 Received: from DB4PR08CA0008.eurprd08.prod.outlook.com (10.161.12.18) by DB5PR08MB1222.eurprd08.prod.outlook.com (10.166.174.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.707.6; Fri, 11 Nov 2016 15:38:02 +0000 Received: from DB3FFO11FD002.protection.gbl (2a01:111:f400:7e04::186) by DB4PR08CA0008.outlook.office365.com (2a01:111:e400:9853::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.721.10 via Frontend Transport; Fri, 11 Nov 2016 15:38:02 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; codesourcery.com; dkim=none (message not signed) header.d=none; codesourcery.com; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by DB3FFO11FD002.mail.protection.outlook.com (10.47.216.91) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.707.3 via Frontend Transport; Fri, 11 Nov 2016 15:38:02 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:879; Count:13 Received: from e107456-lin.cambridge.arm.com (10.1.2.79) by mail.arm.com (10.1.105.66) with Microsoft SMTP Server id 14.3.294.0; Fri, 11 Nov 2016 15:37:42 +0000 From: James Greenhalgh To: CC: , , Subject: [Patch 2/17] Implement TARGET_C_EXCESS_PRECISION for i386 Date: Fri, 11 Nov 2016 15:37:19 +0000 Message-ID: <1478878647-22547-3-git-send-email-james.greenhalgh@arm.com> In-Reply-To: <1478878647-22547-1-git-send-email-james.greenhalgh@arm.com> References: <1475254617-10825-1-git-send-email-james.greenhalgh@arm.com> <1478878647-22547-1-git-send-email-james.greenhalgh@arm.com> MIME-Version: 1.0 X-IncomingHeaderCount: 13 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140; IPV:CAL; SCL:-1; CTRY:GB; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(377424004)(189002)(199003)(586003)(5000100001)(6666003)(4610100001)(4326007)(2950100002)(92566002)(5890100001)(36756003)(110136003)(50226002)(2906002)(189998001)(6916009)(33646002)(8936002)(50986999)(2476003)(77096005)(76176999)(626004)(104016004)(5660300001)(2351001)(356003)(87936001)(568964002)(84326002)(305945005)(26826002)(512874002)(106466001)(7846002)(8676002)(86362001)(246002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR08MB1222; H:nebula.arm.com; FPR:; SPF:Pass; PTR:fw-tnat.cambridge.arm.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11FD002; 1:k6qBXqWS6OiUKkc1xoI4SqDuNbXLJ4mvBfHIYfnzAoauhKW4tFN1aH/am74y4Am+EUimySPBT8u21/mXo1g3IBP/B8XiL5GMLaZjKGX0oTb9Y4fKSA9B03SMNl1LyMBQyVxGmqpvU4k0G1oWgL95JYNQ2dfjIDwf4ecCazE4QzgWKgo1dlHGlAZ+7EuAAo6r40ud0t5bPJI/5Agny/NVCBWjUDHr925xfQsCXnwjsVFxTMBPt/t873YShYhbRIoG/apJ/xxc4K9YU3Umk/0ahFJmUvAv57Q28k+Bm9U9yzcezNEX4oWEsHr9PyX92/3KjtxGgQOj5F6kUMpLJBvt86JjyjIHNMmUINZXgKHMvGXuCndPtVRr6tzV1lmcFtn8j3ToQ52zmG+EYk5wAM2ohfHWYNhqq1eZ3Yk2McV0pcI2G8mpquV2Hcpu+Wwy7KpQU62N1CnPWxjjLvF7t4hWAveCeRrirWLYB9Uxm22m2jhcx69XmqIh5Q4922c/O1b6A3yGkZjk9/TlfZw7yO/hY4/7yCHDvkQItocAjUtgVa0le863Ze9PoAiCYonG1lbEAoJLjumgwErjPNg6yXzMA+AOzQ8UnpB/oQiKaTksTkU= X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1222; 2:bGaqFMUi302tsaEQRbX0SRRPc4ZFe7y+jrOXn3Cw7pEbz3B3Z3ohuRVbLZYWjtVMiiyQEsS/dw8Qkc1BGp8PVNXvRo7Ev6C2m9hMricE5XVzqqMUvlpjtW+LXnO5zsPMNZMJHOLNtEZmHf1qL/OazM2/4xpbhYLDevFBtWyXrrE=; 3:84F6z7QW0IIUpXQPZpnxbwSrtu/OaB2aa58XHoC9XNlmfQwa9NU2//1ziOekylOsHRVJ7ljxXbJcFKf61v7ygUhn4GVRoP9i7ZVIlYTtH+br8jChRi+6sJ+AzzMcv33s9oDaSnnRFjClW5QKCM38785Mk5JGyuurSv+YoG+bQ8CtVvrlIP5hl3f7q6OWof0UIWvOcjU6ZFyCGDTrBf4sRhh92IYIR/aHhNx67BRqfcGVlUNPtLFc6wYidPhHQ+V5OZs2VYuRqp+yyV5Itl8GQzbO9djSuSNhLTXROrUfvaE= X-MS-Office365-Filtering-Correlation-Id: 4b196c1d-a3e3-4b9a-6757-08d40a48b93d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:DB5PR08MB1222; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR08MB1222; 25:gOz15iUSbXBtzW5YGi43xiQ1kArefnw/RyO2J5nZu?= =?us-ascii?Q?tQpBhHh4C3B22zKGga7MhKqO9okEGMN1BkiqniZ6a9JkYttRd6QkHeieNl8o?= =?us-ascii?Q?PpH3wqtNY1FHDCPkMIzr1XIOy65jObnadxU5wCjB9pYA+4eA/xs3jtHPBJk9?= =?us-ascii?Q?dIB1F7kr7oJnkm/TAcVEU9HLU/CHWb6AOl7v/SDMUYa/L+2iIZYEaoU6Gz7y?= =?us-ascii?Q?2h1aKE/eZ0LBjtu12XvFvefIPXYM1rStk9TrhDDB8w86i3a9wBBTAPXcwxkW?= =?us-ascii?Q?mcV/7OqAl3NSdQSoJ6XYISCxnDmwWRG1+DER5UjfX/Fh/l9uHi6j0TOUqO5P?= =?us-ascii?Q?eFJOaSwrNGsh3KZsdnqY22znKvenq5gVhBmQJOPr/kLUkrn+hYiWMSwzrms5?= =?us-ascii?Q?4paAhJMabmfvqiv6ugD40ePY4ADPkOmO7+Mr+86WQbkbWy/+2hjPsEl+0+f0?= =?us-ascii?Q?l0GXd+D1wjWjYwDYnZh0LuCGbtJQjfXMnLD2Nndy7vWVkAai5TjRpxHvl7iw?= =?us-ascii?Q?6U7XIMahu8eHI3D8Bd4MgiAZYrKmic9fbWFMPfpllfCDNI0/mUWjZRPrEtGs?= =?us-ascii?Q?cq016TTm2h1nWjw9BNSBB5sc0BjJT0q7hv4LhAfQ2keCMeS5RuYrSutdS5CP?= =?us-ascii?Q?7tUI5Lw4xm3WpxTjnKsvdNz/uA8XZGJYA8VgAO3QrqNvNUiGrdYwR1p0ZYJh?= =?us-ascii?Q?Ne5Uh7/9PxcC8tT2uQUmQ7Ylnbwjbtm6U0tZTYgAFH/89T3MKVBbd8+654Sq?= =?us-ascii?Q?321OPpvVhPWE4Jl3tarcP+h7jvRjt0d7X17Pp5SGbLddhwtO1pjYx7EV+yPz?= =?us-ascii?Q?pj8CJ14uHABwFlN8m8BCO+wZ4KkaZgT65rOl7FDFCfjclGD9niJfaU18oN4a?= =?us-ascii?Q?UxVm1f4AHRko6OIVD1MqBlmIKaVqI64YDre1FKjAxyTHJh5hMks2tigm3pMp?= =?us-ascii?Q?9IwmzwdNmEeCEdVU3svoCJ7JHHoAjP5JvV7/fT3KS8gc1dwkw+mgWqmnsECQ?= =?us-ascii?Q?aH77ivZ96QI6iUrBddl7flSp1/u4fzBfRO//47fzx88GA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1222; 31:5R8/8q7enEsvtk2BDMWnAoMwgRhOwnSwIRGcog3gAMf2YCj8AygsbIp/nnPUvzQpgqzAzTp9r2aJAvQakBadn5x36OrvQE9SfC0Yo/8b6wNO90D+/gPgPjXYCpaSAyZd1GZ923TB4U2h3Edb59bVUIqSkYZteRm5rzIJVkxyT32hjDNBIAuiPc0/GsBcFNQyzbRwoxS7g6nHU1zKLszoMkBQWMjEguHTfpHUQU+oVz9hwJ9nBcJ6dNLqYMKXtwQ2ayRyt+qlcDzx8watYzZEPDs68jY1VETt4g9Lkwe2I8Q=; 20:OfCs5TpD58xxOT2844BgmIpbbXes5NcFXW3qQWtastbS/17kDEDjhn4opDSLBDu4scLiq23evqFWU/h/hTg7EVnTMi8tmIuEte6tcCrh5qumlquZcl/6VY/+vHw41r9lk4HuHHH7X89mPxAykw1DQaHwvEUuaZTpZvYQp0VxEirjUAeIUhacx4U7Rml7ywyjgAIrVFxZ0ynOllqYWEYU951uxpqnvEI2ptT8YZ4wJHqQAiO3pC80bm+pxocekrw6 NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(22074186197030)(183786458502308); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415395)(6060305)(601004)(2401047)(5005006)(13023025)(13013025)(13020025)(13024025)(8121501046)(3002001)(10201501046)(6055026)(6061300); SRVR:DB5PR08MB1222; BCL:0; PCL:0; RULEID:; SRVR:DB5PR08MB1222; X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1222; 4:Rrf5C4+AlITCDNT70KCVhvW9tkmxbmVIJmihlK4XgQP8eqYcASya16zACY+eK7LKhrcIEvN9JCuiYYko5+FgWNE92nnOBTnSqVJGvx5EpOlv2Pjc8Q/+trCDM55+c1pe5bHXypyWwFvwwLo09TZkbfstj1ti84lQqG3zpnQPUvCMfcdrKYDn/7i8Vyu5BzWdPVrx5GTKIh/ulrV4YJxyi/rSn8wQQdDaosECyu7+WLBBjnDxMJO8M6bomaeVD4XLBdXvGXfON2jFp8/HzmNNoa51Qm8mmVCioY0lsZTMxDhO/ItZLVuFV30/79BewEdIbVv9FZui+dO7uiiUkqM0ckzjypln9Kfn1bSRAhBrhyFjsMM2jh8VPXXvvzGMEghuanuIU5jqSbxE6pI45ots0Ar/QLsnqamX1dVC9Fc3+OcsX2E46vAa6/bBK8nOqpwx4N+iOhTY18Wjgz7asuHNDeOvFAdQRH9RnxisRnRG3Ix4w4OSo/Iu7sbN4A1z55/cpy5YlHHLvGkdvaHC8NNw221K9wfMX/2PAfbub7/9BKdKve134Ba+7gR5MVA8V9FhAuNZuPELij+VHzW7a5DqNHX/vK96rs5iDbENFmyzmuAL985CfIAaxEoVxPChyHdT/CUI8BGFfJjHAZeW0I0GJg== X-Forefront-PRVS: 012349AD1C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR08MB1222; 23:IO9hOiVtoZs1SOCv9kNM/P5YTb2+Jf1N4odYc4ujz?= =?us-ascii?Q?F3N87U/YZKhOy9d2cHC1FPvhouos4AumUeYgOAtF5KkPxojnohfbhXSefDnb?= =?us-ascii?Q?9poH5hziuAR296pCJ50SYOE50PtOXFS4tmDNxPF9HgERiok+PPT3MFS1utDD?= =?us-ascii?Q?uxlcYKwj3lLmPfsUfgsQkA+5/w6VGsbQqyuDn6kB8VO8AL/3GCzTavbUpX+p?= =?us-ascii?Q?kO51zq7wX6pK/y77KkGCUT830WOuc56lBWM7BYLI5i7TE3aNalMTne9zp+Zs?= =?us-ascii?Q?0CQJEt/xZEvC1A2K5TItk1yWYlNknfGg5qWZ+U4omLAIp3HSUrfuatFWMmbO?= =?us-ascii?Q?WHrUUJHKEakjU1knQxD7RlgelCgSS5nbCf69wGR7VgEXq8VSWFB2TPjebDsK?= =?us-ascii?Q?IsMNI1OlD/U69bA8CEoiLWpWlMwbg7trYNn5K2UiP5yjk/nmwrWzsoNpTCRo?= =?us-ascii?Q?+FayBOMnpdhyVmH851dMznDtVXSuKxiGLjX7rWBvpVBeyp0zjffXZd2fuXXW?= =?us-ascii?Q?ZMj8G0XWVA+VaXAGDr/wourzsVtCFpwEaOH/CKZlLmL4YLJR2gf4nSMsvt9a?= =?us-ascii?Q?WyveNBpYFkyWFhtYxU/UIDljho4U7v1opZUMljwHt1PlmPEiP0s2POuS7CaM?= =?us-ascii?Q?1rw2vuoHZl9oucZIb+DSiCw0kCseO3w0Ntf9d3ZzuVGHQfW4qlUS6RG9/FNb?= =?us-ascii?Q?vHwSvQxmB9NjRE/7V3vQoyufrgrIgWWUlxCpVq8aEJo6qmlW3i0EPJRl7ccl?= =?us-ascii?Q?9CD8Gv30Ki5SJecIrjToBc93mnhOdJb3ZQhzLiANC55Wh4H8Jz36WTkPaFis?= =?us-ascii?Q?vUA5VnVCP2qcZGQcwzK1tywe4N7brNJoQnTfvUa2VlLqQhNc0uqXYGXEY4N+?= =?us-ascii?Q?TaUa4pA+l+5f+VoHVftmZRj0I0PPe9pRIrHGs3niix7sbtofMICqeLk3fxv8?= =?us-ascii?Q?QmEvQy3t3PIjnggzlumWoAIJqLKvYfxU8ZxcTjqUdYTIKd1sEeJkq8pZGETC?= =?us-ascii?Q?DTEfG8OS+AZpFm5qlI9hTmFkq1aq8cir/YuEs3SNdZjWt4xDOdfCvTN/Sfuk?= =?us-ascii?Q?/4L3TIPGgRC3EUfjxD/T4FZPL1Q?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1222; 6:3MCHATa3For4gUfBZLUwkAsYiQ/yetk7lNeC0shLWQWxC4cLudu6GzKChgGdf46eOoIfVvenGwi9M2N6vOrJlNiGz3IJn2rwqo0BHci8bt315VZ6bl7dvurP5Txjsw3lp/vP9GI1/719LeLoAoxnhzBtHPvvXxFh/bGJemphEOb5KSngJf4+gN3tku9E/HdZOuL7I+wWXkX7UwojXByhf6dufJF2i+eQ4Z89bty6ZkNLHeiaIStrl4Yp8oGKsbNk+Iri1al8Wlfeg6hPtgt0nQ1hG+hf33qOA8ooDvDZZ2ZtBOM43HWxbWwpk/+q49fhPW/qTBLl8RxDb+9eo5nUSYz6vIcxRPfQ3zGn+0Ooe/4=; 5:N6acR49FbqyMaapo1y7+DTBq3PPPP4c+D3/bqYNoXFR4bp0KRh+t1xoJSPPbczF8i72kVjmyidV3eYDwsvemncq1xmr/MsNV83+KoTcpIPT7VqbqFg+FgTDnwVFMQjvrmfAiyko39L62/aDgF5pbioSCNNEiGcE5+eBlbpu8jHQ=; 24:wBLut3wLgO8MIsgH+Z361+zQ9q8509/hXJRSPwYy18kSh5AoD/aiPnQxoB4nIMaqUPODuCxVUpTogl497boPggycvjYxIabtM/+iBm4bHYs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1222; 7:e/E2XM9IlxpvapmCdKqtQg9ufiLVirA5/jamdtRxDSgxm43pArFwcJp4jzqS7XxmneOaQIoX07cJ2NhG5WZLGcicdWfeh2+KuDlA7CRzkJceFQFoiZ+WlvmJWAEATQIuZtcgdJbuw67sjIhaXuIliW+d5TtJszOe9c+KlfiAOeWjXw/NNmyn9lsbji4KaKF4og3FnCaavqrS3oQxrMgVoA2cjcPW2rs/EWP0s68r10ekqfR7Auxwmj1Z43r1Ok9XJdizc2Dtcjy74uzxBRc7aOo0wXhzpYzn8OqBaXqZIJOmyAkRTtNHArPDRC8HGGcfahNCyDWskmSo1D33BF56aUHbIa1a3KNwnfJZHcP5GNc= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2016 15:38:02.5318 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[217.140.96.140]; Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB1222 X-IsSubscribed: yes --- This patch has been approved: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02402.html --- This patch ports the logic from i386's TARGET_FLT_EVAL_METHOD to the new target hook TARGET_C_EXCESS_PRECISION. Bootstrapped and tested with no issues. OK? Thanks, James --- gcc/ 2016-11-09 James Greenhalgh * config/i386/i386.c (ix86_excess_precision): New. (TARGET_C_EXCESS_PRECISION): Define. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a5c4ba7..794b149 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -50634,6 +50634,44 @@ ix86_expand_divmod_libfunc (rtx libfunc, machine_mode mode, *rem_p = rem; } +/* Set the value of FLT_EVAL_METHOD in float.h. When using only the + FPU, assume that the fpcw is set to extended precision; when using + only SSE, rounding is correct; when using both SSE and the FPU, + the rounding precision is indeterminate, since either may be chosen + apparently at random. */ + +static enum flt_eval_method +ix86_excess_precision (enum excess_precision_type type) +{ + switch (type) + { + case EXCESS_PRECISION_TYPE_FAST: + /* The fastest type to promote to will always be the native type, + whether that occurs with implicit excess precision or + otherwise. */ + return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; + case EXCESS_PRECISION_TYPE_STANDARD: + case EXCESS_PRECISION_TYPE_IMPLICIT: + /* Otherwise, the excess precision we want when we are + in a standards compliant mode, and the implicit precision we + provide can be identical. */ + if (!TARGET_80387) + return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; + else if (TARGET_MIX_SSE_I387) + return FLT_EVAL_METHOD_UNPREDICTABLE; + else if (!TARGET_SSE_MATH) + return FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE; + else if (TARGET_SSE2) + return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; + else + return FLT_EVAL_METHOD_UNPREDICTABLE; + default: + gcc_unreachable (); + } + + return FLT_EVAL_METHOD_UNPREDICTABLE; +} + /* Target-specific selftests. */ #if CHECKING_P @@ -50865,6 +50903,8 @@ ix86_run_selftests (void) #undef TARGET_MD_ASM_ADJUST #define TARGET_MD_ASM_ADJUST ix86_md_asm_adjust +#undef TARGET_C_EXCESS_PRECISION +#define TARGET_C_EXCESS_PRECISION ix86_excess_precision #undef TARGET_PROMOTE_PROTOTYPES #define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true #undef TARGET_SETUP_INCOMING_VARARGS