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
|| (! (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
&& 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;
}
}
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"