diff options
Diffstat (limited to 'gcc/config/mips/predicates.md')
-rw-r--r-- | gcc/config/mips/predicates.md | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/mips/predicates.md b/gcc/config/mips/predicates.md index dd5148067cd..5e9398e69f3 100644 --- a/gcc/config/mips/predicates.md +++ b/gcc/config/mips/predicates.md @@ -127,6 +127,11 @@ (and (match_code "reg,subreg") (match_test "ST_REG_P (true_regnum (op))"))) +(define_predicate "muldiv_target_operand" + (if_then_else (match_test "TARGET_MIPS16") + (match_operand 0 "hilo_operand") + (match_operand 0 "register_operand"))) + (define_special_predicate "pc_or_label_operand" (match_code "pc,label_ref")) @@ -189,7 +194,9 @@ }) (define_predicate "move_operand" - (match_operand 0 "general_operand") + ;; Allow HI and LO to be used as the source of a MIPS16 move. + (ior (match_operand 0 "general_operand") + (match_operand 0 "hilo_operand")) { enum mips_symbol_type symbol_type; |