From 1bc5aee63eb72b341f506ad058502cd0361f0d10 Mon Sep 17 00:00:00 2001 From: Ben Cheng Date: Tue, 25 Mar 2014 22:37:19 -0700 Subject: Initial checkin of GCC 4.9.0 from trunk (r208799). Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba --- gcc-4.9/gcc/config/moxie/constraints.md | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 gcc-4.9/gcc/config/moxie/constraints.md (limited to 'gcc-4.9/gcc/config/moxie/constraints.md') diff --git a/gcc-4.9/gcc/config/moxie/constraints.md b/gcc-4.9/gcc/config/moxie/constraints.md new file mode 100644 index 000000000..dcca9d6e1 --- /dev/null +++ b/gcc-4.9/gcc/config/moxie/constraints.md @@ -0,0 +1,56 @@ +;; Constraint definitions for Moxie +;; Copyright (C) 2009-2014 Free Software Foundation, Inc. +;; Contributed by Anthony Green + +;; 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 +;; . + +;; ------------------------------------------------------------------------- +;; Constraints +;; ------------------------------------------------------------------------- + +(define_constraint "A" + "An absolute address." + (and (match_code "mem") + (ior (match_test "GET_CODE (XEXP (op, 0)) == SYMBOL_REF") + (match_test "GET_CODE (XEXP (op, 0)) == LABEL_REF") + (match_test "GET_CODE (XEXP (op, 0)) == CONST")))) + +(define_constraint "B" + "An offset address." + (and (match_code "mem") + (match_test "GET_CODE (XEXP (op, 0)) == PLUS"))) + +(define_constraint "W" + "A register indirect memory operand." + (and (match_code "mem") + (match_test "REG_P (XEXP (op, 0)) + && REGNO_OK_FOR_BASE_P (REGNO (XEXP (op, 0)))"))) + +(define_constraint "O" + "The constant zero" + (and (match_code "const_int") + (match_test "ival == 0"))) + +(define_constraint "I" + "An 8-bit constant (0..255)" + (and (match_code "const_int") + (match_test "ival >= 0 && ival <= 255"))) + +(define_constraint "N" + "A constant -(0..255)" + (and (match_code "const_int") + (match_test "ival >= -255 && ival <= 0"))) -- cgit v1.2.3