From patchwork Tue Jul 31 08:03:47 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nick Clifton X-Patchwork-Id: 174181 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 9B71D2C0078 for ; Tue, 31 Jul 2012 19:09:39 +1000 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1344330580; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: From:To:Subject:Date:Message-ID:MIME-Version:Content-Type: Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:Sender:Delivered-To; bh=SEm0CMO/wTHk6QQbvL1+ LBJ/Umo=; b=lrg5QMpZnENz+AmRGiJApdAZIg/o91NTdU6uWVhdWh8YzwEvS0YB Fu2Pwvvp5YXcEQIaWBol+CKTr1CiRGqlovI0OaDuN8BaBNzOssJZDJX2C8rSzR77 2lyGCzmsJLCIsBKaQtny2A4BPMxFy57uhicFsFJKwB9ku19StGzdBS4= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=bts5BgwSiAG/PtxaWSj6CcwNr8LAjebqKUdmZj2TnzzZOdvkVR+2KdrGpcl3tQ mfAzIH8XXcVWcb/UxyIZgZFHkv3hw+nEurT8em1vGPuCQMi5gg37e1cREdF1j1kt GFgyqSRbh00ZGqGtBbEd8WAX37luuJf/J4Z7Szwb+ecJE=; Received: (qmail 13322 invoked by alias); 31 Jul 2012 09:09:32 -0000 Received: (qmail 13199 invoked by uid 22791); 31 Jul 2012 09:09:31 -0000 X-SWARE-Spam-Status: No, hits=-6.1 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, RCVD_IN_DNSWL_HI, RCVD_IN_HOSTKARMA_W, SPF_HELO_PASS, TW_CL, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 31 Jul 2012 09:09:14 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q6V99EoA019824 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 31 Jul 2012 05:09:14 -0400 Received: from Cadeux.redhat.com (vpn1-6-48.ams2.redhat.com [10.36.6.48]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q6V99BHi024073 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Tue, 31 Jul 2012 05:09:13 -0400 From: Nick Clifton To: gcc-patches@gcc.gnu.org Subject: Commit: XStormy16: Add __clrsbhi2() to libgcc Date: Tue, 31 Jul 2012 09:03:47 +0100 Message-ID: <87y5m0uzks.fsf@redhat.com> 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 Guys, I am checking in the patch below to add a __clrsbhi2 function to libgcc for the XStormy16 port. This fixes several gcc testsuite failures that need this particular function. Cheers Nick libgcc/ChangeLog 2012-07-31 Nick Clifton * config/stormy16/lib2funcs.c (__clrsbhi2): New function. Implements __clrsb for an HImode argument. * config/stormy16/clrsbhi2.c: New file: * config/stormy16/t-stormy16 (LIB2ADD): Add clrsbhi2.c. Index: libgcc/config/stormy16/clrsbhi2.c =================================================================== --- libgcc/config/stormy16/clrsbhi2.c (revision 0) +++ libgcc/config/stormy16/clrsbhi2.c (working copy) @@ -0,0 +1,2 @@ +#define XSTORMY16_CLRSBHI2 +#include "lib2funcs.c" Index: libgcc/config/stormy16/t-stormy16 =================================================================== --- libgcc/config/stormy16/t-stormy16 (revision 189996) +++ libgcc/config/stormy16/t-stormy16 (working copy) @@ -33,6 +33,7 @@ $(srcdir)/config/stormy16/clzhi2.c \ $(srcdir)/config/stormy16/ctzhi2.c \ $(srcdir)/config/stormy16/ffshi2.c \ + $(srcdir)/config/stormy16/clrsbhi2.c \ $(srcdir)/config/stormy16/cmpsi2.c \ $(srcdir)/config/stormy16/ucmpsi2.c Index: libgcc/config/stormy16/lib2funcs.c =================================================================== --- libgcc/config/stormy16/lib2funcs.c (revision 189996) +++ libgcc/config/stormy16/lib2funcs.c (working copy) @@ -311,6 +311,22 @@ } #endif +#ifdef XSTORMY16_CLRSBHI2 +/* Returns the number of leading redundant sign bits in X. + I.e. the number of bits following the most significant bit which are + identical to it. There are no special cases for 0 or other values. */ + +int +__clrsbhi2 (HWtype x) +{ + if (x < 0) + x = ~x; + if (x == 0) + return 15; + return __builtin_clz (x) - 1; +} +#endif + #ifdef XSTORMY16_UCMPSI2 /* Performs an unsigned comparison of two 32-bit values: A and B. If A is less than B, then 0 is returned. If A is greater than B,