diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-09-18 17:53:25 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-09-18 17:53:25 -0400 |
commit | bdd4c95a6f11ca3fc3db217a106dd1f1ad7de6f3 (patch) | |
tree | 28500ce59c677ee34e8d5b5644a8bfcfecfee15e /gcc | |
parent | d1e03f311f3e29f0fd414d2002e6d582b2bf0a53 (diff) | |
download | gcc-bdd4c95a6f11ca3fc3db217a106dd1f1ad7de6f3.zip gcc-bdd4c95a6f11ca3fc3db217a106dd1f1ad7de6f3.tar.gz gcc-bdd4c95a6f11ca3fc3db217a106dd1f1ad7de6f3.tar.bz2 |
(print_operand): Support unsigned codes for %D, %c, and %d.
From-SVN: r12744
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/alpha/alpha.c | 57 |
1 files changed, 21 insertions, 36 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index b8e581b..33a6fe6 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': |