Commit 3cd2a183 by Richard Sandiford Committed by Richard Sandiford

* config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.

From-SVN: r75749
parent 5e777af5
2004-01-12 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
2004-01-12 Kazu Hirata <kazu@cs.umass.edu>
PR optimization/12508.
......
......@@ -902,16 +902,6 @@ mips_symbolic_constant_p (rtx x, enum mips_symbol_type *symbol_type)
if (offset == 0)
return true;
/* If X refers to a string constant, and that constant is put into a
mergeable section, the linker will need to know which string is
being accessed. It has no way of distinguishing an out-of-bounds
access to X from an in-bounds access to a later or earlier string. */
if (GET_CODE (x) == SYMBOL_REF
&& SYMBOL_REF_DECL (x) != 0
&& TREE_CODE (SYMBOL_REF_DECL (x)) == STRING_CST
&& !(offset > 0 && offset < TREE_STRING_LENGTH (SYMBOL_REF_DECL (x))))
return false;
/* Check whether a nonzero offset is valid for the underlying
relocations. */
switch (*symbol_type)
......@@ -927,9 +917,11 @@ mips_symbolic_constant_p (rtx x, enum mips_symbol_type *symbol_type)
return (offset > 0 && offset < mips_section_threshold);
case SYMBOL_CONSTANT_POOL:
/* We don't generate out-of-bounds accesses to normal constant
pool entries. String constants were handled above. */
return true;
/* Similarly check the range of offsets for mips16 constant
pool entries. */
return (CONSTANT_POOL_ADDRESS_P (x)
&& offset > 0
&& offset < (int) GET_MODE_SIZE (get_pool_mode (x)));
case SYMBOL_GOT_LOCAL:
case SYMBOL_GOTOFF_PAGE:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment