Commit a5a97921 by Ben Elliston Committed by Ben Elliston

rs6000.c (rs6000_hard_regno_mode_ok): Reject decimal float modes for all floating point registers.

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
	decimal float modes for all floating point registers.

From-SVN: r109836
parent fc0d1c49
2006-01-18 Ben Elliston <bje@au.ibm.com>
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
decimal float modes for all floating point registers.
* config/rs6000/predicates.md (reg_or_mem_operand): Pair up
match_code "mem" with match_test "macho_lo_sum_memory_operand".
......
......@@ -1031,10 +1031,12 @@ rs6000_hard_regno_mode_ok (int regno, enum machine_mode mode)
if (INT_REGNO_P (regno))
return INT_REGNO_P (regno + HARD_REGNO_NREGS (regno, mode) - 1);
/* The float registers can only hold floating modes and DImode. */
/* The float registers can only hold floating modes and DImode.
This also excludes decimal float modes. */
if (FP_REGNO_P (regno))
return
(SCALAR_FLOAT_MODE_P (mode)
&& !DECIMAL_FLOAT_MODE_P (mode)
&& FP_REGNO_P (regno + HARD_REGNO_NREGS (regno, mode) - 1))
|| (GET_MODE_CLASS (mode) == MODE_INT
&& GET_MODE_SIZE (mode) == UNITS_PER_FP_WORD);
......
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