From patchwork Fri Sep 17 17:54:00 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: DJ Delorie X-Patchwork-Id: 65097 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 196DAB70AA for ; Sat, 18 Sep 2010 03:54:13 +1000 (EST) Received: (qmail 13683 invoked by alias); 17 Sep 2010 17:54:11 -0000 Received: (qmail 13674 invoked by uid 22791); 17 Sep 2010 17:54:10 -0000 X-SWARE-Spam-Status: No, hits=-5.2 required=5.0 tests=AWL, BAYES_00, MAY_BE_FORGED, RCVD_IN_DNSWL_HI, SPF_HELO_PASS, TW_MV, 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; Fri, 17 Sep 2010 17:54:04 +0000 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o8HHs2Pr024999 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 17 Sep 2010 13:54:02 -0400 Received: from greed.delorie.com ([10.3.112.11]) by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o8HHs0WA006737 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 17 Sep 2010 13:54:02 -0400 Received: from greed.delorie.com (greed.delorie.com [127.0.0.1] (may be forged)) by greed.delorie.com (8.14.3/8.14.3) with ESMTP id o8HHs0WX019918; Fri, 17 Sep 2010 13:54:00 -0400 Received: (from dj@localhost) by greed.delorie.com (8.14.3/8.14.3/Submit) id o8HHs0oK019915; Fri, 17 Sep 2010 13:54:00 -0400 Date: Fri, 17 Sep 2010 13:54:00 -0400 Message-Id: <201009171754.o8HHs0oK019915@greed.delorie.com> From: DJ Delorie To: Richard Henderson CC: gcc-patches@gcc.gnu.org In-reply-to: <4C90E8B3.4050706@redhat.com> (message from Richard Henderson on Wed, 15 Sep 2010 08:39:31 -0700) Subject: Re: [RX] Minor patches References: <201008250231.o7P2VmpU006677@greed.delorie.com> <4C7548AB.7090208@redhat.com> <201008270030.o7R0UFBw025485@greed.delorie.com> <4C77D72E.7010102@redhat.com> <201008271845.o7RIjQxM020874@greed.delorie.com> <4C7816D1.6070308@redhat.com> <201009150341.o8F3fPc4020423@greed.delorie.com> <4C90E8B3.4050706@redhat.com> 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 Committed. Test case patch attached... * gcc.target/rx/setpsw.c: New. * gcc.target/rx/builtins.c (exchange): Remove (set_psw): New. (clear_psw): New. Index: gcc.target/rx/setpsw.c =================================================================== --- gcc.target/rx/setpsw.c (revision 0) +++ gcc.target/rx/setpsw.c (revision 0) @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-fno-ipa-cp-clone" } */ + +set_psw_bad (int i) +{ + /* Thse are all invalid */ + __builtin_rx_setpsw('X'); /* { dg-error "setpsw takes" "" } */ + /* { dg-error "use __builtin" "" "target rx-*-elf" 0 } */ + __builtin_rx_setpsw(-1); /* { dg-error "setpsw takes" "" } */ + __builtin_rx_setpsw(i); /* { dg-error "setpsw takes" "" } */ +} + Index: gcc.target/rx/builtins.c =================================================================== --- gcc.target/rx/builtins.c (revision 164374) +++ gcc.target/rx/builtins.c (working copy) @@ -29,19 +29,12 @@ int saturate_add (int arg1, int arg2) { arg1 += arg2; return __builtin_rx_sat (arg1); } -int -exchange (int arg1, int arg2) -{ - arg1 = __builtin_rx_xchg (arg2); - return arg1; -} - long multiply_and_accumulate (long arg1, long arg2, long arg3) { __builtin_rx_mvtaclo (0); __builtin_rx_mvtachi (0); @@ -164,8 +157,56 @@ rmpa (int * multiplicand, int * multipli __builtin_rx_rmpa (); } void set_interrupts (void) { - __builtin_mvtipl (3); + __builtin_rx_mvtipl (3); +} + +set_psw (int i) +{ + /* Thse are all valid */ + __builtin_rx_setpsw('C'); + __builtin_rx_setpsw('Z'); + __builtin_rx_setpsw('S'); + __builtin_rx_setpsw('O'); + __builtin_rx_setpsw('I'); + __builtin_rx_setpsw('U'); + __builtin_rx_setpsw('c'); + __builtin_rx_setpsw('z'); + __builtin_rx_setpsw('s'); + __builtin_rx_setpsw('o'); + __builtin_rx_setpsw('i'); + __builtin_rx_setpsw('u'); + __builtin_rx_setpsw(0); + __builtin_rx_setpsw(1); + __builtin_rx_setpsw(2); + __builtin_rx_setpsw(3); + __builtin_rx_setpsw(8); + __builtin_rx_setpsw(9); + __builtin_rx_mvtc (0, i); +} + +clear_psw (int i) +{ + /* Thse are all valid */ + __builtin_rx_clrpsw('C'); + __builtin_rx_clrpsw('Z'); + __builtin_rx_clrpsw('S'); + __builtin_rx_clrpsw('O'); + __builtin_rx_clrpsw('I'); + __builtin_rx_clrpsw('U'); + __builtin_rx_clrpsw('c'); + __builtin_rx_clrpsw('z'); + __builtin_rx_clrpsw('s'); + __builtin_rx_clrpsw('o'); + __builtin_rx_clrpsw('i'); + __builtin_rx_clrpsw('u'); + __builtin_rx_clrpsw(0); + __builtin_rx_clrpsw(1); + __builtin_rx_clrpsw(2); + __builtin_rx_clrpsw(3); + __builtin_rx_clrpsw(8); + __builtin_rx_clrpsw(9); + __builtin_rx_mvtc (0, i); }