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
This commit is contained in:
Paul Brook 2009-11-25 13:58:51 +00:00 committed by Paul Brook
parent 70dd156abb
commit 5115f061bf
2 changed files with 11 additions and 0 deletions

View File

@ -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>

View File

@ -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;