From: Jeff Law Date: Wed, 24 Mar 1993 17:54:06 +0000 (-0700) Subject: pa.c (shadd_operand): New function. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4802a0d68185a5db2fb8e759045fbd90b7c188a1;p=gcc.git pa.c (shadd_operand): New function. * pa.c (shadd_operand): New function. (print_operand): Handle "%O" for shadd patterns. From-SVN: r3867 --- diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index b99be99e36e..04012010807 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -2427,6 +2427,13 @@ print_operand (file, x, code) return; } abort(); + case 'O': + if (GET_CODE (x) == CONST_INT && exact_log2 (INTVAL (x)) >= 0) + { + fprintf (file, "%d", exact_log2 (INTVAL (x))); + return; + } + abort(); case 'P': if (GET_CODE (x) == CONST_INT) { @@ -3038,3 +3045,13 @@ shadd_constant_p (val) else return 0; } + +/* Return 1 if OP is a CONST_INT with the value 2, 4, or 8. These are + the valid constant for shadd instructions. */ +int +shadd_operand (op, mode) + rtx op; + enum machine_mode mode; +{ + return (GET_CODE (op) == CONST_INT && shadd_constant_p (INTVAL (op))); +}