comparison gcc/config/pdp11/constraints.md @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 ;;- Constraint definitions for the pdp11 for GNU C compiler 1 ;;- Constraint definitions for the pdp11 for GNU C compiler
2 ;; Copyright (C) 2010-2017 Free Software Foundation, Inc. 2 ;; Copyright (C) 2010-2018 Free Software Foundation, Inc.
3 ;; Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). 3 ;; Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
4 4
5 ;; This file is part of GCC. 5 ;; This file is part of GCC.
6 6
7 ;; GCC is free software; you can redistribute it and/or modify 7 ;; GCC is free software; you can redistribute it and/or modify
16 16
17 ;; You should have received a copy of the GNU General Public License 17 ;; You should have received a copy of the GNU General Public License
18 ;; along with GCC; see the file COPYING3. If not see 18 ;; along with GCC; see the file COPYING3. If not see
19 ;; <http://www.gnu.org/licenses/>. 19 ;; <http://www.gnu.org/licenses/>.
20 20
21 (define_register_constraint "a" "LOAD_FPU_REGS"
22 "FPU register that can be directly loaded from memory")
23
21 (define_register_constraint "f" "FPU_REGS" 24 (define_register_constraint "f" "FPU_REGS"
22 "Any FPU register") 25 "Any FPU register")
23 26
24 (define_register_constraint "a" "LOAD_FPU_REGS" 27 (define_register_constraint "h" "NO_LOAD_FPU_REGS"
25 "FPU register that can be directly loaded from memory") 28 "FPU register that cannot be directly loaded from memory")
26 29
27 (define_register_constraint "d" "MUL_REGS" 30 (define_register_constraint "d" "MUL_REGS"
28 "General register that can be used for 16-bit multiply (odd numbered)") 31 "General register that can be used for 16-bit multiply (odd numbered)")
29 32
30 (define_constraint "I" 33 (define_constraint "I"
58 (match_test "ival == 0"))) 61 (match_test "ival == 0")))
59 62
60 (define_constraint "O" 63 (define_constraint "O"
61 "Integer constant for which several individual shifts are better than one big one" 64 "Integer constant for which several individual shifts are better than one big one"
62 (and (match_code "const_int") 65 (and (match_code "const_int")
63 (match_test "abs (ival) > 1 && abs (ival) <= 4"))) 66 (match_test "pdp11_small_shift (ival)")))
64 67
65 (define_constraint "G" 68 (define_constraint "G"
66 "Defines a real zero constant." 69 "Defines a real zero constant."
67 (and (match_code "const_double") 70 (and (match_code "const_double")
68 (match_test "op == CONST0_RTX (GET_MODE (op))"))) 71 (match_test "op == CONST0_RTX (GET_MODE (op))")))
69 72
70 (define_constraint "Q" 73 (define_memory_constraint "Q"
71 "Memory reference that requires an additional word after the opcode" 74 "Memory reference that requires an additional word after the opcode"
72 (and (match_code "mem") 75 (and (match_code "mem")
73 (match_test "memory_address_p (GET_MODE (op), XEXP (op, 0)) 76 (match_test "memory_address_p (GET_MODE (op), XEXP (op, 0))
74 && !simple_memory_operand (op, GET_MODE (op))"))) 77 && !simple_memory_operand (op, GET_MODE (op))")))
75 78
76 (define_constraint "R" 79 (define_memory_constraint "R"
77 "Memory reference that is encoded within the opcode" 80 "Memory reference that is encoded within the opcode"
78 (and (match_code "mem") 81 (and (match_code "mem")
79 (match_test "memory_address_p (GET_MODE (op), XEXP (op, 0)) 82 (match_test "memory_address_p (GET_MODE (op), XEXP (op, 0))
80 && simple_memory_operand (op, GET_MODE (op))"))) 83 && simple_memory_operand (op, GET_MODE (op))")))
81 84
85 (define_memory_constraint "D"
86 "Memory reference that is encoded within the opcode, and not push or pop"
87 (and (match_code "mem")
88 (match_test "memory_address_p (GET_MODE (op), XEXP (op, 0))
89 && no_side_effect_operand (op, GET_MODE (op))")))
90