From: Richard Kenner Date: Thu, 19 Oct 1995 23:30:28 +0000 (-0400) Subject: ({low_32_bit,offsettable_mem}_operand): The function low_32_bit_operand is now unused... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8f75773e1fc6ebd96c65db1156afaba4915f40df;p=gcc.git ({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 --- diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 2e295a34a22..ca0a9b8e4f5 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -73,6 +73,10 @@ int rs6000_pic_labelno; /* Whether a System V.4 varargs area was created. */ 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. */ @@ -481,22 +485,22 @@ easy_fp_constant (op, mode) return (mode == SFmode || (low != 0 && input_operand (low, word_mode))); } - -/* Return 1 if the operand is a constant whose low-order 32 bits are - zero. */ + +/* Return 1 if the operand is an offsettable memory operand. */ int -low_32_bit_operand (op, mode) +offsettable_mem_operand (op, mode) register rtx op; 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; - low = operand_subword (op, 1, 0, mode); - return low != 0 && GET_CODE (low) == CONST_INT && INTVAL (low) == 0; + return offsettable_address_p (reload_completed | reload_in_progress, + mode, XEXP (op, 0)); } /* Return 1 if the operand is either a floating-point register, a pseudo @@ -2750,6 +2754,9 @@ output_epilog (file, size) char *load_reg = (TARGET_64BIT) ? "\tld %s,%d(%s)" : "\t{l|lwz} %s,%d(%s)\n"; 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 the trace table. */ if (GET_CODE (insn) == NOTE)