From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26360 invoked by alias); 9 Jul 2002 00:06:05 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 26314 invoked by uid 71); 9 Jul 2002 00:06:03 -0000 Resent-Date: 9 Jul 2002 00:06:03 -0000 Resent-Message-ID: <20020709000603.26313.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Falk Hueffner Received: (qmail 25311 invoked from network); 9 Jul 2002 00:04:35 -0000 Received: from unknown (HELO mailout05.sul.t-online.com) (194.25.134.82) by sources.redhat.com with SMTP; 9 Jul 2002 00:04:35 -0000 Received: from fwd00.sul.t-online.de by mailout05.sul.t-online.com with smtp id 17RiUc-0001cn-01; Tue, 09 Jul 2002 02:04:34 +0200 Received: from localhost (520046482682-0001@[80.131.74.47]) by fmrl00.sul.t-online.com with esmtp id 17RiUQ-1cnWW8C; Tue, 9 Jul 2002 02:04:22 +0200 Received: from falk by localhost with local (Exim 3.35 #1 (Debian)) id 17RiUE-0000Yv-00 for ; Tue, 09 Jul 2002 02:04:10 +0200 Message-Id: Date: Mon, 08 Jul 2002 17:06:00 -0000 From: Falk Hueffner To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: target/7238: __builtin_alpha_pkwb generates invalid assembly X-SW-Source: 2002-07/txt/msg00254.txt.bz2 List-Id: >Number: 7238 >Category: target >Synopsis: __builtin_alpha_pkwb generates invalid assembly >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Jul 08 17:06:02 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Falk Hueffner >Release: 3.2 20020707 (experimental) >Organization: >Environment: System: Linux borkum 2.4.18 #1 Tue Jul 2 23:35:32 CEST 2002 alpha unknown Architecture: alpha host: alphapca56-unknown-linux-gnu build: alphapca56-unknown-linux-gnu target: alphapca56-unknown-linux-gnu configured with: ../configure --enable-languages=c >Description: With the input below, gcc generates a pkwb statement that uses a floating point register, which is not valid. Also, it loses pkwb(23), so the result would be wrong even if it had chosen an integer register. >How-To-Repeat: % cat bug.c unsigned long simple_idct_put(unsigned long l) { l = __builtin_alpha_pkwb(l) | (__builtin_alpha_pkwb(23) << 32); return __builtin_alpha_pkwb(l); } % gcc -O3 -mcpu=pca56 -c bug.c /tmp/ccbGMrgd.s: Assembler messages: /tmp/ccbGMrgd.s:13: Error: inappropriate arguments for opcode `pkwb' /tmp/ccbGMrgd.s:14: Error: inappropriate arguments for opcode `pkwb' % gcc -O3 -mcpu=pca56 -S bug.c && cat bug.s .set noat .set noreorder .arch pca56 .text .align 2 .align 4 .globl simple_idct_put .ent simple_idct_put $simple_idct_put..ng: simple_idct_put: .frame $30,0,$26,0 .prologue 0 pkwb $16,$f10 pkwb $f10,$0 ret $31,($26),1 .end simple_idct_put .ident "GCC: (GNU) 3.2 20020707 (experimental)" >Fix: >Release-Note: >Audit-Trail: >Unformatted: