mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-20 07:18:59 +08:00
rs6000.md (movsi): Don't modify RTL in-place.
* config/rs6000/rs6000.md (movsi): Don't modify RTL in-place. (movdi): Make similar to movsi. * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There is no such thing as a DImode CONST_DOUBLE. * config/rs6000/rs6000.c (output_toc): Likewise. From-SVN: r33898
This commit is contained in:
parent
94a54f47cf
commit
f176e826a0
@ -1,7 +1,13 @@
|
||||
2000-05-14 Geoffrey Keating <geoffk@cygnus.com>
|
||||
|
||||
* rs6000.c (output_cbranch): Don't output prediction codes
|
||||
when old mnemonics are in use. Print register names
|
||||
* config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
|
||||
(movdi): Make similar to movsi.
|
||||
* config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
|
||||
is no such thing as a DImode CONST_DOUBLE.
|
||||
* config/rs6000/rs6000.c (output_toc): Likewise.
|
||||
|
||||
* config/rs6000/rs6000.c (output_cbranch): Don't output prediction
|
||||
codes when old mnemonics are in use. Print register names
|
||||
for cc registers when requested.
|
||||
|
||||
* optabs.c (expand_float): Don't allow mode widening that causes
|
||||
|
@ -6228,7 +6228,7 @@ output_toc (file, x, labelno)
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (GET_MODE (x) == DImode
|
||||
else if (GET_MODE (x) == VOIDmode
|
||||
&& (GET_CODE (x) == CONST_INT || GET_CODE (x) == CONST_DOUBLE)
|
||||
&& ! (TARGET_NO_FP_IN_TOC && ! TARGET_MINIMAL_TOC))
|
||||
{
|
||||
|
@ -2355,7 +2355,7 @@ extern int toc_initialized;
|
||||
|| (! (TARGET_NO_FP_IN_TOC && ! TARGET_MINIMAL_TOC) \
|
||||
&& GET_CODE (X) == CONST_DOUBLE \
|
||||
&& (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \
|
||||
|| (TARGET_POWERPC64 && GET_MODE (X) == DImode)))))
|
||||
|| TARGET_POWERPC64))))
|
||||
#if 0
|
||||
&& BITS_PER_WORD == HOST_BITS_PER_INT)))
|
||||
#endif
|
||||
|
@ -8087,7 +8087,8 @@
|
||||
&& ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (get_pool_constant (
|
||||
XEXP (operands[1], 0))))
|
||||
{
|
||||
XEXP (operands[1], 0) = create_TOC_reference (XEXP (operands[1], 0));
|
||||
operands[1] = gen_rtx_MEM (SImode,
|
||||
create_TOC_reference (XEXP (operands[1], 0)));
|
||||
MEM_ALIAS_SET (operands[1]) = get_TOC_alias_set ();
|
||||
RTX_UNCHANGING_P (operands[1]) = 1;
|
||||
}
|
||||
@ -8709,27 +8710,24 @@
|
||||
}
|
||||
|
||||
operands[1] = force_const_mem (DImode, operands[1]);
|
||||
if (TARGET_TOC && CONSTANT_POOL_EXPR_P (XEXP (operands[1], 0)))
|
||||
|
||||
if (TARGET_TOC
|
||||
&& CONSTANT_POOL_EXPR_P (XEXP (operands[1], 0))
|
||||
&& ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (get_pool_constant (
|
||||
XEXP (operands[1], 0))))
|
||||
{
|
||||
XEXP (operands[1], 0) = create_TOC_reference (XEXP (operands[1], 0));
|
||||
operands[1] = gen_rtx_MEM (DImode,
|
||||
create_TOC_reference (XEXP (operands[1], 0)));
|
||||
|
||||
MEM_ALIAS_SET (operands[1]) = get_TOC_alias_set ();
|
||||
RTX_UNCHANGING_P (operands[1]) = 1;
|
||||
}
|
||||
|
||||
if (! memory_address_p (DImode, XEXP (operands[1], 0))
|
||||
&& ! reload_in_progress)
|
||||
operands[1] = change_address (operands[1], DImode,
|
||||
XEXP (operands[1], 0));
|
||||
}
|
||||
|
||||
if (TARGET_TOC
|
||||
&& GET_CODE (operands[1]) == MEM
|
||||
&& GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
|
||||
{
|
||||
XEXP (operands[1], 0) = create_TOC_reference (XEXP (operands[1], 0));
|
||||
MEM_ALIAS_SET (operands[1]) = get_TOC_alias_set ();
|
||||
RTX_UNCHANGING_P (operands[1]) = 1;
|
||||
}
|
||||
|
||||
}")
|
||||
|
||||
(define_insn "*movdi_32"
|
||||
|
Loading…
Reference in New Issue
Block a user