diff options
Diffstat (limited to 'gcc-4.8.1/gcc/config/microblaze/predicates.md')
-rw-r--r-- | gcc-4.8.1/gcc/config/microblaze/predicates.md | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/gcc-4.8.1/gcc/config/microblaze/predicates.md b/gcc-4.8.1/gcc/config/microblaze/predicates.md deleted file mode 100644 index 5fd1bd403..000000000 --- a/gcc-4.8.1/gcc/config/microblaze/predicates.md +++ /dev/null @@ -1,121 +0,0 @@ -;; Predicate definitions for Xilinx MicroBlaze -;; Copyright (C) 2009-2013 Free Software Foundation, Inc. -;; -;; Contributed by Michael Eager <eager@eagercon.com>. -;; -;; This file is part of GCC. -;; -;; GCC is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; GCC is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GCC; see the file COPYING3. If not see -;; <http://www.gnu.org/licenses/>. - - -;; Return whether OP can be used as an operands in arithmetic. -(define_predicate "arith_operand" - (ior (match_code "const_int,const_double") - (match_operand 0 "register_operand"))) - -(define_predicate "arith_operand32" - (ior (match_operand 0 "register_operand") - (and (match_code "const_int,const_double") - (match_test "LARGE_INT (op)")))) - -(define_predicate "arith_plus_operand" - (match_operand 0 "general_operand") -{ - switch (GET_CODE (op)) - { - default: - return 0; - case CONST_INT: - case REG: - return 1; - case SYMBOL_REF: - case LABEL_REF: - if (flag_pic || microblaze_tls_referenced_p(op)) - return 0; - return 1; - case CONST: - { - rtx const0; - const0 = XEXP (op, 0); - - switch (GET_CODE(const0)) - { - default: - return 0; - case UNSPEC : - return 1; - - case PLUS : - { - rtx p0, p1; - p0 = XEXP (const0, 0); - p1 = XEXP (const0, 1); - - if ((GET_CODE(p0) == SYMBOL_REF - || GET_CODE (p0) == LABEL_REF) - && GET_CODE(p1) == CONST_INT) - { - return arith_plus_operand (p0, GET_MODE(p0)); - } - } - } - } - } - return 0; -}) - -(define_predicate "const_0_operand" - (and (match_code "const_int,const_double") - (match_test "op == CONST0_RTX (GET_MODE (op))"))) - -;; Return whether OP is a register or the constant 0. -(define_predicate "reg_or_0_operand" - (ior (match_operand 0 "const_0_operand") - (match_operand 0 "register_operand"))) - -;; Return if the operand is either the PC or a label_ref. -(define_special_predicate "pc_or_label_operand" - (ior (match_code "pc,label_ref") - (and (match_code "symbol_ref") - (match_test "!(strcmp ((XSTR (op, 0)), \"_stack_overflow_exit\"))")))) - -;; Test for valid call operand -(define_predicate "call_insn_operand" - (match_test "CALL_INSN_OP (op)")) - -(define_predicate "call_insn_simple_operand" - (and (match_test "CALL_INSN_OP (op)") - (match_test "GET_CODE (op) == REG || GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == CONST_INT"))) - -;; Return if OPERAND is valid as a source operand for a move instruction. -(define_predicate "move_src_operand" - (and ( - not ( - and (match_code "plus") - (not (match_test "(GET_CODE (XEXP (op, 0)) == REG) ^ (GET_CODE (XEXP (op,1)) == REG)")) - ) - ) - (match_operand 0 "general_operand")) -{ - if (microblaze_tls_referenced_p(op) - || (flag_pic && (symbol_mentioned_p(op) || label_mentioned_p(op)))) - return false; - - return true; -}) - -;; Test for valid PIC call operand -(define_predicate "call_insn_plt_operand" - (match_test "PLT_ADDR_P (op)")) |