From: Richard Kenner Date: Sat, 25 Feb 1995 11:51:17 +0000 (-0500) Subject: (low_32_bit_operand): New function. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=914c2e776d6d6ce6da61f4be9982390ef86c018b;p=gcc.git (low_32_bit_operand): New function. From-SVN: r9078 --- diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 4890134d091..678f21f9954 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -322,6 +322,23 @@ easy_fp_constant (op, mode) || (low != 0 && input_operand (low, word_mode))); } +/* Return 1 if the operand is a constant whose low-order 32 bits are + zero. */ + +int +low_32_bit_operand (op, mode) + register rtx op; + enum machine_mode mode; +{ + rtx low; + + if (GET_CODE (op) != CONST_DOUBLE && GET_CODE (op) != CONST_INT) + return 0; + + low = operand_subword (op, 1, 0, mode); + return low != 0 && GET_CODE (low) == CONST_INT && INTVAL (low) == 0; +} + /* Return 1 if the operand is either a floating-point register, a pseudo register, or memory. */