From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21476 invoked by alias); 8 Dec 2009 02:01:37 -0000 Received: (qmail 21201 invoked by uid 22791); 8 Dec 2009 02:01:35 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 08 Dec 2009 02:01:29 +0000 Received: from wpaz17.hot.corp.google.com (wpaz17.hot.corp.google.com [172.24.198.81]) by smtp-out.google.com with ESMTP id nB821QAC011174 for ; Mon, 7 Dec 2009 18:01:27 -0800 Received: from ewy21 (ewy21.prod.google.com [10.241.103.21]) by wpaz17.hot.corp.google.com with ESMTP id nB821NO7007903 for ; Mon, 7 Dec 2009 18:01:24 -0800 Received: by ewy21 with SMTP id 21so2838415ewy.22 for ; Mon, 07 Dec 2009 18:01:23 -0800 (PST) MIME-Version: 1.0 Received: by 10.216.86.204 with SMTP id w54mr562074wee.54.1260237683503; Mon, 07 Dec 2009 18:01:23 -0800 (PST) In-Reply-To: <200912072319.nB7NJmV3025955@greed.delorie.com> References: <20091203161906.7f7a6c06@redhat.com> <20091204173837.GD2891@adacore.com> <20091207133912.3e97099d@redhat.com> <20091207205641.GA30964@caradoc.them.org> <200912072120.nB7LKksp002963@greed.delorie.com> <20091207212849.GA455@caradoc.them.org> <200912072142.nB7LgL1a003385@greed.delorie.com> <200912072319.nB7NJmV3025955@greed.delorie.com> Date: Tue, 08 Dec 2009 02:01:00 -0000 Message-ID: Subject: Re: [RFC] Add support for Renesas RX architecture From: Doug Evans To: DJ Delorie Cc: gdb-patches@sourceware.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-12/txt/msg00112.txt.bz2 On Mon, Dec 7, 2009 at 3:19 PM, DJ Delorie wrote: > >> Rather, it's that such support was always planned, it just needed >> someone to add it. > > For the record, here's the limitations I've found... > > * The opcode descriptions are generated by exploding macros to get all > =A0the prefix/operand byte permutations (about 12,000 total). =A0I.e. a > =A0single variable-length opcode is converted into dozens of > =A0fixed-length opcodes. =A0Regenerating takes about an hour, and > =A0maintenance is a nightmare. That was always just a temp hack until var-length support was complete. [at which time, btw, cgen will no longer be responsible for 4MB source files in opcodes :-)] btw, for reference sake, some basic changes in cgen's data structures brought the time down for m32c from 30mins to 5mins last time I visited this. It's still too long, and more can be done, but it was easy to do. > * cgen doesn't handle the opcode-vs-decodable bits in m32c very well. > =A0The hash table has nothing left to work with (every bit is an > =A0operand in *some* opcode), so the disassembler takes a noticably > =A0long time starting up, especially given that the exploding macros > =A0create many opcodes to hash. I can't imagine there being anything inherent in cgen that prohibits a solu= tion. If a hash table isn't the best tool for a particular port, we can add something that is. > * The disassembler always reads MAX(opsize) bytes, so the .text > =A0sections have to be padded with NOP bytes to prevent crashes. Ditto.