From bdd4c95a6f11ca3fc3db217a106dd1f1ad7de6f3 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 18 Sep 1996 17:53:25 -0400 Subject: [PATCH] (print_operand): Support unsigned codes for %D, %c, and %d. From-SVN: r12744 --- gcc/config/alpha/alpha.c | 57 +++++++++++++++------------------------- 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index b8e581b3992..33a6fe6dfca 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1420,43 +1420,28 @@ print_operand (file, x, code) fprintf (file, "%ld", (64 - INTVAL (x)) / 8); break; - case 'C': + case 'C': case 'D': case 'c': case 'd': /* Write out comparison name. */ - if (GET_RTX_CLASS (GET_CODE (x)) != '<') - output_operand_lossage ("invalid %%C value"); - - if (GET_CODE (x) == LEU) - fprintf (file, "ule"); - else if (GET_CODE (x) == LTU) - fprintf (file, "ult"); - else - fprintf (file, "%s", GET_RTX_NAME (GET_CODE (x))); - break; - - case 'D': - /* Similar, but write reversed code. We can't get an unsigned code - here. */ - if (GET_RTX_CLASS (GET_CODE (x)) != '<') - output_operand_lossage ("invalid %%D value"); - - fprintf (file, "%s", GET_RTX_NAME (reverse_condition (GET_CODE (x)))); - break; - - case 'c': - /* Similar to `c', but swap. We can't get unsigned here either. */ - if (GET_RTX_CLASS (GET_CODE (x)) != '<') - output_operand_lossage ("invalid %%D value"); - - fprintf (file, "%s", GET_RTX_NAME (swap_condition (GET_CODE (x)))); - break; - - case 'd': - /* Similar, but reverse and swap. We can't get unsigned here either. */ - if (GET_RTX_CLASS (GET_CODE (x)) != '<') - output_operand_lossage ("invalid %%D value"); - - fprintf (file, "%s", - GET_RTX_NAME (swap_condition (reverse_condition ((GET_CODE (x)))))); + { + enum rtx_code c = GET_CODE (x); + + if (GET_RTX_CLASS (c) != '<') + output_operand_lossage ("invalid %%C value"); + + if (code == 'D') + c = reverse_condition (c); + else if (code == 'c') + c = swap_condition (c); + else if (code == 'd') + c = swap_condition (reverse_condition (c)); + + if (c == LEU) + fprintf (file, "ule"); + else if (c == LTU) + fprintf (file, "ult"); + else + fprintf (file, "%s", GET_RTX_NAME (c)); + } break; case 'E': -- 2.30.2