1;; Constraint definitions for Visium. 2;; Copyright (C) 2006-2020 Free Software Foundation, Inc. 3;; 4;; This file is part of GCC. 5;; 6;; GCC is free software; you can redistribute it and/or modify 7;; it under the terms of the GNU General Public License as published by 8;; the Free Software Foundation; either version 3, or (at your option) 9;; any later version. 10;; 11;; GCC is distributed in the hope that it will be useful, 12;; but WITHOUT ANY WARRANTY; without even the implied warranty of 13;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14;; GNU General Public License for more details. 15;; 16;; You should have received a copy of the GNU General Public License 17;; along with GCC; see the file COPYING3. If not see 18;; <http://www.gnu.org/licenses/>. 19 20;; Register constraints 21 22(define_register_constraint "b" "MDB" 23 "EAM register mdb") 24 25(define_register_constraint "c" "MDC" 26 "EAM register mdc") 27 28(define_register_constraint "f" "TARGET_FPU ? FP_REGS : NO_REGS" 29 "Floating point register") 30 31(define_register_constraint "k" "SIBCALL_REGS" 32 "Register for sibcall optimization") 33 34(define_register_constraint "l" "LOW_REGS" 35 "General register, but not r29, r30 and r31") 36 37(define_register_constraint "t" "R1" 38 "Register r1") 39 40(define_register_constraint "u" "R2" 41 "Register r2") 42 43(define_register_constraint "v" "R3" 44 "Register r3") 45 46;; Immediate integer operand constraints 47 48(define_constraint "J" 49 "Integer constant in the range 0 .. 65535 (16-bit immediate)" 50 (and (match_code "const_int") 51 (match_test "IN_RANGE (ival, 0, 65535)"))) 52 53(define_constraint "K" 54 "Integer constant in the range 1 .. 31 (5-bit immediate)" 55 (and (match_code "const_int") 56 (match_test "IN_RANGE (ival, 1, 31)"))) 57 58(define_constraint "L" 59 "Integer constant in the range -65535 .. -1 (16-bit negative immediate)" 60 (and (match_code "const_int") 61 (match_test "IN_RANGE (ival, -65535, -1)"))) 62 63(define_constraint "M" 64 "Integer constant -1" 65 (and (match_code "const_int") 66 (match_test "ival == -1"))) 67 68(define_constraint "O" 69 "Integer constant 0" 70 (and (match_code "const_int") 71 (match_test "ival == 0"))) 72 73(define_constraint "P" 74 "Integer constant 32" 75 (and (match_code "const_int") 76 (match_test "ival == 32"))) 77 78;; Immediate FP operand constraints 79 80(define_constraint "G" 81 "Floating-point constant 0.0" 82 (and (match_code "const_double") 83 (match_test "op == CONST0_RTX (mode)"))) 84