Mercurial > hg > CbC > CbC_gcc
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 |