This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: target/8052: NEC v850 has bogus default insn length
- From: Jeff Law <law at porcupine dot cygnus dot com>
- To: miles at gnu dot org
- Cc: gcc-gnats at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Wed, 02 Oct 2002 08:21:09 -0600
- Subject: Re: target/8052: NEC v850 has bogus default insn length
- Reply-to: law at redhat dot com
In message <20020926022639.D3D6A3721@mcspd15.ucom.lsi.nec.co.jp>, miles@gnu.org
writes:
>
>>Number: 8052
>>Category: target
>>Synopsis: NEC v850 has bogus default insn length
>>Confidential: no
>>Severity: non-critical
>>Priority: medium
>>Responsible: unassigned
>>State: open
>>Class: pessimizes-code
>>Submitter-Id: net
>>Arrival-Date: Wed Sep 25 19:36:00 PDT 2002
>>Closed-Date:
>>Last-Modified:
>>Originator: Miles Bader
>>Release: 3.3 20020924 (experimental)
>>Organization:
>NEC
>>Environment:
>System: Linux mcspd15 2.4.18-ac3 #1 Wed Jul 3 14:28:04 JST 2002 i686 unknown
>unknown GNU/Linux
>Architecture: i686
>
>
>host: i386-pc-linux-gnu
>build: i386-pc-linux-gnu
>target: v850e-unknown-elf
>configured with: /proj/soft2/uclinux/src/gcc/configure --prefix=/proj/soft2/u
>clinux/i386-pc-linux-gnu --cache-file=../config.cache --target=v850e-elf --ho
>st=i386-pc-linux-gnu --with-newlib
>>Description:
>
>The default insn-length in gcc/config/v850/v850.md is 200, which is
>completely absurd, and has the effect of causing many branches around
>`asm' statements to be long jumps (since gcc uses the default
>insn-length to estimate the code-size of asm statements).
>
>On the v850, many instructions are 2 bytes, and only one is >4 bytes,
>so I've used a value of `4' instead for over a year, and it works great.
>
>>How-To-Repeat:
>>Fix:
>
>Here's a patch:
>
>2002-09-26 Miles Bader <miles@gnu.org>
>
> * config/v850/v850.md ("length"): Change default value to 4.
Thanks. Installed.
Note that you have to be a little careful in that if any insns relied
upon the default length and generated more than 4 bytes of instruction
then this change would be wrong.
I double-checked the v850 backend and only one insn relies upon the
default length -- and it aborts if it's ever used :-)
Jeff
--g8QH74r03859.1033060046/porcupine.slc.redhat.com--
--g8QH74s03859.1033060046/porcupine.slc.redhat.com--