Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [coldfire-gnu-discuss] Error: value too large for field of 2 bytes with FBcc


  • To: Nick Barratt <NBarratt@xxxxxxxxxx>
  • Subject: Re: [coldfire-gnu-discuss] Error: value too large for field of 2 bytes with FBcc
  • From: Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>
  • Date: Thu, 08 May 2008 23:54:03 +0400

Nick Barratt wrote:
Hello,

I'm building an application that my company has licensed for our coldfire target using the CodeSourcery gcc package. This application has a massive switch statement that seems to be exposing a limitation in the assembler. Specifically, floating-point conditional branches with displacements > 32k result in an assembler error (value of XXXXX too large for field of 2 bytes at XXXXX), even though FBcc supports 32-bit displacements using a size field in the instruction word.

I've tested and found the same behavior on both Sourcery G++ Lite 4.2-125 (from the CodeSourcery website) and CodeSourcery Sourcery G++ 4.1-30 (from Freescale).

Is there a work-around for this problem? My first thought was re-ordering the cases in the switch statement to reduce the displacement magnitudes, but I'm not technically supposed to alter this portion of the vendor source.

It's very hard to diagnose what the problem is without a testcase. Can you construct a testcase that reproduces exposes the problem? Also, what commands did you use to compile and link the test?


--
Maxim Kuvyrkov,
CodeSourcery Inc.