From 4802a0d68185a5db2fb8e759045fbd90b7c188a1 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 24 Mar 1993 10:54:06 -0700 Subject: [PATCH] pa.c (shadd_operand): New function. * pa.c (shadd_operand): New function. (print_operand): Handle "%O" for shadd patterns. From-SVN: r3867 --- gcc/config/pa/pa.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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))); +} -- 2.30.2