diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-12-08 15:40:54 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-12-08 15:40:54 -0500 |
commit | 16f323bef32ff1349158412bba7b030acd3062be (patch) | |
tree | 82c4c71f0b1ca93654d1eaf982a1a1f649319084 | |
parent | 53afc2565c3d37ea7ccb5c22049ecdacc8cf5683 (diff) | |
download | gcc-16f323bef32ff1349158412bba7b030acd3062be.zip gcc-16f323bef32ff1349158412bba7b030acd3062be.tar.gz gcc-16f323bef32ff1349158412bba7b030acd3062be.tar.bz2 |
(extend_operator): New predicate.
From-SVN: r8630
-rw-r--r-- | gcc/config/m68k/m68k.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index dfc6eb5..7f57876 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -766,6 +766,33 @@ symbolic_operand (op, mode) return 0; } } + +/* Check for sign_extend or zero_extend. Used for bit-count operands. */ + +int +extend_operator(x, mode) + rtx x; + enum machine_mode mode; +{ + if (GET_MODE(x) != SImode) + return 0; + switch (GET_CODE(x)) + { + case SIGN_EXTEND : + case ZERO_EXTEND : + break; + default : + return 0; + } + switch (GET_MODE(XEXP(x, 0))) + { + case HImode : + case QImode : + return 1; + default : + return 0; + } +} /* Legitimize PIC addresses. If the address is already |