diff options
author | Paul Brook <paul@codesourcery.com> | 2009-11-25 13:58:51 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2009-11-25 13:58:51 +0000 |
commit | 5115f061bf337a8e3474b95615c716b7bb4a9df6 (patch) | |
tree | 9846cda0d69a7923a6ef3f3db3f711ed300bb0a8 /gcc | |
parent | 70dd156abb5ffb078c9c3dc4a3e4a18a6a1fe351 (diff) | |
download | gcc-5115f061bf337a8e3474b95615c716b7bb4a9df6.zip gcc-5115f061bf337a8e3474b95615c716b7bb4a9df6.tar.gz gcc-5115f061bf337a8e3474b95615c716b7bb4a9df6.tar.bz2 |
arm.md (consttable_4): Handle (high ...).
2009-11-25 Paul Brook <paul@codesourcery.com>
gcc/
* config/arm/arm.md (consttable_4): Handle (high ...).
From-SVN: r154648
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 855e613..ff72fed 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2009-11-25 Paul Brook <paul@codesourcery.com> + + * config/arm/arm.md (consttable_4): Handle (high ...). + 2009-11-25 Robert Nelson <robert.nelson@digikey.com> Richard Earnshaw <rearnsha@arm.com> diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 8527208..9940292 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -10957,6 +10957,13 @@ } break; default: + /* XXX: Sometimes gcc does something really dumb and ends up with + a HIGH in a constant pool entry, usually because it's trying to + load into a VFP register. We know this will always be used in + combination with a LO_SUM which ignores the high bits, so just + strip off the HIGH. */ + if (GET_CODE (x) == HIGH) + x = XEXP (x, 0); assemble_integer (x, 4, BITS_PER_WORD, 1); mark_symbol_refs_as_used (x); break; |