Actions

icon Post
text/html Subscribe
text/html Unsubscribe

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

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


  • To: "'coldfire-gnu-discuss@xxxxxxxxxxxxxxxx'" <coldfire-gnu-discuss@xxxxxxxxxxxxxxxx>
  • Subject: [coldfire-gnu-discuss] Error: value too large for field of 2 bytes with FBcc
  • From: Nick Barratt <NBarratt@xxxxxxxxxx>
  • Date: Thu, 8 May 2008 10:03:15 -0700

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.

Thanks,

Nick Barratt