 |
|
|
|
Actions
|
|
[ 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.
|
|