diff options
author | Richard Stallman <rms@gnu.org> | 1993-11-07 04:28:00 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-11-07 04:28:00 +0000 |
commit | 8270111ebe85387475ede76649873c23d2dafacb (patch) | |
tree | 6481858343810b753b70e78efb8c1981961e1eb6 /gcc | |
parent | 803c85ca50455f998fa2fdbfa8829f159ed4fef5 (diff) | |
download | gcc-8270111ebe85387475ede76649873c23d2dafacb.zip gcc-8270111ebe85387475ede76649873c23d2dafacb.tar.gz gcc-8270111ebe85387475ede76649873c23d2dafacb.tar.bz2 |
(partial_ccmode_register_operand, even_relop)
(partial_ccmode_register_operand, even_relop)
(odd_relop): New functions, for support of CCEVENmode.
(print_operand, new case '!'): Revert following condition.
From-SVN: r6030
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/m88k/m88k.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c index 8a7420d..695d655 100644 --- a/gcc/config/m88k/m88k.c +++ b/gcc/config/m88k/m88k.c @@ -1341,6 +1341,16 @@ real_or_0_operand (op, mode) && op == CONST0_RTX (mode))); } +/* Return true if OP is valid to use in the context of logic aritmethic + on condition codes. */ + +int partial_ccmode_register_operand(op,mode) + rtx op; + enum machine_mode mode; +{ + return (register_operand(op,CCmode) || register_operand(op,CCEVENmode)); +} + /* Return true if OP is a relational operator. */ int @@ -1366,6 +1376,40 @@ relop (op, mode) } } +int even_relop(op,mode) + rtx op; + enum machine_mode mode; +{ + switch (GET_CODE(op)) + { + case EQ: + case LT: + case GT: + case LTU: + case GTU: + return 1; + default: + return 0; + } +} + +int odd_relop(op,mode) + rtx op; + enum machine_mode mode; +{ + switch (GET_CODE(op)) + { + case NE: + case LE: + case GE: + case LEU: + case GEU: + return 1; + default: + return 0; + } +} + /* Return true if OP is a relational operator, and is not an unsigned relational operator. */ @@ -2803,6 +2847,10 @@ print_operand (file, x, code) ? ".n\t" : "\t", file); return; + case '!': /* Reverse the following condition. */ + sequencep++; + reversep=1; + return; case 'R': /* reverse the condition of the next print_operand if operand is a label_ref. */ sequencep++; |