aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.addrmodes
blob: d9761692a765246ad9dcf9ae26644ad43eafd7f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
2006-08-25  Paolo Bonzini  <bonzini@gnu.org>

	* config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Fix commit.

2006-08-24  Paolo Bonzini  <bonzini@gnu.org>

	* explow.c (memory_address_1): New.
	(memory_address): Use it.  Avoid gotos.  Test for the validity
	of the address returned by LEGITIMIZE_ADDRESS.

	* doc/tm.texi (LEGITIMIZE_ADDRESS): Discourage using
	GO_IF_LEGITIMATE_ADDRESS (and WIN) within the macro.

	* config/s390/s390.h (LEGITIMIZE_ADDRESS): Remove checks
	now performed by memory_address.
	* config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Likewise.
	* config/i386/i386.h (LEGITIMIZE_ADDRESS): Likewise.
	* config/avr/avr.h (LEGITIMIZE_ADDRESS): Likewise.
	* config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Likewise.
	* config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Likewise.
	* config/arm/arm.h (LEGITIMIZE_ADDRESS): Likewise.
	* config/pa/pa.h (LEGITIMIZE_ADDRESS): Likewise.
	* config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Likewise.

	* config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Use memory_address_p.

	* config/cris/cris.h (LEGITIMIZE_ADDRESS): Undefine.
	* config/mt/mt.h (LEGITIMIZE_ADDRESS): Likewise.

2006-08-24  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
	Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.

