comparison gcc/config/mn10300/constraints.md @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents a06113de4d67
children 04ced10e8804
comparison
equal deleted inserted replaced
65:65488c3d617d 67:f6334be47118
21 "A data register.") 21 "A data register.")
22 22
23 (define_register_constraint "a" "ADDRESS_REGS" 23 (define_register_constraint "a" "ADDRESS_REGS"
24 "An address register.") 24 "An address register.")
25 25
26 ;; This can be used for QI/HImode memory operations, and most arithmetic.
27 ;; AM33 supports these on all registers, where MN103 needs DATA_REGS.
28 (define_register_constraint "D" "TARGET_AM33 ? GENERAL_REGS : DATA_REGS"
29 "A general register for AM33, and a data register otherwise.")
30
31 ;; Similarly for ADDRESS_REGS vs GENERAL_REGS.
32 (define_register_constraint "A" "TARGET_AM33 ? GENERAL_REGS : ADDRESS_REGS"
33 "A general register for AM33, and an address register otherwise.")
34
26 (define_register_constraint "y" "SP_REGS" 35 (define_register_constraint "y" "SP_REGS"
27 "An SP register (if available).") 36 "An SP register (if available).")
37
38 (define_register_constraint "z" "MDR_REGS"
39 "The MDR register.")
28 40
29 (define_register_constraint "x" "TARGET_AM33 ? EXTENDED_REGS : NO_REGS" 41 (define_register_constraint "x" "TARGET_AM33 ? EXTENDED_REGS : NO_REGS"
30 "An extended register.") 42 "An extended register.")
31 43
32 (define_register_constraint "f" "TARGET_AM33_2 ? FP_REGS : NO_REGS" 44 (define_register_constraint "f" "TARGET_AM33_2 ? FP_REGS : NO_REGS"
33 "A floating point register.") 45 "A floating point register.")
34 46
35 (define_register_constraint "A" "TARGET_AM33_2 ? FP_ACC_REGS : NO_REGS" 47 (define_register_constraint "c" "TARGET_AM33_2 ? FP_ACC_REGS : NO_REGS"
36 "A floating point accumulator register.") 48 "A floating point accumulator register.")
37 49
38 (define_memory_constraint "Q" 50 (define_memory_constraint "Q"
39 "@internal" 51 "@internal"
40 (and (match_code "mem") 52 (and (match_code "mem")
41 (match_test "!CONSTANT_ADDRESS_P (XEXP (op, 0))"))) 53 (match_test "!CONSTANT_ADDRESS_P (XEXP (op, 0))")))
42
43 (define_memory_constraint "R"
44 "@internal"
45 (and (match_code "mem")
46 (match_test "mode == QImode")
47 (ior (match_test "CONSTANT_ADDRESS_P (XEXP (op, 0))")
48 (and (match_test "GET_CODE (XEXP (op, 0)) == REG")
49 (match_test "REG_OK_FOR_BIT_BASE_P (XEXP (op, 0))")
50 (match_test "XEXP (op, 0) != stack_pointer_rtx"))
51 (and (match_test "GET_CODE (XEXP (op, 0)) == PLUS")
52 (match_test "GET_CODE (XEXP (XEXP (op, 0), 0)) == REG")
53 (match_test "REG_OK_FOR_BIT_BASE_P (XEXP (XEXP (op, 0), 0))")
54 (match_test "XEXP (XEXP (op, 0), 0) != stack_pointer_rtx")
55 (match_test "GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT")
56 (match_test "INT_8_BITS (INTVAL (XEXP (XEXP (op, 0), 1)))")))))
57
58 (define_memory_constraint "T"
59 "@internal"
60 (and (match_code "mem")
61 (match_test "mode == QImode")
62 (and (match_test "GET_CODE (XEXP (op, 0)) == REG")
63 (match_test "REG_OK_FOR_BIT_BASE_P (XEXP (op, 0))")
64 (match_test "XEXP (op, 0) != stack_pointer_rtx"))))
65 54
66 (define_constraint "S" 55 (define_constraint "S"
67 "@internal" 56 "@internal"
68 (if_then_else (match_test "flag_pic") 57 (if_then_else (match_test "flag_pic")
69 (and (match_test "GET_CODE (op) == UNSPEC") 58 (and (match_test "GET_CODE (op) == UNSPEC")
103 "An integer of either 255 or 65535." 92 "An integer of either 255 or 65535."
104 (and (match_code "const_int") 93 (and (match_code "const_int")
105 (ior (match_test "ival == 255") 94 (ior (match_test "ival == 255")
106 (match_test "ival == 65535")))) 95 (match_test "ival == 65535"))))
107 96
97 (define_constraint "O"
98 "An integer between -8 and +7 inclusive."
99 (and (match_code "const_int")
100 (and (match_test "ival >= -8")
101 (match_test "ival <= 7"))))
102
108 ;; Floating-point constraints 103 ;; Floating-point constraints
109 (define_constraint "G" 104 (define_constraint "G"
110 "Floating-point zero." 105 "Floating-point zero."
111 (and (match_code "const_double") 106 (and (match_code "const_double")
112 (match_test "op == CONST0_RTX (mode)"))) 107 (match_test "op == CONST0_RTX (mode)")))