d30v.c (d30v_print_operand): Handle ':'.

* config/d30v/d30v.c (d30v_print_operand): Handle ':'.
        * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
        * config/d30v/d30v.md (attr predicable): New.
        (all insn patterns): Mark non-predicable patterns; use %: on the rest.
        (andsi3*): Unify into one pattern.
        (iorsi3*, xorsi3*): Likewise.
        (peephole2 patterns): Use peep2_reg_dead_p; verify not a
        conditional return.
        (old cond_exec patterns): Remove.
        (define_cond_exec): New.

From-SVN: r34204
This commit is contained in:
Richard Henderson 2000-05-27 12:53:21 -07:00 committed by Richard Henderson
parent 8d5e6e2527
commit 5401747e62
4 changed files with 258 additions and 610 deletions

View file

@ -1,3 +1,16 @@
2000-05-27 Richard Henderson <rth@cygnus.com>
* config/d30v/d30v.c (d30v_print_operand): Handle ':'.
* config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
* config/d30v/d30v.md (attr predicable): New.
(all insn patterns): Mark non-predicable patterns; use %: on the rest.
(andsi3*): Unify into one pattern.
(iorsi3*, xorsi3*): Likewise.
(peephole2 patterns): Use peep2_reg_dead_p; verify not a
conditional return.
(old cond_exec patterns): Remove.
(define_cond_exec): New.
Sat May 27 11:01:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.h (TREE_CODE_LENGTH): New macro.

View file

@ -2949,6 +2949,13 @@ d30v_print_operand (stream, x, letter)
d30v_print_operand (stream, split_values[ letter == 'L' ], '\0');
break;
case ':': /* Output the condition for the current insn. */
x = current_insn_predicate;
if (x == NULL_RTX)
break;
letter = 'T';
/* FALLTHRU */
case 'F': /* Print an appropriate suffix for a false comparision. */
case 'T': /* Print an appropriate suffix for a true comparision. */
/* Note that the sense of appropriate suffix is for conditional execution

View file

@ -4953,7 +4953,7 @@ do { \
`PRINT_OPERAND_PUNCT_VALID_P' is not defined, it means that no punctuation
characters (except for the standard one, `%') are used in this way. */
#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '.')
#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '.' || (CODE) == ':')
/* A C compound statement to output to stdio stream STREAM the assembler syntax
for an instruction operand that is a memory reference whose address is X. X

File diff suppressed because it is too large Load diff