2006-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p,
	legitimate_indexed_address_p, legitimate_indirect_address_p,
	macho_lo_sum_memory_operand, legitimate_lo_sum_address_p):
	Use ok_for_*_p.
	(REG_MODE_OK_FOR_BASE_P): Delete.
	(rs6000_legitimize_reload_address): Use ok_for_*_p and
	base_reg_class.
	* config/rs6000/rs6000.h (MODE_CODE_BASE_REG_CLASS): New name of...
	(BASE_REG_CLASS): ... this.
	(REGNO_OK_FOR_INDEX_P): Don't look up reg_renumber.
	(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise, renamed from...
	(REGNO_OK_FOR_BASE_P): ... this.
	(INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P,
	REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.

2006-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* genrecog.c (recog_tree, split_tree, peephole2_tree): New globals.
	(make_insn_sequence, make_split_sequence, make_peephole2_sequence):
	Rename to...
	(process_define_insn, process_define_split, process_define_peephole2):
	... these.  Return void and call merge_trees here.
	(main): Remove declarations of new globals and don't initialize them.
	Adjust make_*_sequence call.

2006-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* gendtree.c (finish_sequence): Remove always_add parameter, assume it is
	always false.
	* genrecog.c (make_insn_sequence, make_split_sequence,
	make_peephole2_sequence): Adjust.

2006-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* genrecog.c (make_peephole2_sequence): Never create nodes to discard them.

2006-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* gendtree.c (add_to_sequence): Move from genrecog.c, removing PEEPHOLE2 stuff.
	(finish_sequence): Extract from genrecog.c make_insn_sequence.
	* gendtree.h (add_to_sequence, finish_sequence): New prototypes.
	* genrecog.c (make_insn_sequence): Split into...
	(make_recog_sequence, make_split_sequence, make_peephole2_sequence): ... these.
	Move code for PEEPHOLE2's from add_to_sequence into make_peephole2_sequence.
	(main): Call them.
	(add_to_sequence): Delete.
	(extract_pattern): New.
	(enum routine_type): Delete.

2006-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* gendtree.c, gendtree.h: New, split from...
	* genrecog.c: ... this.  Add hooks to differentiate recog/split/peep2.

2006-08-22  Paolo Bonzini  <bonzini@gnu.org>

	* addresses.h (regno_ok_for_base_1, regno_ok_for_index_1): New function.
	Use them throughout instead of target macros.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* config/arm/arm.h (MODE_CODE_BASE_REG_CLASS, THUMB_REGNO_MODE_CODE_OK_FOR_BASE_P):
	Handle VOIDmode correctly.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi: Define non-deprecated base register class
	macros before the others.  Mention REG_STRICT_P instead
	of REG_OK_STRICT.  Mention addresses.h functions.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* addresses.h (regno_ok_for_base_p, ok_for_base_p, regno_ok_for_index_p,
	ok_for_index_p): Get an argument to indicate strictness.
	(regno_ok_for_base_p_strict, ok_for_base_p_strict, regno_ok_for_index_p_strict,
	ok_for_index_p_strict): New functions.
	* reload.c (find_reloads_address, find_reloads_address_1): Add _strict to calls.
	* regrename.c (scan_rtx_address, replace_oldest_value_addr): Likewise.

        * addresses.h (ok_for_base_p, ok_for_index_p, ok_for_base_p_strict,
        ok_for_index_p_strict, ok_for_base_p_nonstrict, ok_for_index_p_nonstrict): Accept
        non-REG arguments.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* defaults.h: Fix broken commit.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* addresses.h (ok_for_base_p_1): Remove, replace with REGNO_MODE_OK_FOR_REG_BASE_P.
	* defaults.h (REGNO_MODE_CODE_OK_FOR_BASE_P): Provide default definition.
	(MODE_CODE_BASE_REG_CLASS): Likewise.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* addresses.h (base_reg_class): Stop using MODE_BASE_REG_REG_CLASS.
	(ok_for_base_p_1): Likewise, stop using REGNO_MODE_OK_FOR_REG_BASE_P.

	* config/arm/arm.h (BASE_REG_CLASS): Remove.
	(MODE_BASE_REG_CLASS): Redefine as...
	(MODE_CODE_BASE_REG_CLASS): ... this.  Test for reg+reg, use GET_MODE_SIZE
	instead of testing for SImode.
	(MODE_BASE_REG_REG_CLASS): Remove.
	(ARM_REGNO_OK_FOR_INDEX_P, THUMB_REGNO_OK_FOR_INDEX_P): New.
	(THUMB_REGNO_MODE_OK_FOR_BASE_P): Redefine as...
	(THUMB_REGNO_MODE_CODE_OK_FOR_BASE_P): ... this. Test for reg+reg.
	(REGNO_MODE_OK_FOR_BASE_P): Redefine as...
	(REGNO_MODE_CODE_OK_FOR_BASE_P): ... this.  Use new Thumb macro.
	(REGNO_OK_FOR_INDEX_P): Use new macros above.
	(THUMB_REG_MODE_OK_FOR_BASE_P): Use THUMB_REGNO_MODE_CODE_OK_FOR_BASE_P.
	* config/arm/arm.c: Include addresses.h.
	(thumb_base_register_rtx_p) : Use THUMB_REGNO_MODE_CODE_OK_FOR_BASE_P.
	(thumb_legitimize_reload_address): Use base_reg_class.

	* doc/tm.texi (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P): Remove
	documentation.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* reload.c (REG_STRICT_P): New.
	* Makefile.in (cs-tm.h): Define REG_STRICT_P to 0.
	* config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Unify definition.
	* config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/c4x/c4x.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/mt/mt.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/xstormy16/xstormy16.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS, EXTRA_CONSTRAINT):
	Likewise.
	* config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.

	* config/arm/arm.h (REG_STRICT_P): Do not define.
	* config/frv/frv.h (REG_OK_STRICT_P): Remove.
	(GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P instead.
	* config/m32c/m32c.h (REG_OK_STRICT_V): Remove.
	(GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P instead.
	* config/mn10300/mn10300.h (REG_STRICT): Remove.
	(REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P,
	GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P instead.
	* config/mmix/mmix.h (MMIX_REG_OK_STRICT): Remove.
	(EXTRA_CONSTRAINT, GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P instead.
	* config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): Remove.
	(REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS):
	Use REG_STRICT_P instead.

2006-08-21  Paolo Bonzini  <bonzini@gnu.org>

	* addresses.h (regno_ok_for_base_p): Return false for pseudos whose
	reg_renumber is <0.
	(ok_for_base_p, regno_ok_for_base_p_nonstrict, ok_for_base_p_nonstrict,
	regno_ok_for_index_p, ok_for_index_p, regno_ok_for_index_p_nonstrict,
	ok_for_index_p_nonstrict): New.
	* regclass.c (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): Delete.
	* rtl-factoring.c (recompute_gain_for_pattern_seq): Use
	regno_ok_for_base_p_nonstrict instead of ok_for_base_p_1.