diff options
author | ciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-12 21:52:33 +0000 |
---|---|---|
committer | ciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-12 21:52:33 +0000 |
commit | 77f85b6ead93ef444e8cdcb6d9bbbd4623e64f6b (patch) | |
tree | ac756bba7a33b86f559e069a5f577170fe03c5f9 /gcc/config/m68hc11/m68hc11.c | |
parent | 171bfe897473d8b6d5786c9ac35d5a74962ad59d (diff) | |
download | gcc-77f85b6ead93ef444e8cdcb6d9bbbd4623e64f6b.tar.gz |
* config/m68hc11/m68hc11-protos.h
(m68hc11_eq_compare_operator): Declare
* config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
* config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
(d_register_operand): Check the operand mode.
(hard_addr_reg_operand): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65529 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68hc11/m68hc11.c')
-rw-r--r-- | gcc/config/m68hc11/m68hc11.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index 5c762cace35..abada3cc284 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -1026,6 +1026,9 @@ d_register_operand (operand, mode) rtx operand; enum machine_mode mode ATTRIBUTE_UNUSED; { + if (GET_MODE (operand) != mode && mode != VOIDmode) + return 0; + if (GET_CODE (operand) == SUBREG) operand = XEXP (operand, 0); @@ -1040,6 +1043,9 @@ hard_addr_reg_operand (operand, mode) rtx operand; enum machine_mode mode ATTRIBUTE_UNUSED; { + if (GET_MODE (operand) != mode && mode != VOIDmode) + return 0; + if (GET_CODE (operand) == SUBREG) operand = XEXP (operand, 0); @@ -1132,6 +1138,14 @@ symbolic_memory_operand (op, mode) } int +m68hc11_eq_compare_operator (op, mode) + register rtx op; + enum machine_mode mode ATTRIBUTE_UNUSED; +{ + return GET_CODE (op) == EQ || GET_CODE (op) == NE; +} + +int m68hc11_logical_operator (op, mode) register rtx op; enum machine_mode mode ATTRIBUTE_UNUSED; |