From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14693 invoked by alias); 13 Sep 2004 08:52:30 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 14569 invoked from network); 13 Sep 2004 08:52:27 -0000 Received: from unknown (HELO mail.melexis-bg.com) (62.176.87.26) by sourceware.org with SMTP; 13 Sep 2004 08:52:27 -0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by hero.mlxbg.elex.be (Postfix) with ESMTP id 3E1C076C141 for ; Mon, 13 Sep 2004 11:52:26 +0300 (EEST) Received: from mail.melexis-bg.com ([127.0.0.1]) by localhost (hero.mlxbg.elex.be [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31205-03 for ; Mon, 13 Sep 2004 11:52:25 +0300 (EEST) Received: from ptrlp.mlxbg.elex.be (ptrlp.mlxbg.elex.be [10.35.3.190]) by hero.mlxbg.elex.be (Postfix) with ESMTP id 4D31176C13E for ; Mon, 13 Sep 2004 11:52:24 +0300 (EEST) To: gcc@gcc.gnu.org Subject: Could not split insn Date: Mon, 13 Sep 2004 09:55:00 -0000 From: "Petar Penchev" Organization: Melexis Content-Type: text/plain; format=flowed; delsp=yes; charset=windows-1251 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: User-Agent: Opera M2/7.51 (Win32, build 3798) X-Virus-Scanned: by amavisd-new at mlxbg.elex.be X-SW-Source: 2004-09/txt/msg00744.txt.bz2 Hello all, I have define "iorsi3" instruction in my .md file as follows : (define_insn_and_split "iorsi3" [(set (match_operand:SI 0 "nonimmediate_nonstack_operand" "=b, o") (ior:SI (match_operand:SI 1 "nonimmediate_nonstack_operand" "%0, 0") (match_operand:SI 2 "general_operand" "boi, boi"))) (clobber (match_scratch:HI 3 "=X, &r"))] "" "#" "reload_completed" [(const_int 0)] "split_logical(HImode, IOR, operands); DONE;" ) Where constraint 'b' is general-purpose register, which supports SImode. I tried to compile newlib with optimization -O1 and I have got folowing message: ../../../../../newlib_src/newlib/libc/stdlib/mprec.c: In function `_lshift': ../../../../../newlib_src/newlib/libc/stdlib/mprec.c:515: error: could not split insn (insn 222 278 279 (parallel [ (set (reg:SI 0 A) (ior:SI (reg:SI 0 A) (const_int 0 [0x0]))) (clobber (scratch:HI)) ]) 62 {iorsi3} (insn_list 96 (nil)) (expr_list:REG_UNUSED (scratch:HI) (nil))) ../../../../../newlib_src/newlib/libc/stdlib/mprec.c:515: internal compiler error: in final_scan_insn, at final.c:2429 Register A is accessible in SImode. But it seems to me that pattern should be matched by the split. Does anybody have met the same problem ? -- Regards Petar Penchev