This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[arm] Out of range assembly offsets
- From: Paul Brook <paul at codesourcery dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 15 Mar 2006 20:11:04 +0000
- Subject: [arm] Out of range assembly offsets
Under some circumstances an Arm EABI based compiler can generate out-of-range
loads from constant pools. This occurs when a constant pool requires
doubleword padding. The doubleword loads are adjusted to accommodate this
padding, but other items in the same pool are not.
I initially tried fixing this "properly" by adjusting offsets in a pool when
the first doubleword item was added. This ended up getting messy, so I
instead went for the sledgehammer solution of shortening all offsets by 4
bytes if a function contains any doublework constant pool objects.
Tested with cross to arm-none-eabi.
Applied to mainline.
Ok for 4.1?
Technically this isn't a regression as eabi targets have always been broken.
However 4.1 is the first release with working linux-gnueabi support, which is
where I'd expect most users to hit this bug.
Paul