comparison gcc/config/pa/constraints.md @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents 77e2b8dfacca
children 84e7813d76e9
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 ;; Constraint definitions for pa 1 ;; Constraint definitions for pa
2 ;; Copyright (C) 2007 Free Software Foundation, Inc. 2 ;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
3 3
4 ;; This file is part of GCC. 4 ;; This file is part of GCC.
5 5
6 ;; GCC is free software; you can redistribute it and/or modify it 6 ;; GCC is free software; you can redistribute it and/or modify it
7 ;; under the terms of the GNU General Public License as published 7 ;; under the terms of the GNU General Public License as published
16 ;; You should have received a copy of the GNU General Public License 16 ;; You should have received a copy of the GNU General Public License
17 ;; along with GCC; see the file COPYING3. If not see 17 ;; along with GCC; see the file COPYING3. If not see
18 ;; <http://www.gnu.org/licenses/>. 18 ;; <http://www.gnu.org/licenses/>.
19 19
20 ;;; Unused letters: 20 ;;; Unused letters:
21 ;;; ABCDEF H V Y 21 ;;; ABCD H Y
22 ;;; bcde ghijklmnop stuvw z 22 ;;; bcde h jkl tuvw z
23 23
24 ;; Register constraints. 24 ;; Register constraints.
25 (define_register_constraint "a" "R1_REGS" 25 (define_register_constraint "a" "R1_REGS"
26 "General register 1.") 26 "General register 1.")
27 27
53 (match_test "VAL_14_BITS_P (ival)"))) 53 (match_test "VAL_14_BITS_P (ival)")))
54 54
55 (define_constraint "K" 55 (define_constraint "K"
56 "Integer constant that can be deposited with a zdepi instruction." 56 "Integer constant that can be deposited with a zdepi instruction."
57 (and (match_code "const_int") 57 (and (match_code "const_int")
58 (match_test "zdepi_cint_p (ival)"))) 58 (match_test "pa_zdepi_cint_p (ival)")))
59 59
60 (define_constraint "L" 60 (define_constraint "L"
61 "Signed 5-bit integer constant." 61 "Signed 5-bit integer constant."
62 (and (match_code "const_int") 62 (and (match_code "const_int")
63 (match_test "VAL_5_BITS_P (ival)"))) 63 (match_test "VAL_5_BITS_P (ival)")))
68 (match_test "ival == 0"))) 68 (match_test "ival == 0")))
69 69
70 (define_constraint "N" 70 (define_constraint "N"
71 "Integer constant that can be loaded with a ldil instruction." 71 "Integer constant that can be loaded with a ldil instruction."
72 (and (match_code "const_int") 72 (and (match_code "const_int")
73 (match_test "ldil_cint_p (ival)"))) 73 (match_test "pa_ldil_cint_p (ival)")))
74 74
75 (define_constraint "O" 75 (define_constraint "O"
76 "Integer constant such that ival+1 is a power of 2." 76 "Integer constant such that ival+1 is a power of 2."
77 (and (match_code "const_int") 77 (and (match_code "const_int")
78 (match_test "(ival & (ival + 1)) == 0"))) 78 (match_test "(ival & (ival + 1)) == 0")))
79 79
80 (define_constraint "P" 80 (define_constraint "P"
81 "Integer constant that can be used as an and mask in depi and 81 "Integer constant that can be used as an and mask in depi and
82 extru instructions." 82 extru instructions."
83 (and (match_code "const_int") 83 (and (match_code "const_int")
84 (match_test "and_mask_p (ival)"))) 84 (match_test "pa_and_mask_p (ival)")))
85 85
86 (define_constraint "S" 86 (define_constraint "S"
87 "Integer constant 31." 87 "Integer constant 31."
88 (and (match_code "const_int") 88 (and (match_code "const_int")
89 (match_test "ival == 31"))) 89 (match_test "ival == 31")))
122 (and (match_code "mem") 122 (and (match_code "mem")
123 (match_test "IS_INDEX_ADDR_P (XEXP (op, 0))"))) 123 (match_test "IS_INDEX_ADDR_P (XEXP (op, 0))")))
124 124
125 (define_constraint "T" 125 (define_constraint "T"
126 "A memory operand for floating-point loads and stores." 126 "A memory operand for floating-point loads and stores."
127 (and (match_code "mem") 127 (match_test "floating_point_store_memory_operand (op, mode)"))
128 (match_test "!IS_LO_SUM_DLT_ADDR_P (XEXP (op, 0))
129 && !IS_INDEX_ADDR_P (XEXP (op, 0))
130 && memory_address_p ((GET_MODE_SIZE (mode) == 4
131 ? SFmode : DFmode),
132 XEXP (op, 0))")))
133 128
134 ;; We could allow short displacements but TARGET_LEGITIMATE_ADDRESS_P 129 ;; We could allow short displacements but TARGET_LEGITIMATE_ADDRESS_P
135 ;; can't tell when a long displacement is valid. 130 ;; can't tell when a long displacement is valid.
136 (define_constraint "W" 131 (define_constraint "W"
137 "A register indirect memory operand." 132 "A register indirect memory operand."