target/8052: NEC v850 has bogus default insn length

Jeff Law law@porcupine.cygnus.com
Wed Oct 2 07:16:00 GMT 2002


The following reply was made to PR target/8052; it has been noted by GNATS.

From: Jeff Law <law@porcupine.cygnus.com>
To: miles@gnu.org
Cc: gcc-gnats@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: target/8052: NEC v850 has bogus default insn length 
Date: Wed, 02 Oct 2002 08:21:09 -0600

 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--
 
 



More information about the Gcc-prs mailing list