Commit 8f75773e by Richard Kenner

({low_32_bit,offsettable_mem}_operand): The function low_32_bit_operand is now unused, delete it.

({low_32_bit,offsettable_mem}_operand): The function
low_32_bit_operand is now unused, delete it.  New function
offsettable_mem_operand to determine if a memory address is
offsettable.
(float_conv_temp): New global.
(output_epilog): Zero out float_conv_temp.

From-SVN: r10481
parent dbe3df29
...@@ -73,6 +73,10 @@ int rs6000_pic_labelno; ...@@ -73,6 +73,10 @@ int rs6000_pic_labelno;
/* Whether a System V.4 varargs area was created. */ /* Whether a System V.4 varargs area was created. */
int rs6000_sysv_varargs_p; int rs6000_sysv_varargs_p;
/* Temporary memory used to convert integer -> float */
struct rtx_def *float_conv_temp;
/* Print the options used in the assembly file. */ /* Print the options used in the assembly file. */
...@@ -481,22 +485,22 @@ easy_fp_constant (op, mode) ...@@ -481,22 +485,22 @@ easy_fp_constant (op, mode)
return (mode == SFmode return (mode == SFmode
|| (low != 0 && input_operand (low, word_mode))); || (low != 0 && input_operand (low, word_mode)));
} }
/* Return 1 if the operand is a constant whose low-order 32 bits are /* Return 1 if the operand is an offsettable memory operand. */
zero. */
int int
low_32_bit_operand (op, mode) offsettable_mem_operand (op, mode)
register rtx op; register rtx op;
enum machine_mode mode; enum machine_mode mode;
{ {
rtx low; if (GET_CODE (op) != MEM)
return 0;
if (GET_CODE (op) != CONST_DOUBLE && GET_CODE (op) != CONST_INT) if (mode != GET_MODE (op))
return 0; return 0;
low = operand_subword (op, 1, 0, mode); return offsettable_address_p (reload_completed | reload_in_progress,
return low != 0 && GET_CODE (low) == CONST_INT && INTVAL (low) == 0; mode, XEXP (op, 0));
} }
/* Return 1 if the operand is either a floating-point register, a pseudo /* Return 1 if the operand is either a floating-point register, a pseudo
...@@ -2750,6 +2754,9 @@ output_epilog (file, size) ...@@ -2750,6 +2754,9 @@ output_epilog (file, size)
char *load_reg = (TARGET_64BIT) ? "\tld %s,%d(%s)" : "\t{l|lwz} %s,%d(%s)\n"; char *load_reg = (TARGET_64BIT) ? "\tld %s,%d(%s)" : "\t{l|lwz} %s,%d(%s)\n";
rtx insn = get_last_insn (); rtx insn = get_last_insn ();
/* Forget about the float conversion temporary used. */
float_conv_temp = NULL_RTX;
/* If the last insn was a BARRIER, we don't have to write anything except /* If the last insn was a BARRIER, we don't have to write anything except
the trace table. */ the trace table. */
if (GET_CODE (insn) == NOTE) if (GET_CODE (insn) == NOTE)
......
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