From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2244 invoked by alias); 28 Oct 2014 12:47:17 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 2233 invoked by uid 89); 28 Oct 2014 12:47:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.8 required=5.0 tests=AWL,BAYES_50,LIKELY_SPAM_BODY,RCVD_IN_DNSWL_NONE autolearn=no version=3.3.2 X-HELO: mo4-p00-ob.smtp.rzone.de Received: from mo4-p00-ob.smtp.rzone.de (HELO mo4-p00-ob.smtp.rzone.de) (81.169.146.161) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 28 Oct 2014 12:47:15 +0000 X-RZG-AUTH: :LXoWVUeid/7A29J/hMvvT3ol15ykJcYwTPLBCxG2Pg6JVq6JhQ== X-RZG-CLASS-ID: mo00 Received: from [192.168.0.22] (ip5f5818d3.dynamic.kabel-deutschland.de [95.88.24.211]) by smtp.strato.de (RZmta 35.10 DYNA|AUTH) with ESMTPSA id 0067d4q9SCl1aRE (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate); Tue, 28 Oct 2014 13:47:01 +0100 (CET) Message-ID: <544F9045.3020709@gjlay.de> Date: Tue, 28 Oct 2014 12:55:00 -0000 From: Georg-Johann Lay User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: GCC Patches CC: Jakub Jelinek , Denis Chertykov , Jeff Law Subject: Re: [patch,avr,4.9] Fix PR63633 ICEs for expanders colliding hard-regs References: <544F8D44.1060000@gjlay.de> In-Reply-To: <544F8D44.1060000@gjlay.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2014-10/txt/msg02947.txt.bz2 Am 10/28/2014 01:34 PM, schrieb Georg-Johann Lay: > Middle-end might come up with hard registers as operands for expanders which > clobber respective hard regs. This patch uses freshly created pseudos for > respective expander operands and emits pseudo <-> hard move insn. > > Ok for 4.9.2? p.s.: testsuite passes without new regressions > It's not yet for trunk because avr trunk backend is currently broken. > > Johann > > gcc/ > PR63633 > * config/avr/avr-protos.h (regmask): New inline function. > (avr_fix_inputs, avr_emit3_fix_outputs): New protos. > * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands) > (avr_fix_inputs, avr_emit3_fix_outputs): New functions. > * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul) > (mul3, mul3, 3, 3) > (3, round3): Fix input operands. > * config/avr/avr-dimode.md (add3, sub3) > (3, 3, cbranch4) > (3, mulsidi3): Fix input operands. > * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3) > (mulusi3, mulssi3, mulohisi3, mulhisi3) > (usmulhisi3, mulhi3_highpart, mulsqipsi3) > (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as > needed. > > gcc/testsuite/ > PR63633 > * gcc.target/avr/torture/pr63633-ice-mult.c: New test.