thumb.c (thumb_reorg): Call replace_symbols_in_block always unless NO_DEBUG is used.

Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
	* config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
 	always unless NO_DEBUG is used.  Compile this code
 	unconditionally.
	(replace_symbols_in_block): Compile it unconditionally.

From-SVN: r28063
This commit is contained in:
Vladimir Makarov 1999-07-12 07:50:05 +00:00 committed by Vladimir Makarov
parent d2382ec54a
commit 115b4dd3a2
2 changed files with 31 additions and 20 deletions

View File

@ -1,3 +1,10 @@
Mon Jul 12 10:40:01 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
* config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
always unless NO_DEBUG is used. Compile this code
unconditionally.
(replace_symbols_in_block): Compile it unconditionally.
Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com)
* configure.in (i?86-*-elf*): New target.

View File

@ -358,8 +358,6 @@ broken_move (insn)
return 0;
}
#ifdef DBX_DEBUGGING_INFO
/* Recursively search through all of the blocks in a function
checking to see if any of the variables created in that
function match the RTX called 'orig'. If they do then
@ -391,7 +389,6 @@ replace_symbols_in_block (tree block, rtx orig, rtx new)
replace_symbols_in_block (BLOCK_SUBBLOCKS (block), orig, new);
}
}
#endif
void
thumb_reorg (first)
@ -452,24 +449,31 @@ thumb_reorg (first)
/* But it's still an ordinary insn */
PUT_CODE (newinsn, INSN);
#ifdef DBX_DEBUGGING_INFO
/* If debugging information is going to be emitted then we must
make sure that any refences to symbols which are removed by
the above code are also removed in the descriptions of the
function's variables. Failure to do this means that the
debugging information emitted could refer to symbols which
are not emited by output_constant_pool() because
mark_constant_pool() never sees them as being used. */
/* If debugging information is going to be emitted
then we must make sure that any refences to
symbols which are removed by the above code are
also removed in the descriptions of the
function's variables. Failure to do this means
that the debugging information emitted could
refer to symbols which are not emited by
output_constant_pool() because
mark_constant_pool() never sees them as being
used. */
if (optimize > 0 /* These are the tests used in output_constant_pool() */
&& flag_expensive_optimizations /* to decide if the constant pool will be marked. */
&& write_symbols == DBX_DEBUG /* Only necessary if debugging info is being emitted. */
&& GET_CODE (src) == MEM /* Only necessary for references to memory ... */
&& GET_CODE (XEXP (src, 0)) == SYMBOL_REF) /* ... whose address is given by a symbol. */
{
replace_symbols_in_block (DECL_INITIAL (current_function_decl), src, newsrc);
}
#endif
/* These are the tests used in
output_constant_pool() to decide if the constant
pool will be marked. Only necessary if debugging
info is being emitted. Only necessary for
references to memory whose address is given by a
symbol. */
if (optimize > 0
&& flag_expensive_optimizations
&& write_symbols != NO_DEBUG
&& GET_CODE (src) == MEM
&& GET_CODE (XEXP (src, 0)) == SYMBOL_REF)
replace_symbols_in_block
(DECL_INITIAL (current_function_decl), src, newsrc);
/* Kill old insn */
delete_insn (scan);