From 914c2e776d6d6ce6da61f4be9982390ef86c018b Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 25 Feb 1995 06:51:17 -0500 Subject: [PATCH] (low_32_bit_operand): New function. From-SVN: r9078 --- gcc/config/rs6000/rs6000.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 4890134d0916..678f21f99540 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. */ -- 2.43.5