OSDN Git Service

* cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
2
3         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
4         removed; fix return value.
5         * combine.c (combine_instructions): Dirtify blocks where we failed to
6         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
7         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
8
9 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10
11         * gcse.c (insert_insn_end_bb): Fix typo in last change.
12
13 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
14
15         * recog.c (peephole2_optimize): Re-distribute EH edges.
16
17 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
18
19         * expr.c (expand_expr): Use unsave lang hook.
20         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
21         (LANG_HOOKS_INITIALIZER): Update.
22         * langhooks.h (struct lang_hooks): New hook unsave.
23         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
24         (unsave_expr_1): Remove unused lang_unsave_expr_now.
25         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
26         (unsave_expr_now): Remove.
27         * tree.h (unsave_expr_now, lang_unsave,
28         lang_unsave_expr_now): Remove.
29         (lhd_unsave): New.
30
31 2002-03-08  Andreas Jaeger  <aj@suse.de>
32
33         * flow.c (propagate_block_delete_insn): Remove unused variable.
34
35 2002-03-08  Kazu Hirata  <kazu@hxi.com>
36
37         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
38         insn length for memory load/store.
39
40 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
41
42         * doc/install.texi (--with-libiconv-prefix): Document.
43
44 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
45
46         * doc/sourcebuild.texi: Fix typo.
47
48 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
49
50         PR c/3711
51         * builtins.c (std_expand_builtin_va_arg): Do all computations on
52         trees.
53
54 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
55
56         * rtl.c (copy_most_rtx): Move from here ...
57         * emit-rtl.c (copy_most_rtx): ... to here.
58
59 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
60
61         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
62         SUBTARGET_CPP_SIZE_SPEC.
63         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
64
65         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
66
67 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
68
69         * config/fp-bit.c (_unord_f2): Compile it in even if
70         US_SOFTWARE_GOFAST is enabled.
71
72         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
73         NULL_RTX.  Set all HFmode operations as NULL_RTX.
74         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
75         NULL_RTX, try reversing the comparison and the operands.
76
77 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
78
79         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
80         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
81         and MATCH_OP_DUP.
82
83 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
84
85         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
86
87 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
88
89         * basic-block.h (fixup_abnormal_edges): Declare.
90         * reload1.c (fixup_abnormal_edges): New function.
91         * reg-stack.c (convert_regs): Use it.
92
93         * gcse.c (insert_insn_end_bb): Handle trapping insns.
94
95         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
96
97 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
98
99         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
100         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
101         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
102         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
103         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
104         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
105         unless x and y could be infinite.
106         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
107         Check that the common type of both arguments is a real, even for
108         targets without unordered comparisons.  Allow an integer argument
109         to be compared against a real.
110         (expand_tree_builtin): Use expand_unordered_cmp.
111         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
112         * cse.c (fold_rtx): Likewise.  Fix indentation.
113         * fold-const.c (fold_real_zero_addition_p): New.
114         (fold): Use it, and the new HONOR_... macros.
115         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
116         * jump.c (reversed_comparison_code_parts): After searching for
117         the true comparison mode, use HONOR_NANS to decide whether it
118         can be safely reversed.
119         (reverse_condition_maybe_unordered): Remove IEEE check.
120         * simplify-rtx.c (simplify_binary_operation): Use the new macros
121         to decide which simplifications are valid.  Allow the following
122         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
123         and (a - -b) to (a + b).
124         (simplify_relational_operation): Use HONOR_NANS.
125         * doc/tm.texi: Document the MODE_HAS_... macros.
126
127 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
128
129         * combine.c (simplify_comparison): If simplifying a logical shift
130         right and compare with constant, force the comparison to unsigned.
131
132 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
133
134         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
135
136         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
137         -mabi=no-altivec
138         (alt_reg_names): Remove % for vrsave.
139
140 2002-03-06  Richard Henderson  <rth@redhat.com>
141
142         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
143         if used indicates we've already emitted one copy of an operand.
144         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
145         (gen_split): Supply a non-null used.
146
147 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
148
149         * reload1.c (reload): Unshare all rtl after reload is done.
150
151         * simplify-rtx.c (simplify_plus_minus): Do not abort,
152         but simply fail if the expression is too complex to simplify.
153         (simplify_gen_binary): Handle simplify_plus_minus failures.
154
155 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
156
157         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
158         consistently call delete_trivially_dead_insns after CSE and GCSE;
159         fix DFI_life dumping; do jump threading after liveness; do crossjumping
160         after liveness2; update comment in last crossjumping.
161         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
162
163 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
164
165         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
166         after completing fast dead code elimination.
167
168         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
169         COMPARE operator.
170
171 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
172
173         * version.c:  Fix misplaced leading blanks on first line.
174
175 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
176
177         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
178
179 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
180
181         * cfgcleanup.c (mentions_nonequal_regs): New function.
182         (thread_jump): Use it.
183         * toplev.c (rest_of_compilation): Run jump threading after
184         liveness.
185
186 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
187
188         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
189         patch.
190
191 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
192
193         * predict.c (estimate_bb_frequencies): Do not reload the
194         frequencies from notes.
195
196 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
197
198         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
199         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
200
201         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
202         delete_noop_moves): Return indeger.
203         * flow.c (ndead): New variable.
204         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
205         BB argument; update callers.
206         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
207         (life_analysis): Do not call purge_all_dead_edges.
208         (update_life_info): Return number of deleted insns; print statistics.
209         (update_life_info_in_dirty_blocks): likewise.
210         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
211         return number of insns deleted.
212
213         * cse.c: Include timevar.h
214         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
215         iterate until stabilizes; print statistics; return number of killed
216         insns.
217         * Makefile.in: (cse.o): Add timevar.h dependency
218         * rtl.h (delete_trivially_dead_insns): New.
219         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
220         * toplev.c (rest_of_compilation): Update callers.
221
222         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
223         (try_optimize_cfg): Do not update liveness.
224         (cleanup-cfg): Loop until try_optimize_cfg and dead code
225         removal stabilizes; use delete_trivially_dead_insns.
226
227         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
228
229 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
230
231         * cppmain.c (setup_callbacks): Disable #pragma and #ident
232         callbacks when processing assembly language.
233
234 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
235
236         * pa.h (ASM_FILE_END): Define.
237         * som.h (ASM_FILE_END): Delete.
238
239         * pa.c (function_arg): Don't pass floats in general registers in
240         indirect calls if TARGET_ELF32.
241
242 2002-03-05  Richard Henderson  <rth@redhat.com>
243
244         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
245
246 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
247
248         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
249
250 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
251
252         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
253         -r command line.  Don't hide any symbols if not building
254         shared libgcc.
255
256 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
257
258         * cfg.c (dump_flow_info): Warn about profile mismatches.
259         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
260         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
261
262 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
263
264         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
265         wide volatile memory by parts.
266
267 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
268
269         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
270         is NULL.
271
272 2002-03-05  Richard Henderson  <rth@redhat.com>
273
274         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
275
276 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
277
278         * toplev.c (documented_lang_options): Document more
279         language-specific options.
280         * doc/invoke.texi (Warning Options): Correct documentation for
281         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
282         * c-decl.c (c_decode_option): Use a table to handle warning options.
283
284 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
285
286         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
287         parameter to mmix_encode_section_info.
288         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
289         relocatably.  Always produce ELF, not mmo if linking relocatably.
290         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
291         first is non-zero, don't add symbol prefix.
292         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
293         prototype accordingly.
294
295 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
296
297         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
298
299 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
300
301         * configure.in: Increase required makeinfo version to 4.1.
302         * configure: Regenerate.
303
304 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
305
306         * .cvsignore: Remove *.info* and genrtl*; these files are generated
307         elsewhere now.
308
309 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
310
311         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
312         * doc/invoke.texi: Fix @math uses.
313
314 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
315
316         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
317         removal
318
319 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
320
321         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
322         (powerpc-*-eabisimaltivec*): Same.
323
324         * config/rs6000/t-ppcendian: New.
325
326 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
327
328         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
329         nonimmediate_src_operand and nonimmediate_lsrc_operand to
330         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
331
332 2002-03-03  Richard Henderson  <rth@redhat.com>
333
334         * toplev.c (rest_of_decl_compilation): Revert last two changes.
335
336 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
337
338         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
339         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
340         tree.c, config/m68k/m68k.c:
341         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
342         REAL_ARITHMETIC blocks unconditional.  Delete some further
343         #ifdef blocks predicated on REAL_ARITHMETIC.
344         * flags.h, toplev.c: Delete remaining references to
345         flag_pretend_float.
346
347         * doc/invoke.texi: Remove documentation of -fpretend-float.
348         * doc/tm.texi: Describe the various REAL_* macros as provided by
349         real.h, not by the target configuration files.
350
351         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
352         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
353         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
354         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
355         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
356         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
357         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
358         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
359         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
360         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
361         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
362         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
363         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
364         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
365         config/xtensa/xtensa.h:
366         Do not define, undefine, or mention in comments any of
367         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
368         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
369         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
370         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
371         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
372         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
373         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
374         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
375         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
376
377 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
378
379         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
380         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
381         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
382         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
383         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
384         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
385         Delete.
386         * defaults.h (BITS_PER_WORD): Define.
387         * doc/tm.texi (BITS_PER_WORD): Document default value.
388
389         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
390         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
391         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
392
393 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
394
395         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
396         lieu of explicit sizeof/sizeof.
397         * i386.c (override_options, ix86_init_mmx_sse_builtins,
398         ix86_expand_builtin): Likewise.
399         * mips.c (mips_add_gc_roots): Likewise.
400         * mmix.c (mmix_output_condition): Likewise.
401         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
402         altivec_init_builtins): Likewise.
403         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
404         * cppexp.c (Nsuff, parse_number): Likewise.
405         * cppinit.c (builtin_array_end): Likewise.
406         * gcc.c (n_default_compilers, process_command): Likewise.
407         * genpreds.c (output_predicate_decls): Likewise.
408         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
409         * lcm.c (N_ENTITIES): Likewise.
410         * stor-layout.c (set_sizetype): Likewise.
411
412 2002-03-03  Richard Henderson  <rth@redhat.com>
413
414         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
415         for types or labels.
416
417 2002-03-03  Richard Henderson  <rth@redhat.com>
418
419         * c-decl.c (start_decl): Initialized variables are not common.
420
421 2002-03-02  Per Bothner  <per@bothner.com>
422
423         * gcc.c (option_map):  Suport new --bootclasspath option.
424         --CLASSPATH is now just an alias for --classpath.
425
426 2002-03-02  Richard Henderson  <rth@redhat.com>
427
428         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
429         load if "internal" visibility.
430         * doc/extend.texi: Document visibility meanings.
431
432 2002-03-02  Richard Henderson  <rth@redhat.com>
433
434         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
435         to functions as well.
436
437 2002-03-02  Richard Henderson  <rth@redhat.com>
438
439         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
440         (handle_visibility_attribute): Don't call assemble_visibility.
441         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
442         without asmspec.  Invoke assemble_alias when needed.
443         * varasm.c (maybe_assemble_visibility): New.
444         (assemble_start_function, assemble_variable, assemble_alias): Use it.
445
446 2002-03-02  Richard Henderson  <rth@redhat.com>
447
448         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
449         invoke ENCODE_SECTION_INFO with first call flag.
450
451         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
452         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
453         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
454         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
455         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
456         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
457         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
458         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
459         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
460         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
461         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
462         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
463         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
464         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
465         config/mcore/mcore-protos.h, config/mcore/mcore.c,
466         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
467         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
468         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
469         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
470         config/sh/sh.h, config/sparc/sparc.h,
471         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
472         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
473         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
474         FIRST argument.  As needed, examine it and do nothing.
475
476         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
477         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
478         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
479
480         * config/arm/t-pe (pe.o): Add dependencies.
481
482 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
483
484         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
485         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
486         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
487         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
488         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
489         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
490         * defaults.h (BITS_PER_UNIT): Define.
491         * doc/tm.texi (BITS_PER_UNIT): Document default value.
492
493 2002-03-02  Kazu Hirata  <kazu@hxi.com>
494
495         * config/h8300/h8300-protos.h: Add a prototype for
496         compute_a_shift_length.
497         * config/h8300/h8300.c (h8300_asm_insn_count): New.
498         (compute_a_shift_length): Likewise.
499         (h8300_adjust_insn_length): Do not adjust insn length of shift
500         insns.
501         * config/h8300/h8300.md (anonymous shift patterns): Use
502         compute_a_shift_length.
503
504 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
505
506         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
507         trunc_int_for_mode.
508
509         * emit-rtl.c (offset_address): Call update_temp_slot_address.
510
511 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
512
513         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
514         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
515         * flags.h (flag_zero_initialized_in_bss): Declare.
516         * toplev.c (flag_zero_initialized_in_bss): New flag.
517         (lang_independent_options): Add flag_zero_initialized_in_bss.
518         * tree.c (initializer_zerop): New function.
519         * tree.h (initializer_zerop): Declare.
520         * varasm.c (assemble_variable): If we can emit bss, put zero
521         initializers in the bss section.
522
523 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
524
525         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
526         like more than one symbol per .weak directive.
527
528 2002-03-01  Richard Henderson  <rth@redhat.com>
529
530         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
531         adjust argument_pointer by pretend_args_size.
532         (ia64_va_start): Adjust va_start address by -pretend_args_size.
533
534 2002-03-01  Kazu Hirata  <kazu@hxi.com>
535
536         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
537
538 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
539
540         * toplev.c (rest_of_compilation): Delete dead jumptables before
541         loop.
542         * flow.c (delete_dead_jumptables): Make global.
543         * rtl.h (delete_dead_jumptables): Declare.
544
545 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
546
547         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
548         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
549         * config/rs6000/xcoff.h (COLLET_EXPORT_LIST): Delete.
550
551 2002-03-01  Kazu Hirata  <kazu@hxi.com>
552
553         * config/h8300/h8300-protos.h: Fix formatting.
554         * config/h8300/h8300.c: Likewise.
555         * config/h8300/h8300.h: Likewise.
556
557 2002-03-01  Kazu Hirata  <kazu@hxi.com>
558
559         * config/h8300/h8300.c (print_operand): Support 16-bit
560         constant addresses.
561         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
562
563 2002-02-28  Richard Henderson  <rth@redhat.com>
564
565         * expmed.c (store_bit_field): Prevent generation of CONCATs;
566         pun complex values as integers; use gen_lowpart instead of
567         gen_rtx_SUBREG.
568         (extract_bit_field): Likewise.
569
570 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
571             David Edelsohn  <edelsohn@gnu.org>
572
573         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
574         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
575         (SUPPORTS_WEAK): Likewise.
576         * output.h (add_weak): Add tree param.
577         * varasm.c (add_weak): Likewise.  Save decl.
578         (struct weak_syms): Add decl field.
579         (mark_weak_decls): New function.
580         (init_varasm_once): ggc_add_root mark_weak_decls.
581         (assemble_start_function): Use ASM_WEAKEN_DECL.
582         (assemble_variable): Likewise.
583         (assemble_alias): Likewise.
584         (declare_weak): Pass decl to add_weak.
585         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
586         (remove_from_pending_weak_list): Declare and define for
587         ASM_WEAKEN_DECL.
588         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
589         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
590         * defaults.h (SUPPORTS_WEAK): Likewise.
591         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
592         .weak for code sym.  Do emit .size for descriptor sym.
593         (ASM_DECLARE_FUNCTION_SIZE): Define.
594         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
595         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
596         .lglobl unless TARGET_XCOFF.  Formatting fixes.
597         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
598         .weak for code sym.
599         (HANDLE_PRAGMA_WEAK): Remove.
600         (ASM_WEAKEN_LABEL): Remove.
601         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
602
603 2002-03-01  Jason Merrill  <jason@redhat.com>
604
605         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
606         (TARGET_EXPR_CLEANUP): New macro.
607
608 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
609
610         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
611         to take ptr_extend into account as third type of extension.
612         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
613         fields used by SUBREG_PROMOTED_UNSIGNED_P.
614         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
615         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
616         * calls.c (precompute_arguments): Use new macro.
617         (expand_call): Ditto.
618         * combine.c (nonzero_bits): Ditto.
619         (record_promoted_value): Ditto.
620         * expr.c (store_expr): Ditto.
621         (expand_expr): Ditto.
622         * function.c (assign_parms): Ditto.
623
624 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
625
626         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
627         override -shared and -shared-libgcc.
628
629 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
630
631         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
632         of "ultrasparc".
633         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
634         to be broken.
635
636 2002-02-28  Richard Henderson  <rth@redhat.com>
637
638         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
639         4 cycle latency from MM producers.
640         (ia64_internal_sched_reorder): Likewise with pipeline flush.
641
642 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
643
644         * mklibgcc.in: Don't use GNU make extension.
645
646 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
647
648         * c-parse.in (STATIC): New terminal.
649         (scspec): New non-terminal.  Update productions accordingly.
650         (program): Remove bogus ifc / end ifc.
651         (array_declarator): Simplify production using STATIC.
652
653 2002-02-28  Jim Meyering  <meyering@lucent.com>
654
655         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
656         \a still means TARGET_BELL.
657
658 2002-02-28  Richard Henderson  <rth@redhat.com>
659
660         * haifa-sched.c (sched_emit_insn): New.
661         (schedule_block): Use last_scheduled_insn to track last insn.
662         * sched-int.h (sched_emit_insn): Prototype.
663         * config/ia64/ia64.c (last_issued): Remove.
664         (ia64_variable_issue): Don't set it.
665         (nop_cycles_until): Use sched_emit_insn.
666
667 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
668
669         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
670         extended constants.
671
672 2002-02-28  Kazu Hirata  <kazu@hxi.com>
673
674         * config/h8300/h8300.c: Fix formatting.
675         * config/h8300/h8300.h: Likewise.
676
677 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
678
679         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
680         which may overwrite the high byte of the frame pointer.
681
682 2002-02-28  Bo Thorsen  <bo@suse.de>
683
684         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
685         (STARTFILE_SPEC): Add 64 bit files.
686         (ENDFILE_SPEC): Likewise.
687
688 2002-02-28  Jason Merrill  <jason@redhat.com>
689
690         * c-decl.c (finish_function): Only warn about missing return
691         statement with -Wreturn-type.
692
693 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
694
695         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
696
697         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
698         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
699
700 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
701
702         * basic-block.h (BB_REACHABLE): Renumber.
703         (BB_DIRTY, BB_NEW): New flags.
704         (clear_bb_flags): Declare.
705         (update_life_info_in_dirty_blocks): Declare.
706         * cfg.c (clear_bb_flags): New function.
707         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
708         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
709         reorder_insns, emit_insn_after): Mark block as dirty.
710         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
711         (update_life_info_in_dirty_blocks): New function.
712         * recog.c (apply_change_group): Dirtify block.
713
714         * cse.c (cse_insn): Reorder emitting of jump insn to keep
715         cfg consistent.
716         * gcse.c (delete_null_pointer_checks): Likewise.
717
718         * toplev.c (dump_file_index): Move cse2 after bp,
719         add DFI_null
720         (dump_file_info): Similary.
721         (rest_of_compilation): Avoid most of CFG rebuilds;
722         do first if converision after null pointer checks, do cse2
723         after branch prediction; avoid full liveness rebuild after
724         initializing subregs.
725         * invoke.texi (-d options): Document -du, renumber.
726
727         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
728         (notice_new_block): Do not set BB_UPDATE_LIFE.
729         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
730          merge_blocks_move_successor_nojumps, merge_blocks,
731          try_crossjump_to_edge): Likewise.
732         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
733         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
734         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
735         (merge_of_block): Do not use life_data_ok.
736         (find_if_case_1): Do not use SET_UPDATE_LIFE.
737         (if_convert): Use BB_DIRTY mechanizm to update life.
738         * lcm.c (optimize_mode_switching): Update
739         update_life_info_in_dirty_blocks
740
741 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
742
743         * Makefile.in (integrate.o): Update.
744         * c-decl.c (copy_lang_decl): Rename.
745         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
746         * integrate.c: Include langhooks.h.
747         (copy_decl_for_inlining): Update to use langhook.
748         * langhooks-def.h (lhd_do_nothing_t,
749         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
750         (LANG_HOOKS_INITIALIZER): Update.
751         * langhooks.c (lhd_do_nothing_t): New.
752         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
753         * tree.h (copy_lang_decl): Remove.
754 objc:
755         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
756
757 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
758
759         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
760         POST_DEC, and POST_MODIFY.
761
762 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
763
764         * c-typeck.c (digest_init): Remove unused parameter; all
765         callers changed.
766
767 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
768
769         * expmed.c (expand_shift): Correctly test for low part of a
770         subreg.
771
772 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
773
774         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
775         insn UIDs with insn addresses.
776
777 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
778
779         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
780         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
781         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
782         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
783         gcc.c, toplev.c: Delete code implementing -traditional mode.
784
785         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
786         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
787         Document removal of -traditional mode for compilation, and
788         remove documentation only relevant to that mode.
789
790         * config/nextstep.h, config/ptx4.h, config/svr4.h,
791         config/convex/convex.h, config/d30v/d30v.h,
792         config/i386/dgux.h, config/i386/osf1elf.h,
793         config/i386/osfelf.h, config/i386/osfrose.h,
794         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
795         config/m68k/hp310.h, config/m88k/dgux.h,
796         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
797         config/m88k/m88k.h, config/m88k/openbsd.h,
798         config/mips/abi64.h, config/mips/osfrose.h,
799         config/mips/svr4-5.h, config/mips/svr4-t.h,
800         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
801         config/stormy16/stormy16.h: Remove all references to
802         -traditional from target specs.  Delete all mention of the
803         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
804         delete a couple of commented-out definitions of
805         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
806         to -traditional.
807
808         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
809         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
810
811 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
812
813         * mklibgcc.in: Don't use \n in a line subject to
814         interpretation by echo.
815
816 2002-02-27  Graham Stott  <grahams@redhat.com>
817
818         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
819         Constify NAME.
820
821         * loop.c (prescan_loop): Handle PARALLEL.
822
823         * unroll.c (loop_iterations): Return 0 if the add_val for
824         a BIV is REG.
825
826         * final.c (output_operand_lossage): Constify PFX_STR.
827
828         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
829
830 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
831
832         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
833         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
834
835 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
836
837         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
838
839 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
840
841         * cpplex.c (_cpp_lex_token): Handle directives in macro
842         arguments.
843         * cpplib.c (_cpp_handle_directive): Save and restore state
844         if parsing macro args when entering a directive.
845         * cppmacro.c (collect_args): No need to handle directives
846         in macro arguments.
847         (enter_macro_context, replace_args): Use the original macro
848         definition in case it was redefined whilst collecting arguments.
849 doc:
850         * cpp.texi: Update.
851
852 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
853
854         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
855         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
856         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
857         method on AIX.
858         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
859         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
860         (load_toc_v4_PIC_2): Same.
861
862 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
863
864         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
865
866 2002-02-26  Richard Henderson  <rth@redhat.com>
867
868         * config/alpha/alpha.md (ashldi_se): Re-enable.
869
870 2002-02-26  Richard Henderson  <rth@redhat.com>
871
872         * config/alpha/alpha.c (alpha_encode_section_info): Examine
873         MODULE_LOCAL_P; improve commentary.
874
875 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
876
877         * doc/cpp.texi: Clarify documentation of relationship between
878         #line and #include.
879
880 2002-02-26  Kazu Hirata  <kazu@hxi.com>
881
882         * config/h8300/h8300-protos.h: Update the prototype for
883         compute_logical_op_length.  Add the prototype for
884         compute_logical_op_cc.
885         * config/h8300/h8300.c (compute_logical_op_length): Figure out
886         code from operands.
887         (compute_logical_op_cc): New.
888         * config/h8300/h8300.md: Combine all the logical op patterns
889         in HImode and SImode.  Use compute_logical_op_cc.
890
891 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
892
893         * config/i386/i386.c (print_operand): Don't append ATT-style
894         length suffixs to x87 opcodes when in Intel mode.
895
896 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
897
898         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
899         (init_emit_once): Update calls.
900         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
901         (init_syntax_once): Prototype.
902
903 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
904
905         * pa-linux.h (LIB_SPEC): Update definition.
906         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
907
908 2002-02-26  Richard Henderson  <rth@redhat.com>
909
910         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
911         if we emitted a stop bit.
912
913 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
914
915         * configure.in (libgcc_visibility): Substitute.
916         * configure: Rebuilt.
917         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
918         defined symbols .hidden.
919
920 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
921
922         * attribs.c (c_common_attribute_table): Add visibility.
923         (handle_visibility_attribute): New function.
924         * varasm.c (assemble_visibility): New function.
925         * output.h (assemble_visibility): Add prototype.
926         * tree.h (MODULE_LOCAL_P): Define.
927         * crtstuff.c (__dso_handle): Use visibility attribute.
928         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
929         for MODULE_LOCAL_P symbols too.
930         * config/ia64/ia64.c (ia64_encode_section_info): Handle
931         MODULE_LOCAL_P symbols the same way as local symbols.
932         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
933         into .sdata/.sbss by the user.
934         * doc/extend.texi (Function Attributes): Document visibility
935         attribute.
936
937 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
938
939         PR debug/5770
940         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
941         STRING_CST initializer spanning the whole variable without
942         embedded zeros.
943         If expand_expr returned MEM, don't use it.
944
945 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
946
947         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
948         generate a die for the lexical block.
949
950 2002-02-26  Kazu Hirata  <kazu@hxi.com>
951
952         * config/h8300/h8300-protos.h: Add a prototype for
953         compute_logical_op_length.
954         * config/h8300/h8300.c (compute_logical_op_length): New.
955         * config/h8300/h8300.md (anonymous logical patterns): Use
956         compute_logical_op_length for length.
957
958 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
959
960         * dwarf2out.c (modified_type_die): Do not call type_main_variant
961         for vectors.
962         (gen_type_die): Same.
963
964         * attribs.c (handle_vector_size_attribute): Set debug information.
965
966 2002-02-26  Daniel Egger  <degger@fhm.edu>
967
968         * config/rs6000/rs6000.md: Swap define_insn attributes to
969         fix incorrect generation of merge high instructions instead
970         of merge low.
971
972 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
973
974         * c-typeck.c (really_start_incremental_init): Use
975         bitsize_zero_node for vectors.
976
977 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
978
979         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
980         ("*set_vrsave_internal"): Same.
981
982 2002-02-25  Richard Henderson  <rth@redhat.com>
983
984         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
985         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
986
987 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
988
989         PR target/5755
990         * config/i386/i386.c (ix86_return_pops_args): Only pop
991         fake structure return argument if it was passed on the stack.
992
993 2002-02-25  Jason Merrill  <jason@redhat.com>
994
995         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
996         RESULT_DECL.
997
998 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
999
1000         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
1001         link with shared_name only.
1002         * doc/invoke.texi (Link Options): Document new behavior.
1003
1004 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
1005
1006         * c-typeck.c (push_init_level): Handle vectors.
1007
1008 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
1009
1010         * config/sparc/sparc.c (const64_high_operand): Zero-extend
1011         operands of SPARC_SETHI_P.
1012         (input_operand): Likewise.
1013         (sparc_emit_set_const32): Likewise.
1014         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
1015         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
1016         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
1017         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
1018         (movdi_insn_sp64_vis): Likewise.
1019         (movdi split, movdf split): Use SETHI32.
1020         * doc/md.texi: Document SPARC constraints L, M and N.
1021
1022 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
1023
1024         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
1025         ("*set_vrsave_internal"): use mfspr for Darwin.
1026
1027         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
1028         gen_get_vrsave_internal.
1029
1030 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1031
1032         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
1033
1034 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1035
1036         * cpplex.c (cpp_interpret_charconst): Get signedness or
1037         otherwise of wide character constants correct.
1038         * cppexp.c (lex): Get signedness of wide charconsts correct.
1039
1040 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1041
1042         * optabs.c (widen_operand): Only call convert_modes for
1043         promoted SUBREG if signedness matches.
1044         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
1045
1046 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1047
1048         * cpplib.c (glue_header_name): Use local buffer to build up
1049         header name.
1050
1051 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1052
1053         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
1054
1055 2002-02-23  Kazu Hirata  <kazu@hxi.com>
1056
1057         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
1058         H8/300[HS] separately.
1059         * config/h8300/h8300.md: Remove the early clobber constraint
1060         from bit field patterns.
1061
1062 2002-02-23  Kazu Hirata  <kazu@hxi.com>
1063
1064         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
1065         register_operand.
1066         (mulhisi3): Likewise.
1067         (umulqisi3): Likewise.
1068         (umulhisi3): Likewise.
1069
1070 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1071
1072         * cppinit.c (output_deps): Correct test for stdout output.
1073         (init_dependency_output): Cure warning.
1074
1075 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1076
1077         * expr.c (store_expr): When converting expression to promoted
1078         equivalent type, allow using SUBREG_REG of TARGET as the target
1079         of the expansion of EXP.
1080         * loop.c (basic_induction_var, case SUBREG): Always look inside.
1081         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
1082         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
1083         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
1084         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
1085
1086 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1087
1088         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
1089         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
1090         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
1091
1092 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
1093
1094         PR optimization/5747
1095         * loop.c (scan_loop): Update reg info if move_movables created new
1096         pseudos.
1097
1098 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
1099
1100         * gcc.c (init_gcc_spec): Revert last change.
1101
1102 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
1103
1104         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
1105         gpc_reg_operand constraint.
1106
1107 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
1108
1109         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
1110         Simplify comparison of `low'.
1111         (add_operand): Fix formatting.
1112         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
1113         (mask_operand): Disallow mask to wrap in 64-bit mode.
1114         (rs6000_stack_info): Remove redundant test setting push_p.
1115         (output_toc): Fix formatting.
1116         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
1117         cc_reg_not_cr0_operand constraint.
1118         (booldi3, boolcdi3 splitters): Same.
1119
1120 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
1121
1122         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
1123
1124 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
1125
1126         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
1127         gcc invoked with -shared-libgcc.
1128
1129 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
1130
1131         PR c++/5748
1132         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
1133         decl if any of elements was TREE_USED.
1134
1135 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
1136
1137         * config/sparc/sol2.h: Don't include sys/mman.h.
1138         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
1139         (arith_4096_operand): Don't throw high bits away.
1140         (const64_operand): Take sign extension of CONST_INTs into account.
1141         (const64_high_operand, sparc_emit_set_const32): Likewise.
1142         (GEN_HIGHINT64): Likewise.
1143         (sparc_emit_set_const64_quick1): Likewise.
1144         (const64_is_2insns): Likewise.
1145         (print_operand): Use trunc_int_for_mode for sign extension.
1146         * config/sparc/sparc.h (SMALL_INT32): Likewise.
1147         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
1148         chars.  Assume CONST_INT is already properly sign-extended.
1149         (movdi split): Sign-extend each SImode part.
1150         (andsi3 split): Don't mask high bits off, so that result
1151         remains properly sign-extend.
1152         (iorsi3 split): Likewise.
1153         (xorsi3 split): Likewise.
1154
1155 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
1156
1157         * fold-const.c (fold): Fix typo in comments.
1158
1159 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
1160
1161         * Makefile.in (langhooks.o): Update dependencies.
1162
1163 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
1164
1165         * langhooks.c: Include flags.h.
1166
1167 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
1168
1169         * testsuite/gcc.dg/attr-alwaysinline.c: New.
1170
1171         * c-common.c (c_common_post_options): Set inline trees by
1172         default.
1173
1174         * doc/extend.texi (Function Attributes): Document always_inline
1175         attribute.
1176         Update documentation about inlining when not optimizing.
1177
1178         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
1179
1180         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
1181         unless DECL_ALWAYS_INLINE.
1182
1183         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
1184         unless DECL_ALWAYS_INLINE.
1185         (c_disregard_inline_limits): Disregard if always_inline set.
1186
1187         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
1188         Disregard if always_inline set.
1189         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
1190         unless DECL_ALWAYS_INLINE.
1191
1192         * attribs.c (handle_always_inline_attribute): New.
1193         (c_common_attribute_table): Add always_inline.
1194
1195         * config/rs6000/altivec.h: Add prototypes for builtins
1196         requiring the always_inline attribute.
1197
1198 2002-02-21  Eric Christopher  <echristo@redhat.com>
1199
1200         * expmed.c (store_bit_field): Try to simplify the subreg
1201         before generating a new one when when the mode size of
1202         value is less than maxmode.
1203
1204 2002-02-21  Richard Henderson  <rth@redhat.com>
1205
1206         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
1207         than gen_rtx_PLUS to form the sum.
1208         * explow.c (force_reg): Rearrange to not allocate new pseudo
1209         when force_operand returns a register.
1210         * expr.c (expand_assignment): Allow offset_rtx expansion to
1211         return a sum.  Do not force addresses into registers.
1212         (expand_expr): Likewise.
1213         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
1214         to canonicalize arithmetic that didn't simpify.
1215         (simplify_plus_minus): New argument force; update
1216         all callers.  Don't split CONST unless we can do something with it,
1217         and wouldn't lose the constness of the operands.
1218
1219         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
1220         that we generated earlier.
1221
1222 2002-02-21  Tom Tromey  <tromey@redhat.com>
1223
1224         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
1225         (output_line_info): Use constant `1', with a long explanatory
1226         comment.
1227         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
1228
1229 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
1230
1231         * jump.c (redirect_jump): If old label has no UID, don't try to
1232         delete it.
1233
1234 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
1235
1236         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
1237         If input is constant, do shifts at compile time.
1238
1239 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1240
1241         * doc/extend.texi: Fix some more overfull hboxes.
1242
1243 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
1244
1245         PR optimization/4994
1246         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
1247         register moves.
1248
1249 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
1250
1251         PR c++/4574
1252         * expr.h (expand_and): Add mode argument.
1253         * expmed.c (expand_and): Add mode argument.
1254         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
1255         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
1256         * except.c (expand_builtin_extract_return_addr): Likewise.
1257         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
1258         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
1259         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
1260         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
1261         * config/c4x/c4x.md: Use GEN_INT (x) instead of
1262         gen_rtx (CONST_INT, VOIDmode, x).
1263
1264 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
1265
1266         PR c/4697:
1267         * stmt.c (warn_if_unused_value): Move side effects test once more.
1268
1269 2002-02-20  Torbjorn Granlund  <tege@swox.com>
1270
1271         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
1272         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
1273
1274 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
1275
1276         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
1277         SUBREG or ZERO_EXTEND.
1278
1279 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
1280
1281         * sh.h (current_function_anonymous_args): Remove.
1282         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
1283         of current_function_varargs and current_function_stdarg is set.
1284         * sh.c (sh_expand_prologue): Check current_function_varargs /
1285         current_function_stdarg / TARGET_SH5 instead of
1286         current_function_anonymous_args.
1287
1288         * sh64.h (TARGET_VERSION): Define.
1289
1290 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
1291
1292         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
1293         VRSAVE_REGNO on TARGET_ALTIVEC.
1294
1295 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
1296
1297         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
1298         bits of SImode const_int.
1299         (includes_rshift_p): Likewise.
1300         (print_operand): Call mask_operand and mask64_operand with correct
1301         mode.
1302         (rs6000_output_function_epilogue): Pad traceback table to word.
1303         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
1304         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
1305         mask64_operand with correct mode.
1306         (FUNCTION_ARG_REGNO_P): Correct parentheses.
1307
1308 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
1309
1310         PR debug/4461
1311         * varasm.c (get_pool_constant_mark): New.
1312         * rtl.h (get_pool_constant_mark): Add prototype.
1313         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
1314         be represented if it has not been output.
1315
1316 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
1317
1318         * combine.c (do_SUBST): Sanity check substitutions of
1319         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
1320         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
1321         CONST_INT into its operand.
1322         (known_cond): Likewise, for ZERO_EXTEND.
1323         * simplify-rtx.c (simplify_unary_operation): Fix condition to
1324         allow for simplification of wide modes.  Reject CONST_INTs in
1325         ZERO_EXTEND when their actual mode is not given.
1326
1327 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
1328
1329         * c-decl.c (pushdecl): If no global declaration is found for an
1330         extern declaration in block scope, try a limbo one.
1331
1332 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
1333
1334         PR c++/4401
1335         * c-common.c (pointer_int_sum): Moved from...
1336         * c-typeck.c (pointer_int_sum): ...here.
1337         * c-common.h (pointer_int_sum): Add prototype.
1338
1339 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
1340
1341         PR c++/5713
1342         * c-decl.c (duplicate_decls): Return 0 if issued error about
1343         redeclaration.
1344
1345 2002-02-20  Roger Sayle  <roger@eyesopen.com>
1346             Jakub Jelinek  <jakub@redhat.com>
1347
1348         PR c/4389
1349         * tree.c (host_integerp): Ensure that the constant integer is
1350         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
1351         when pos is zero or non-zero respectively.  Clarify comment.
1352         * c-format.c (check_format_info_recurse): Fix host_integerp
1353         usage; the pos argument should be zero when assigning to a
1354         signed HOST_WIDE_INT.
1355
1356 2002-02-20  Richard Henderson  <rth@redhat.com>
1357
1358         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
1359         of the operand, rather than assuming TImode.
1360         (ix86_expand_binop_builtin): Cope with commutative patterns
1361         using nonimmediate_operand for both operands.
1362         (ix86_expand_timode_binop_builtin): Likewise.
1363         (ix86_expand_store_builtin): Validate operand 1.
1364         (ix86_expand_unop1_builtin): Likewise.
1365
1366 2002-02-20  Philip Blundell  <philb@gnu.org>
1367
1368         PR 5705
1369         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
1370
1371 2002-02-20  Richard Henderson  <rth@redhat.com>
1372
1373         PR c/5615
1374         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
1375
1376 2002-02-20  Tom Tromey  <tromey@redhat.com>
1377
1378         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
1379         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
1380         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
1381         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
1382         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
1383         unconditionally.
1384
1385 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
1386
1387         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
1388           for (const_int 0) in X not just INTVAL.
1389
1390 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1391
1392         * doc/extend.texi: Avoid or reduce overfull hboxes.
1393
1394 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
1395
1396         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
1397         operations if the field does not start at a mode boundary.
1398
1399 2001-02-20      Joel Sherrill <joel@OARcorp.com>
1400
1401         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
1402         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
1403         Also done for -Acpu and -Amachine.
1404
1405 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1406
1407         * cppinit.c (init_dependency_output): Take deps output file
1408         from -o if none given with -MF.  Suppress normal output.
1409         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
1410         * doc/cpp.texi, doc/invoke.texi: Update.
1411
1412 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
1413
1414         * toplev.c (output_quoted_string): Write unprintable
1415         characters with octal escapes.
1416
1417 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
1418
1419         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
1420         really_call_used[VRSAVE_REGNO] if not Altivec.
1421
1422 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
1423
1424         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
1425         MODE_MASK.
1426         (constant_pool_expr_1): Fix formatting.
1427         (rs6000_legitimize_reload_address): Likewise.
1428
1429 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1430
1431         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
1432         now that we have one.
1433
1434 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
1435
1436         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
1437         end of first block of bitfields (which was only seven bits);
1438         rename dummy to unused_1; remove comment which is no longer true.
1439
1440 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
1441
1442         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
1443
1444 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
1445
1446         PR 5399
1447         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
1448         if generating PIC.
1449
1450         PR 5054
1451         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
1452         arm_is_longcall_p rather than inspecting call-type cookie
1453         directly.
1454         (call_value_insn) [TARGET_THUMB]: Likewise.
1455
1456 2002-02-19  Graham Stott  <grahams@redhat.com>
1457
1458         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
1459
1460 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
1461
1462         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
1463         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
1464         (FP_SAVE_INLINE): Delete.
1465
1466         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
1467         * config/rs6000/eabi.asm: Remove ABI save restore routines.
1468         * config/rs6000/t-ppccomm: Build crtsavres.o.
1469         * config/rs6000/crtsavres.asm: New file.
1470
1471 2002-02-19  Philip Blundell  <philb@gnu.org>
1472
1473         * config/arm/arm.c (use_return_insn): Don't reject interrupt
1474         functions.
1475         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
1476         (output_return_instruction): Allow interrupt functions to return with
1477         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
1478         (arm_expand_prologue): Subtract 4 before stacking LR in an
1479         interrupt function.
1480
1481 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
1482
1483         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
1484         decl, not just FUNCTION_DECL.
1485         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
1486         (arm_assemble_integer): Likewise.
1487         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
1488         marked local.
1489
1490 2002-02-19  matthew green  <mrg@eterna.com.au>
1491
1492         * config.gcc (sparc-*-netbsdelf*): Enable target.
1493         (sparc64-*-netbsd*): New target.
1494         * config/sparc/netbsd-elf.h: New file.
1495         * config/sparc/t-netbsd64: New file.
1496
1497 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
1498
1499         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
1500
1501 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
1502
1503         * doc/invoke.texi: explicitly list the style guidelines that
1504         -Weffc++ checks for.
1505
1506 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
1507
1508         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
1509
1510 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1511
1512         PR other/5718
1513         * gcc.c (cpp_unique_options): Treat -o as indicating object file
1514         only if not -E.  If -E, pass -o through to the preprocessor.
1515
1516 2002-02-19  Kazu Hirata  <kazu@hxi.com>
1517
1518         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
1519         register number with an appropriate macro.
1520
1521 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1522
1523         * doc/rtl.texi (Constants): Close @code tag.
1524
1525 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
1526
1527         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
1528         ("mmx_uavgv4hi3"): Same.
1529         ("pmulhrwv4hi3"): Same.
1530
1531         * tree-inline.c (walk_tree): Handle vectors.
1532
1533         * c-common.c (constant_expression_warning): Handle vectors.
1534         (overflow_warning): Same.
1535
1536         * sched-deps.c (sched_analyze_2): Handle vectors.
1537
1538         * rtlanal.c (rtx_unstable_p): Handle vectors.
1539         (rtx_varies_p): Same.
1540         (count_occurrences): Same.
1541         (regs_set_between_p): Same.
1542         (modified_between_p): Same.
1543         (modified_in_p): Same.
1544         (volatile_insn_p): Same.
1545         (volatile_refs_p): Same.
1546         (side_effects_p): Same.
1547         (may_trap_p): Same.
1548         (inequality_comparisons_p): Same.
1549         (replace_regs): Same.
1550         (computed_jump_p_1): Same.
1551
1552         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
1553         argument.
1554         (inner_mode_array): New.
1555         (copy_rtx): Handle vectors.
1556         (copy_most_rtx): Same.
1557         (rtx_equal_p): Same.
1558         (get_mode_alignment): Adjust for vectors.
1559
1560         * resource.c (mark_referenced_resources): Handle vectors.
1561         (mark_set_resources): Same.
1562
1563         * reload1.c (eliminate_regs): Handle vectors.
1564         (elimination_effects): Same.
1565         (scan_paradoxical_subregs): Same.
1566
1567         * reload.c (subst_reg_equivs): Handle vectors.
1568
1569         * regrename.c (scan_rtx): Handle vectors.
1570
1571         * regclass.c (reg_scan_mark_refs): Handle vectors.
1572
1573         * recog.c (find_single_use_1): Handle vectors.
1574
1575         * local-alloc.c (equiv_init_varies_p): Handle vectors.
1576         (contains_replace_regs): Same.
1577         (memref_referenced_p): Same.
1578
1579         * integrate.c (copy_rtx_and_substitute): Handle vectors.
1580         (subst_constants): Same.
1581
1582         * genattrtab.c (attr_copy_rtx): Handle vectors.
1583         (encode_units_mask): Same.
1584         (clear_struct_flag): Same.
1585         (count_sub_rtxs): Same.
1586
1587         * gcse.c (want_to_gcse_p): Handle vectors.
1588         (oprs_unchanged_p): Same.
1589         (hash_expr_1): Same.
1590         (oprs_not_set_p): Same.
1591         (expr_killed_p): Same.
1592         (compute_transp): Same.
1593         (store_ops_ok): Same.
1594
1595         * function.c (purge_addressof_1): Do not allow paradoxical subregs
1596         of vectors.
1597         (fixup_var_refs_1): Same.
1598         (instantiate_virtual_regs_1): Same.
1599
1600         * fold-const.c (operand_equal_p): Handle vectors.
1601         (fold): Same.
1602         (rtl_expr_nonnegative_p): Same.
1603
1604         * flow.c (mark_used_regs): Handle vectors.
1605
1606         * df.c (df_uses_record): Handle vectors.
1607
1608         * cselib.c (cselib_subst_to_values): Handle vectors.
1609         (cselib_mem_conflict_p): Same.
1610         (hash_rtx): Same.
1611
1612         * cse.c (canon_reg): Handle vectors.
1613         (fold_rt): Same.
1614         (cse_process_notes): Same.
1615         (count_reg_usage): Same.
1616         (canon_hash): Same.
1617
1618         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
1619
1620         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
1621
1622         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
1623         (gen_rtx): Handle CONST_VECTOR.
1624         (gen_const_vector_0): New.
1625         (copy_rtx_if_shared): CONST_VECTORs can be shared.
1626         (reset_used_flags): Same.
1627         (copy_insn_1): Same.
1628         (initializer_constant_valid_p): Handle VECTOR_CST.
1629
1630         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
1631
1632         * doc/rtl.texi (Constants): Document const_vector.
1633         (CONST0_RTX): Update for vectors.
1634         (RTL sharing): Same.
1635
1636         * print-tree.c (print_node): Add case for VECTOR_CST.
1637
1638         * tree.h (TREE_VECTOR_CST_ELTS): New.
1639         (struct tree_vector): New.
1640         (union tree_node): Add vector node.
1641         (build_vector): Add prototype.
1642
1643         * tree.def (VECTOR_CST): New.
1644
1645         * tree.c (build_vector): New.
1646
1647         * expmed.c (make_tree): Handle CONST_VECTOR.
1648
1649         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
1650         (CONST_VECTOR_ELT): New.
1651         (CONST_VECTOR_NUNITS): New.
1652
1653         * machmode.h (GET_MODE_INNER): New.
1654         (DEF_MACHMODE): Accept 8th arg.
1655
1656         * machmode.def: Add 8th argument for vector inner mode.
1657         Add inner vector modes for vectors.
1658
1659         * rtl.def (VEC_CONST): Remove.
1660         (CONST_VECTOR): New.
1661
1662         * expr.c (clear_storage): Allow vectors.
1663         (is_zeros_p): Handle VECTOR_CST.
1664
1665         * varasm.c (output_constant_pool): Handle vectors.
1666         (rtx_const): Add veclo and vechi fields.
1667         (kind): Add RTX_VECTOR.
1668         (decode_rtx_const): Add case for vector.
1669
1670         * config/rs6000/rs6000-protos.h: Add zero_constant.
1671
1672         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
1673         constants.  Force easy vector constants into memory.
1674         (easy_vector_constant): New.
1675         (emit_easy_vector_constant): New.
1676         (rs6000_legitimize_reload_address): Do not generate bad reloads on
1677         darwin.
1678
1679         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
1680         instruction does.
1681         ("altivec_lvxl"): Same.
1682         (altivec_lvebx): Same.
1683         (altivec_lvehx): Same.
1684         (altivec_lvewx): Same.
1685         ("*movv4si_const0"): New.
1686         ("*movv4sf_const0"): New.
1687         ("*movv8hi_const0"): New.
1688         ("*movv16qi_const0"): New.
1689
1690 2002-02-18  Kazu Hirata  <kazu@hxi.com>
1691
1692         * config/h8300/h8300.c (notice_update_cc): Use
1693         cc_status.value2.
1694
1695 2002-02-18  Kazu Hirata  <kazu@hxi.com>
1696
1697         * config/h8300/h8300.md (divmod patterns): Change the
1698         constraints for operands[1] to register_operand.
1699
1700 2002-02-18  Kazu Hirata  <kazu@hxi.com>
1701
1702         * config/h8300/h8300-protos.h: Remove the prototype for
1703         p_operand.
1704         * config/h8300/h8300.c (p_operand): Remove.
1705         * config/h8300/h8300.md: Replace p_operand with
1706         const_int_operand.
1707
1708 2002-02-18 Philip Blundell <pb@nexus.co.uk>
1709
1710         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
1711         comment.
1712         (output_return_instruction): Allow use of LDR to unstack
1713         return addresss even for interrupt handlers or when
1714         interworking.  If compiling for ARMv5, use interworking-safe
1715         return instructions by default.  Remove duplicated code and
1716         lengthy "strcat" sequences.
1717
1718 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1719
1720         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
1721         (LINK_EH_SPEC): Define.
1722         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
1723
1724 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
1725
1726         * config/s390/s390.c (s390_emit_prologue): Do not set the
1727         frame_related flag for call-clobbered registers.
1728
1729 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
1730
1731         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
1732         (construct_container): Fix handling of SSE operands.
1733         (ix86_expand_builtin): Fix handling of 64bit pointers.
1734         (mmx_maskmovq_rex): New pattern.
1735
1736 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1737
1738         * regrename.c (kill_set_value): Handle subregs properly.
1739
1740 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
1741
1742         * objc/objc-act.c (handle_impent): Remove leading '*'
1743         from objc_class_name.
1744
1745 2002-02-17  Richard Henderson  <rth@redhat.com>
1746
1747         * config/alpha/alpha.c (some_small_symbolic_operand,
1748         some_small_symbolic_operand_1, split_small_symbolic_operand,
1749         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
1750         Handle small SYMBOL_REFs anywhere, not just inside memories.
1751         * config/alpha/alpha-protos.h: Update.
1752         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1753         * config/alpha/alpha.md (small symbolic operand splitter): Update.
1754
1755 2002-02-17  Roland McGrath  <roland@frob.com>
1756
1757         * config.gcc (powerpc-*-gnu-gnualtivec*,
1758         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
1759         * config/rs6000/gnu.h: New file.
1760         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
1761         Grok "gnu" in rs6000_abi_name.
1762         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
1763         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
1764         Grok -mcall-gnu analogous to -mcall-linux et al.
1765         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
1766         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
1767         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
1768
1769 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
1770
1771         PR c/3444:
1772         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
1773         shortening.
1774
1775 2002-02-17  Philipp Thomas  <pthomas@suse.de>
1776
1777         * config/cris/cris.h: Undefine STARTFILE_SPEC and
1778         ENDFILE_SPEC before (re)defining them.
1779
1780 2002-02-17  Kazu Hirata  <kazu@hxi.com>
1781
1782         * config/h8300/h8300.c: Fix formatting.
1783         * config/h8300/h8300.h: Likewise.
1784
1785 2002-02-17  Philipp Thomas  <pthomas@suse.de>
1786
1787         * doc/tm.texi: Explain why empty strings should not be
1788         marked for translation.
1789
1790 2002-02-17  Philipp Thomas  <pthomas@suse.de>
1791
1792         * final.c (output_operand_lossage): Changed to accept
1793         printf style arguments. Change calls where necessary.
1794         * output.h (output_operand_lossage): Change declaration
1795         accordingly. Update copyright.
1796         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
1797         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
1798         Update copyright date where necessary.
1799
1800         * config/i386/i386.c (print_operand): Likewise. Remove use of
1801         sprintf.
1802
1803         * config/cris/cris.c (cris_operand_lossage): Likewise.
1804         Rename parameter so that exgettext recognizes it as
1805         translatable message.
1806         (LOSE_AND_RETURN): Rename parameter to msgid.
1807
1808 2002-02-17  Kazu Hirata  <kazu@hxi.com>
1809
1810         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
1811         hard coded register number with an appropriate macro.
1812         (HARD_REGNO_MODE_OK): Likewise.
1813         (ARG_POINTER_REGNUM): Likewise.
1814         (STATIC_CHAIN_REGNUM): Likewise.
1815         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
1816         * config/h8300/h8300.md (define_constants): Define more
1817         register numbers.
1818
1819 2002-02-17  Philipp Thomas  <pthomas@suse.de>
1820
1821         * config/i386/i386.h: Don't mark empty strings for translation.
1822
1823 2002-02-16  H.J. Lu <hjl@gnu.org>
1824
1825         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
1826
1827 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
1828
1829         * cppinit.c (merge_include_chains): Check for brack being
1830         NULL before attempting to merge it with qtail.
1831
1832 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
1833
1834         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
1835         DBX_DEBUG.
1836
1837 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1838
1839         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
1840
1841 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1842
1843         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
1844         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
1845         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
1846
1847 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1848
1849         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
1850         now only if !TARGET_FIX.
1851         (*movsi_nt_vms_fix): New pattern.
1852
1853 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
1854
1855         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
1856         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
1857         (alpha_sa_mask, alpha_sa_size): Reflect above change.
1858         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
1859         (alpha_start_function, alpha_expand_epilogue): Likewise.
1860         (unicosmk_gen_dsib): Likewise.
1861
1862 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1863
1864         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
1865
1866 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
1867
1868         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
1869         check_and_change_labels, s390_final_chunkify): Delete.
1870         (s390_split_branches, s390_chunkify_pool): New functions.
1871         (s390_function_prologue): Call them.
1872
1873         * config/s390/s390.h (S390_REL_MAX): Delete.
1874         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
1875
1876         * config/s390/s390.md (cjump, icjump, jump): Fix length
1877         attribute calculation.
1878
1879
1880 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
1881
1882         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
1883         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
1884
1885 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1886
1887         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
1888         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
1889         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
1890
1891 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
1892
1893         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
1894
1895 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
1896
1897         * reload.c (find_dummy_reload): Check that an output register
1898         is valid for its mode.
1899
1900 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
1901
1902         * combine.c (known_cond): After replacing the REG of a SUBREG, try
1903         to simplify it.
1904
1905         * function.c (assign_parms): Demote promoted argument passed by
1906         transparent reference.
1907
1908 2001-02-14      Joel Sherrill <joel@OARcorp.com>
1909
1910         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
1911         -Acpu() and -Amachine() to eliminate warnings.
1912
1913 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
1914
1915         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
1916
1917 2002-02-14  Kazu Hirata  <kazu@hxi.com>
1918
1919         * config/h8300/h8300-protos.h: Update the prototype for
1920         const_costs.
1921         * config/h8300/h8300.c (const_costs): Treat SET as a little
1922         more expensive operation.
1923         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
1924         reference to const_costs.
1925
1926 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
1927
1928         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
1929
1930 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
1931
1932         PR c/5503:
1933         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
1934         use arguments from newtype.
1935
1936 2002-02-13  Eric Christopher  <echristo@redhat.com>
1937
1938         * config/mips/mips.c (override_options): Add check for march/mipsX
1939         on the same command line. Fix error message in cpu processing.
1940         Remove architecture and ISA checks.
1941
1942 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
1943
1944         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
1945
1946         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
1947
1948 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
1949
1950         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
1951         alternatives.
1952         ("*movv8hi_internal1"): Same.
1953         ("*movv16qi_internal1"): Same.
1954         ("*movv4sf_internal1"): Same.
1955
1956         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1957         not push_reload for altivec modes.
1958
1959 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
1960
1961         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
1962         all RTEMS targets including removal of #includes from config/*/rtems*.h
1963         file and adding them to tm_file setting. Added xm_defines=POSIX to
1964         many targets.
1965         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
1966         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
1967         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
1968         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
1969         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
1970         config/m68k/rtemself.h: Ditto.
1971         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
1972         config/mips/rtems64.h: Ditto.
1973         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
1974         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
1975         Ditto.
1976         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
1977         config/sparc/rtemself.h: Ditto.
1978         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
1979         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
1980         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
1981         more like arm-elf.
1982         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
1983         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
1984         target made more similar to i386-elf.
1985         * config/i386/t-rtems-i386: Added soft float support and multilibs.
1986         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
1987         be similar to config/m68k/t-m68kelf.
1988         * gthr-rtems.h: Encapsulate with extern "C" for C++.
1989
1990 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
1991
1992         * regmove.c (kill_value): Handle subregs.
1993
1994 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
1995
1996         * i386.md (mul patterns): Allow memory operand to be first;
1997         add expanders where needed; fix constraints.
1998         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
1999         Allow memory operand to be the first.
2000
2001         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
2002         operands.
2003
2004 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
2005
2006         PR c/5681:
2007         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
2008         GET_MODE (x).
2009
2010 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
2011
2012         PR optimization/5547:
2013         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
2014         all valid IA-32 address modes involving non-scaled %ebx and
2015         GOT/GOTOFF as displacement.
2016
2017 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
2018
2019         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
2020         after emitting ltorg insns.
2021
2022         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
2023         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
2024         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
2025         *abssf2): Fix "op_type" attribute.
2026
2027 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
2028
2029         * mkconfig.sh: Avoid using a subshell redirect.
2030         ($output.T): Change to $(output)T.
2031         (ENABLE_NLS): Remove unneeded undef.
2032
2033         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
2034         * config/alpha/x-vms (libsubdir): Define.
2035
2036         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
2037         register frame procedures. Optimize retrieving context.
2038
2039         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
2040         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
2041         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
2042
2043 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2044
2045         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
2046         Make same change as for find_base_value.
2047
2048 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2049
2050         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
2051         of QImode and SImode.
2052
2053 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2054
2055         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
2056         length computation of movsi.
2057         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
2058
2059 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2060
2061         * config/h8300/h8300.md (subqi3): Tighten the predicate for
2062         operands[2] to register_operand.
2063
2064 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
2065
2066         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
2067
2068 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
2069
2070         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
2071         for altivec_lvx* and altivec_stvx*.
2072         ("*movv4si_internal"): Add constraint for loading from GPRs.
2073         ("*movv8hi_internal1"): Same.
2074         ("*movv16qi_internal1"): Same.
2075         ("*movv4sf_internal1"): Same.
2076
2077         * config/rs6000/rs6000.c (altivec_register_operand): New.
2078
2079         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2080         altivec_register_operand.
2081
2082 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
2083
2084         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
2085         handle SYMBOL_REF.
2086
2087 2002-02-13  Stan Shebs  <shebs@apple.com>
2088
2089         * c-typeck.c (digest_init): Handle vectors.
2090         (really_start_incremental_init): Same.
2091         (pop_init_level): Same.
2092         (process_init_element): Same.
2093
2094         * varasm.c (output_constant): Same.
2095
2096         * expr.c (clear_storage): Same.
2097         (store_constructor): Same.
2098
2099 2002-02-12  Eric Christopher  <echristo@redhat.com>
2100
2101         * explow.c (hard_function_value): Add comment explaining
2102         signed/unsigned comparison.
2103
2104 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
2105
2106         * jump.c (never_reached_warning): Add finish argument.
2107         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
2108         real insn after end.
2109         * rtl.h (never_reached_warning): Adjust prototype.
2110         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
2111         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
2112         never_reached_warning.
2113
2114 2002-02-12  Graham Stott  <grahams@redhat.com>
2115
2116         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
2117
2118 2002-02-12  Kazu Hirata  <kazu@hxi.com>
2119
2120         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
2121         logical shifts on H8/300.
2122         (shift_alg_si): Improve several shifts on H8/300.
2123         (get_shift_alg): Likewise.
2124
2125 2002-02-12  Graham Stott  <grahams@redhat.com>
2126
2127         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
2128
2129 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2130
2131         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
2132         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
2133
2134 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
2135
2136         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
2137         non-CONST_INT through default_assemble_integer.
2138         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
2139         <case 8>: Abort for CONST_DOUBLE.
2140
2141 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2142
2143         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
2144         is specified.
2145         * config/pa/pa-linux.h (LIB_SPEC): Delete.
2146         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
2147
2148 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
2149
2150         * config/stormy16/stormy16.md (zero_extendqihi2): New.
2151
2152 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
2153
2154         * regrename.c (regrename_optimize): Don't accept a
2155         part-clobbered register if the replaced register is not part
2156         clobbered.
2157
2158         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
2159         take padding into account when computing the argument value.
2160
2161         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
2162
2163         * combine.c (try_combine): Apply substitutions in
2164         CALL_INSN_FUNCTION_USAGE too.
2165
2166 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
2167
2168         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
2169         __builtin_altivec_abs*.
2170         (bdesc_abs): New.
2171
2172         * config/rs6000/rs6000.h (rs6000_builtins): Add
2173         ALTIVEC_BUILTIN_ABS*.
2174
2175         * config/rs6000/altivec.h: Use const char for builtins expecting
2176         literals.
2177         (vec_abs): New versions for C and C++.
2178         (vec_abss): Same.
2179
2180 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2181
2182         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
2183         using Pmode.
2184
2185 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2186
2187         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
2188         constant definition from h8300.md.
2189         (FRAME_POINTER_REGNUM): Likewise.
2190         * config/h8300/h8300.md (define_constants): Add FP_REG.
2191
2192 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2193
2194         * config/h8300/h8300.c (print_operand): Remove redundant code.
2195
2196 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2197
2198         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
2199         * config/h8300/h8300.c (byte_reg): Make it static.
2200
2201 2002-02-10  Richard Henderson  <rth@redhat.com>
2202
2203         PR c/5623
2204         * c-typeck.c (incomplete_type_error): Handle flexible array members.
2205
2206 2002-02-10  Richard Henderson  <rth@redhat.com>
2207
2208         PR c++/5624
2209         * tree.c (append_random_chars): Don't abort if main_input_filename
2210         does not exist.
2211
2212 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
2213
2214         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
2215
2216 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2217
2218         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
2219         (pushhi1): Likewise.
2220
2221 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2222
2223         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
2224         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
2225
2226 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
2227
2228         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
2229         remove MASK_VIS.
2230         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
2231
2232 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2233
2234         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
2235         a half of an SImode register on H8/300.
2236
2237 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
2238
2239         * i386.md (movdi_2): Add missing '!'.
2240
2241 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2242
2243         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
2244         definitions.
2245
2246 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2247
2248         * config/h8300/h8300.md (length): Correct the distance valid
2249         for the short branch.
2250
2251 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2252
2253         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
2254
2255 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
2256
2257         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
2258         registers in SImode.
2259         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
2260         part-clobbered.
2261
2262         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
2263         patch.
2264
2265         Contribute sh64-elf.
2266         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
2267         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
2268         (sh_cannot_modify_jumps_p): New function.
2269         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
2270         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
2271         (sh_ms_bitfield_layout_p): New function.
2272         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
2273                     Zack Weinberg  <zack@codesourcery.com>
2274         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
2275         expand_simple_binop instead of expand_binop.
2276         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
2277         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
2278         use of .quad and .uaquad.
2279         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
2280         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
2281         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2282         * config/sh/sh.md (movdi_const, movdi_const_32bit,
2283         movdi_const_16bit): Make sure all CONSTs have modes.
2284         (sym2PIC): Ditto, but by adjusting all callers.
2285         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
2286         if the prologue calls the SHmedia argument decoder or register
2287         saver.
2288         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2289         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
2290         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
2291         (sh_expand_epilogue): Don't emit USE of return target register.
2292         (prepare_move_operands): Legitimize DImode PIC addresses.
2293         (sh_media_register_for_return): Skip tr0, used to initialize the
2294         PIC register.
2295         (sh_expand_prologue): Remove explicit USE of return register.
2296         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
2297         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
2298         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
2299         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
2300         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
2301         EXTRA_CONSTRAINT_T.
2302         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
2303         (MOVI_SHORI_BASE_OPERAND_P): New.
2304         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
2305         (EXTRA_CONSTRAINT_T): Define in terms of them.
2306         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
2307         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
2308         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
2309         alternatives supporting TARGET_REGS.
2310         (UNSPEC_GOTPLT): New constant.
2311         (movdi split): Move incrementing of LABEL_NUSES...
2312         (movdi_const, movdi_const_32bit): Here.  Use
2313         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
2314         (movdi_const_16bit): New.
2315         (call, call_value) [flag_pic]: Use GOTPLT.
2316         (call_pop, call_value_pop): New expands.
2317         (call_pop_compact, call_pop_rettramp): New insns.
2318         (call_value_pop_compact, call_value_pop_rettramp): New insns.
2319         (sibcall) [flag_pic]: Use GOT.
2320         (builtint_setjmp_receiver): Remove bogus, unused expand.
2321         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
2322         (*pt, *ptb, ptrel): New insns.
2323         (sym2GOT): Handle DImode GOT.
2324         (sym2GOTPLT, symGOTPLT2reg): New expands.
2325         (sym2PIC): New expand.
2326         (shcompact_return_tramp): Use GOTPLT to return trampoline.
2327         (shcompact_return_tramp_i): Use return register explicitly.
2328         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
2329         disable flag_reorder_blocks.
2330         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
2331         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
2332         clobbers, for clarity.
2333         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
2334         restoring of r0 in macl as MAYBE_DEAD.
2335         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
2336         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
2337         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
2338         alter_subreg all over.
2339         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
2340         reload, instead of emitting instructions that would require
2341         reloading.
2342         (casesi_load_media): Add missing modes.
2343         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
2344         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
2345         as used if the argument decoder is called.
2346         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
2347         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
2348         Pmode, then extend it to DImode if necessary.
2349         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
2350         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
2351         constants in FPU-enabled SHmedia, let them be loaded from memory.
2352         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
2353         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
2354         Adjust whitespace in assembly output templates.
2355         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
2356         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
2357         mode of if_then_else.
2358         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
2359         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
2360         sh.h.
2361         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
2362                     Joern Rennecke <amylaar@redhat.com>
2363         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
2364         (SUBTARGET_CPP_PTR_SPEC): New.
2365         (SUBTARGET_CPP_SPEC): Remove.
2366         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
2367         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
2368         Fix typo in previous checkin.
2369         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
2370         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
2371         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
2372                     Alexandre Oliva  <aoliva@redhat.com>
2373         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
2374         what single FP register can hold for SHmedia target.
2375         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
2376                     Alexandre Oliva  <aoliva@redhat.com>
2377         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
2378         Do not split into SUBREG.
2379         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
2380         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
2381         and added new functions as specified in SH5 ABI r9.
2382         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
2383         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
2384         8-byte boundary.
2385         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
2386         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
2387         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
2388         and consttable_window_ends.
2389         2001-06-03  Graham Stott  <grahams@redhat,com>
2390         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
2391         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
2392         * config/sh/sh.c (print_operand): Handle floating-point pair,
2393         vector and matrix registers.
2394         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
2395         vector modes into account.
2396         * config/sh/sh.md (movv2sf): Split move between registers into
2397         movdf.
2398         (movv4sf, movv16sf): Introduce insns that get split only after
2399         reload.
2400         * config/sh/shmedia.h: Fix Copyright dates.
2401         * config/sh/ushmedia.h: Likewise.  Move loop counter
2402         declarations into conditionals that uses them.
2403         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
2404         loop boundary.
2405         * config/sh/sshmedia.h: Fix Copyright dates.
2406         (sh_media_PUTCFG): Fix constraints.
2407         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
2408         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
2409         ptrmemfunc_vbit_in_delta for SH5.
2410         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
2411         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
2412         * invoke.texi: Likewise.
2413         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
2414         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
2415         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
2416         GCC_pop_shmedia_regs_nofpu): New global symbols.
2417         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
2418         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
2419         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
2420         compact function with nonlocal labels.
2421         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
2422         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
2423         (initial_elimination_offset): Account for their stack space.
2424         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
2425         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
2426         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
2427         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
2428         least one of the operands to be a register.
2429         (movv2sf): Likewise.  Renamed to movv2sf_i.
2430         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
2431         prepare_move_operands() before emitting SHmedia insns.
2432         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
2433         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
2434         Don't save nor initialize r12.  Don't mis-align the stack.
2435         Pad the code with a nop.
2436         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
2437         stack.
2438         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
2439         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
2440         [__SHMEDIA__]: Implement.
2441         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
2442         * config/sh/sh.md: Set latency of `pt' closer to reality.
2443         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
2444         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
2445         Set move, load and store type attributes.
2446         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
2447         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
2448         profiling.
2449         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
2450         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
2451         * config/sh/sh.c (sh_media_register_for_return): New function.
2452         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
2453         branch-target register.
2454         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
2455         * config/sh/sh.md (return_media_i): Use any call-clobbered
2456         branch-target register.
2457         (return_media): If r18 wasn't copied in the prologue, copy it
2458         here.
2459         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
2460         Clear class FP0_REGS.
2461         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
2462         from elf.h.
2463         2001-03-08  DJ Delorie  <dj@redhat.com>
2464         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
2465         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
2466         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
2467         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
2468         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
2469         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
2470         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
2471         return value correctly for call_cookie.
2472         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
2473         * config/sh/crt1.asm (start): Modified so as to call
2474         ___setup_argv_and_call_main.
2475         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
2476         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
2477         SHmedia mode.
2478         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
2479         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
2480         (STRIP_NAME_ENCODING): Use it.
2481         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
2482         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
2483         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
2484         prepare_scc_operands().
2485         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
2486         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
2487         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
2488         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
2489         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
2490         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
2491         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
2492         used in shcompact_incoming_args.
2493         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
2494         change.
2495         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
2496         mode.
2497         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
2498         Adjust accordingly.
2499         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
2500         Simplify.  Adjust.  Add sanity check.
2501         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
2502         FPU_SINGLE_BIT.
2503         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
2504         TARGET_SHCOMPACT.
2505         (udivsi3, divsi3): Use them.
2506         (force_mode_for_call): New insn.
2507         (call, call_value, sibcall_value): Emit it before SHcompact
2508         calls.
2509         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
2510         * config/sh/sh.md (call, call_value, sibcall): Make sure the
2511         call cookie is non-NULL before taking its value.
2512         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
2513         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
2514         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
2515         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
2516         block.
2517         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
2518         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
2519         temporary for stack adjusts.  Use MACL and MACH to pass
2520         arguments to shcompact_incoming_args.
2521         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
2522         clobber r1.
2523         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
2524         (nested_trampoline): Load static chain address into r1.
2525         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
2526         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
2527         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
2528         fp_arith_reg_operand().
2529         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
2530         * config/sh/sh.md (casesi): Sign-extend the first two operands,
2531         and use signed compares for them.
2532         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
2533         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
2534         ones properly aligned.
2535         (find_barrier): Account for extra alignment needed for 8-byte wide
2536         constants.
2537         (machine_dependent_reorg): Require a label for the second 4-byte
2538         constant after an 8-byte one.
2539         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
2540         change.
2541         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
2542         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
2543         last_float when switching float modes.
2544         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
2545         auto-increment for general-purpose registers.
2546         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
2547         result.
2548         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
2549         for stack adjust.
2550         * config/sh/sh.c (sh_builtin_saveregs): Support using all
2551         registers for varargs.
2552         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
2553         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
2554         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
2555         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
2556         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
2557         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
2558         call_cookie accordingly.
2559         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
2560         (SHCOMPACT_BYREF): Likewise.
2561         (SHCOMPACT_FORCE_ON_STACK): New macro.
2562         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
2563         (sh_builtin_saveregs): Likewise.
2564         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
2565         shcompact_incoming_args): Use new shift values.  Support
2566         sequences of consecutive and non-consecutive pushes/pops.
2567         * config/sh/sh.md (return): Don't explicitly use PR_REG.
2568         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
2569         * config/sh/sh.h (TEXT_SECTION): Define.
2570         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
2571         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
2572         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
2573         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
2574         return values on FPU-enabled SHmedia.
2575         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
2576         FPU-enabled SHmedia.
2577         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
2578         value is returned in a non-FP reg and is not returned by
2579         reference.
2580         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
2581         jump_ind.
2582         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
2583         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
2584         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
2585         quad-aligned to be passed by callee-copy reference.
2586         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
2587         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
2588         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
2589         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
2590         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
2591         copying low-numbered FP regs to r7 and r8.
2592         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
2593         FP regs to general-purpose regs only if the copy was passed on the
2594         stack.
2595         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
2596         copying FP reg to r9.
2597         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
2598         copy FP regs to general-purpose regs only in outgoing calls.
2599         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
2600         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
2601         HOST_WIDE_INT.
2602         * config/sh/sh.h (struct sh_args): Document all fields.
2603         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
2604         passed partially on the stack should not consider making
2605         sibcalls.
2606         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
2607         stack_regs only for incoming calls.  When passing FP args,
2608         make sure there are FP regs available before modifying
2609         call_cookie.
2610         (SHCOMPACT_BYREF): Pass double args in general-purpose
2611         registers by reference.
2612         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
2613         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
2614         attempt to generate sibcalls if the caller got any arguments
2615         by reference.
2616         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
2617         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
2618         to 8-byte boundaries.
2619         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
2620         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
2621         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
2622         stored in the stack.
2623         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
2624         for the offsets to have the ISA bit set.
2625         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
2626         invocation.  Use beq instead of bgt to mark end of sequence of
2627         loads.
2628         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
2629         bgt to mark end of sequence of stores.
2630         * config/sh/sh.c (arith_operand): Don't check whether
2631         CONST_OK_FOR_J for now.
2632         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
2633         instead of long for conversion.
2634         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
2635         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
2636         before passing it to fprintf.
2637         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
2638         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
2639         Call set_fpscr before reading/writing SR.
2640         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
2641         Call set_fpscr.
2642         * config/sh/lib1funcs.asm: Add `.align 2' directives before
2643         SHmedia code.
2644         (FMOVD_WORKS): Define on SH5 with FPU.
2645         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
2646         setting.
2647         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
2648         _fpscr_values.
2649         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
2650         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
2651         address.
2652         (ia_main_table): Ditto.
2653         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
2654         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
2655         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
2656         the definitions from sh.h.
2657         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
2658         TARGET_SH5.
2659         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
2660         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
2661         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
2662         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
2663         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
2664         Increment LABEL_NUSES.
2665
2666         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
2667         TARGET_SH5.
2668         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
2669         defined.
2670         * config/sh/elf.h (SIZE_TYPE): Likewise.
2671         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
2672         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
2673         shcompact_incoming_args): Load switch table addresses using
2674         datalabel.
2675         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
2676         (NO_BUILTIN_SIZE_TYPE): Define.
2677         (SIZE_TYPE): Don't define.
2678         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
2679         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
2680         definition of __SH5__=32 for -m5-compact-nofpu.
2681         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
2682         ADDR_DIFF_VEC.
2683         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
2684         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
2685         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
2686         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
2687         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
2688         (INSN_LENGTH_ALIGNMENT): Likewise.
2689         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
2690         * config/sh/sh.md (call, call_value, sibcall): Simplify
2691         copying of non-branch-target register.
2692         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
2693         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
2694         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
2695         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
2696         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
2697         floating-point values as structs.
2698         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
2699         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
2700         general-purpose register.
2701         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
2702         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
2703         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
2704         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
2705         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
2706         (ENCODE_SECTION_INFO): Enclose variables and constants in
2707         DATALABEL unspecs.
2708         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
2709         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
2710         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
2711         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
2712         only for LABEL_REFs.  For SYMBOL_REFs, prepend
2713         SH_DATALABEL_ENCODING to the symbol name.
2714         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
2715         convert_mode().
2716         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
2717         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
2718         UNSPEC_DATALABEL.
2719         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
2720         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
2721         (DATALABEL_REF_P): Don't require CONST.
2722         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
2723         REL label.
2724         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
2725         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
2726         right.
2727         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
2728         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
2729         Use shallow_copy_rtx and PUT_MODE to change the mode of
2730         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
2731         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
2732         on SHmedia using GENERAL_REGs.
2733         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
2734         bltu_media_i): Fix reversion of conditions.
2735         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
2736         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
2737         * config/sh/sh.c (output_far_jump): Save r13 in macl.
2738         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
2739         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
2740         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
2741         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
2742         (GCC_nested_trampoline): Likewise.
2743         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
2744         * config/sh/sh.c (gen_datalabel_ref): Define.
2745         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
2746         (INITIALIZE_TRAMPOLINE): Likewise.
2747         (TRAMPOLINE_ADJUST_ADDRESS): Define.
2748         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
2749         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
2750         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
2751         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
2752         (ic_invalidate): Adjust for SH5.
2753         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
2754         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
2755         _nested_trampoline.
2756         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
2757         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
2758         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
2759         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
2760         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
2761         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
2762         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
2763         * config/sh/sh.c (target_reg_operand): Match only target-branch
2764         registers and pseudos that aren't virtual registers.
2765         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
2766         Copy operands that don't match target_reg_operand to pseudos.
2767         (call_media, call_value_media, sibcall_media): Use
2768         target_reg_operand instead of target_operand.
2769         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
2770         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
2771         * config/sh/sh.c (target_reg_operand): Match hardware registers
2772         other than branch-target registers.
2773         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
2774         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
2775         (fpscr_values) [SH5 == 32]: Define.
2776         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
2777         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
2778         Handle function addresses coming in SUBREGs.
2779         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
2780         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
2781         shcompact_return_trampoline): Use datalabel where appropriate.
2782         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
2783         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
2784         general-purpose register to copy one branch-target register to
2785         another.
2786         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
2787         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
2788         SYMBOL_REFs with VOIDmode.
2789         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
2790         bltu_media_i): New insns.
2791         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
2792         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
2793         (INIT_CUMULATIVE_ARGS): Likewise.
2794         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
2795         * machmode.def (V16SFmode): New mode.
2796         * c-common.c (type_for_mode): Support V2SF and V16SF.
2797         * tree.c (build_common_tree_nodes_2): Likewise.
2798         * tree.h (tree_index): Likewise.
2799         * calls.c (emit_call_1): Take args_so_far.  Adjust all
2800         callers.  Introduce CALL_POPS_ARGS.
2801         * tm.texi (CALL_POPS_ARGS): Document.
2802         * config/sh/crt1.asm: Implement in SHmedia mode.
2803         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
2804         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
2805         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
2806         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
2807         Implement divsi and udivsi in SHmedia mode.  Introduce
2808         SHcompact trampolines.
2809         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
2810         only in SHmedia64.
2811         (regno_reg_class): Rewrite.
2812         (fp_reg_names): Remove.
2813         (sh_register_names, sh_additional_register_names): New.
2814         (print_operand): Added `u'.  Support SUBREGs in addresses.
2815         Add parentheses around shifted CONSTs.
2816         (output_file_start): Output .mode and .abi directives.
2817         (shiftcosts, addsubcosts, multcosts): Adjust.
2818         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
2819         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
2820         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
2821         bytes, not registers.  Take into account the need for the
2822         SHcompact incoming args trampoline.  Adjust all callers.
2823         (sh_expand_prologue): Take stack_regs into account.  Call
2824         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
2825         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
2826         stack aligned as per SH5 ABI.
2827         (sh_builtin_saveregs): Support SH5 ABI.
2828         (sh_build_va_list, sh_va_start): Likewise.
2829         (initial_elimination_offset): Take alignment into account.
2830         Compute location of PR according to the SH5 stack frame.
2831         (arith_reg_operand): Reject branch-target registers.
2832         (shmedia_6bit_operand): New.
2833         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
2834         (target_reg_operand): Match DImode only.  Accept SUBREGs.
2835         (target_operand): New.
2836         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
2837         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
2838         SIBCALL_REGS for SHmedia.
2839         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
2840         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
2841         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
2842         (TARGET_SWITCHES): New SH5 flags.
2843         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
2844         VALID_REGISTER_P to disable unsupported registers.
2845         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
2846         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
2847         (FUNCTION_ARG_PADDING): Define.
2848         (FASTEST_ALIGNMENT): Adjust.
2849         (SH_REGISTER_NAMES_INITIALIZER): New.
2850         (sh_register_names): Declare.
2851         (DEBUG_REGISTER_NAMES): Define.
2852         (REGISTER_NAMES): Define based on sh_register_names.
2853         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
2854         (sh_additional_register_names): Declare.
2855         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
2856         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
2857         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
2858         (REGISTER_NATURAL_MODE): Define.
2859         (FIRST_PSEUDO_REGISTER): Adjust.
2860         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
2861         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
2862         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
2863         (VECTOR_MODE_SUPPORTED_P): Define.
2864         (REG_CLASS_CONTENTS): Adjust.
2865         (SMALL_REGISTER_CLASSES): Adjust.
2866         (REG_ALLOC_ORDER): Adjust.
2867         (INDEX_REG_CLASS): Adjust.
2868         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
2869         (CONST_OK_FOR_LETTER_P): Adjust.
2870         (PREFERRED_RELOAD_CLASS): Adjust.
2871         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
2872         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
2873         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
2874         (FIRST_FP_PARM_REG): Adjust.
2875         (CALL_POPS_ARGS): Define.
2876         (FUNCTION_ARG_REGNO_P): Adjust.
2877         (struct sh_args): New fields.
2878         (GET_SH_ARG_CLASS): Adjust.
2879         (INIT_CUMULATIVE_ARGS): Adjust.
2880         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
2881         (FUNCTION_ARG_ADVANCE): Adjust.
2882         (FUNCTION_ARG): Adjust.
2883         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
2884         (FUNCTION_ARG_CALLEE_COPIES): Define.
2885         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
2886         (STRICT_ARGUMENT_NAMING): Define.
2887         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
2888         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
2889         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
2890         (SETUP_INCOMING_VARARGS): Adjust.
2891         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
2892         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
2893         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
2894         (SUBREG_OK_FOR_INDEX_P): Adjust.
2895         (EXTRA_CONSTRAINT_S): Update.
2896         (EXTRA_CONSTRAINT_T): New.
2897         (EXTRA_CONSTRAINT): Adjust.
2898         (GO_IF_LEGITIMATE_INDEX): Adjust.
2899         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
2900         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
2901         (MOVE_MAX): Adjust.
2902         (MAX_MOVE_MAX): Define.
2903         (Pmode): Adjust.
2904         (CONST_COSTS): Adjust.
2905         (REGISTER_MOVE_COST): Adjust.
2906         (BRANCH_COST): Adjust.
2907         (TEXT_SECTION_ASM_OP): Adjust.
2908         (DBX_REGISTER_NUMBER): Adjust.
2909         (ASM_OUTPUT_DOUBLE_INT): New.
2910         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
2911         (PREDICATE_CODES): Adjust.
2912         (PROMOTE_MODE): Adjust.
2913         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
2914         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
2915         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
2916         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
2917         (DR0_REG, DR2_REG, DR4_REG): Renumber.
2918         (TR0_REG, TR1_REG, TR2_REG): New.
2919         (XD0_REG): Renumber.
2920         (UNSPEC_COMPACT_ARGS): New.
2921         (type): Added pt and ptabs.
2922         (length): Default to 4 on SHmedia.  Default pt length to 12
2923         and     20 on SHmedia32 and SHmedia64, respectively.
2924         (pt): New function unit.
2925         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
2926         Add whitespace between operands of SHmedia instructions.
2927         (movdicc): Fix.
2928         (adddi3_media, addsi3_media): Adjust constraints.
2929         (subsi3) [SHmedia]: Force operand 1 into a register.
2930         (udivsi3_i1_media, udivsi3_i4_media): New.
2931         (udivsi3): Support SHmedia.
2932         (divsi3_i1_media, divsi3_i4_media): New.
2933         (divsi3): Support SHmedia.
2934         (anddi3, iordi3, xordi3): Adjust constraints.
2935         (zero_extendhidi2, zero_extendqidi2): New.
2936         (extendsidi2, extendhidi2, extendqidi2): New.
2937         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
2938         (pop_e, pop_fpul, pop_4): Likewise.
2939         (movsi_media): Support FP and BT registers.
2940         (movsi_media_nofpu): New.  Adjust splits to DImode.
2941         (lduw, ldub): Renamed to zero_extend* above.
2942         (movqi_media): Fix typo.
2943         (movdi_media): Support FP and BT registers.
2944         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
2945         (movdi_const_32bit): New.
2946         (shori_media): Require immediate operand.  Use `u' for output.
2947         (movdf_media, movsf_media): Simplified.
2948         (movdf_media_nofpu, movsf_media_nofpu): New.
2949         (movdf, movsf): Adjust
2950         (movv2sf, movv2sf, movv16sf): New.
2951         (beq_media, beq_media_i): Adjust constraints.  Don't use
2952         scratch BT register.
2953         (bne_media, bne_media_i): Likewise.
2954         (bgt_media, bgt_media_i): Likewise.
2955         (bge_media, bge_media_i): Likewise.
2956         (bgtu_media, bgtu_media_i): Likewise.
2957         (bgeu_media, bgeu_media_i): Likewise.
2958         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
2959         bunordered): Emit jump insn.  Force operands to registers when
2960         needed.
2961         (jump_media, jump): Simplify.
2962         (call_compact, call_compact_rettramp): New.
2963         (call_value_compact, call_value_compact_rettramp): New.
2964         (call_media, call_value_media): Simplify.
2965         (sibcall_compact, sibcall_media): New.
2966         (call, call_value): Adjust for SHmedia and SHcompact.
2967         (sibcall, sibcall_value, untyped_call): Likewise.
2968         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
2969         (indirect_jump): Adjust for SHmedia.
2970         (casesi_jump_media): New.
2971         (nop): Re-enable for SHmedia.
2972         (call_site): Restrict to SH1.
2973         (casesi): Adjust for SHmedia.
2974         (casesi_shift_media, casesi_load_media): New.
2975         (return): Explicitly use PR register.  Call return trampoline
2976         on SHcompact.
2977         (return_i): Explicitly use PR register.
2978         (shcompact_return_tramp, shcompact_return_tramp_i): New.
2979         (return_media): Adjust.
2980         (shcompact_incoming_args): New.
2981         (epilogue): Adjust.
2982         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
2983         (movstrsi): Disable on SH5.
2984         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
2985         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
2986         (subsf3, subsf3_media): Likewise.
2987         (mulsf3, mulsf3_media, mac_media): Likewise.
2988         (divsf3, divsf3_media): Likewise.
2989         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
2990         (floatsisf2, fux_truncsfsi2): Likewise.
2991         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
2992         constraints.
2993         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
2994         (cmpunsf_media, cmpsf): Likewise.
2995         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
2996         (abssf2, abssf2_media): Likewise.
2997         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
2998         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
2999         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
3000         (floatsidf2, fix_truncdfsi2): Likewise.
3001         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
3002         constraints.
3003         (cmpeqdf_media, cmpgtdf_media): Likewise.
3004         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
3005         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
3006         (absdf2, absdf2_media): Likewise.
3007         (extendsfdf2, extendsfdf2_media): Likewise.
3008         (truncsfdf2, truncsfdf2_media): Likewise.
3009         * config/sh/sh64.h: New file.
3010         * config/sh/t-sh64: New file.
3011         * config/sh/shmedia.h: New file.
3012         * config/sh/ushmedia.h: New file.
3013         * config/sh/sshmedia.h: New file.
3014         * configure.in: Added sh64-*-elf.
3015         * configure: Rebuilt.
3016         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
3017         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
3018         (reg_class_from_letter): Use `b' for TARGET_REGS.
3019         (print_operand): Support `%M', `%m', `AND' and
3020         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
3021         (andcosts): Adjust for SHmedia.
3022         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
3023         Likewise.
3024         (target_reg_operand): New function.
3025         * config/sh/sh-protos.h (target_reg_operand): Declare.
3026         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
3027         FP registers on SH5.
3028         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
3029         on SH4.
3030         (TARGET_REGISTER_P): New macro.
3031         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
3032         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
3033         (EXTRA_CONSTRAINT_S): New macro.
3034         (EXTRA_CONSTRAINT): Adjust.
3035         (FLOAT_TYPE_SIZE): Define to 32.
3036         (Pmode): DImode on SHmedia.
3037         (CONST_COSTS): Adjust for SHmedia literals.
3038         (PREDICATE_CODES): Added target_reg_operand.
3039         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
3040         * config/sh/sh.md: Remove all attrs from SHmedia insns.
3041         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
3042         (cmpdi): Accept SHmedia.
3043         (movdicc_false, movdicc_true): New insns.
3044         (movdicc): New expand.
3045         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
3046         no_new_pseudos.
3047         (addsi3_media): Match `S' constraint.
3048         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
3049         (negdi2): Expand for SHmedia.
3050         (one_cmpldi2): New expand.
3051         (zero_extendsidi2): Change from expand to insn.
3052         (extendsidi2): Add constraints.
3053         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
3054         LD/ST address.  Fix SI immediate loading split.
3055         (movhi_media, movqi_media, lduw, ldub): New insns.
3056         (movhi, movqi): Accept SHmedia.
3057         (shori_media, movdi_media): Relax input constraints.  Split
3058         symbolic constants.
3059         (movdf_media, movsf_media): New insn.  New split to movdi.
3060         (movdf, movsf): Match on SHmedia.
3061         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
3062         bgeu_media): New insns and splits.  New insns with `_i' suffix.
3063         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
3064         (bunordered): New expand.
3065         (jump_compact): Renamed from `jump'.
3066         (jump_media): New insn.
3067         (jump): New expand.
3068         (call_media, call_value_media): New insns.
3069         (call, call_value): Adjust.
3070         (indirect_jump_compact): Renamed from `indirect_jump'.
3071         (indirect_jump_media): New insn.
3072         (indirect_jump): New expand.
3073         (untyped_call, return): Accept SHmedia.
3074         (return_media): New insn.
3075         (prologue, epilogue, blockage): Accept SHmedia.
3076         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
3077         (sunordered): New expand.
3078         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
3079         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
3080         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
3081         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
3082         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
3083         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
3084         abssf2_media): New insns.
3085         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
3086         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
3087         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
3088         floatdidf2, floatsidf2_media, fix_truncdfdi2,
3089         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
3090         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
3091         absdf2_media): New insns.
3092         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
3093         (extendsfdf2_media, truncdfsf2_media): New insns.
3094         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
3095         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
3096         * config/sh/sh.h (CONST_OK_FOR_J): Document.
3097         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
3098         * config/sh/sh.md (adddi3): New expand.
3099         (adddi3_media, adddi3z_media): New insns.
3100         (adddi3_compact): Renamed from adddi3.
3101         (addsi3_media): Use add.l r63 to add constant zero.
3102         (subdi3): New expand.
3103         (subdi3_media): New insn.
3104         (subdi3_compact): Renamed from subdi3.
3105         (mulsidi3): New expand.
3106         (mulsidi3_media): New insn.
3107         (mulsidi3_compact): Renamed from mulsidi3.
3108         (umulsidi3): New expand.
3109         (umulsidi3_media): New insn.
3110         (umulsidi3_compact): Renamed from umulsidi3.
3111         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
3112         (ashlsi3, ashrsi3, lshrsi3): Use them.
3113         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
3114         (ashldi3, ashrdi3, lshrdi3): Use them.
3115         (zero_extendsidi2): New expand.
3116         (extendsidi2): New insn.
3117         (movsi_media): New insn.  Split to movdi to load constants.
3118         (movsi): Enable for shmedia.
3119         (movdi_media): New insn.  Use shori_media to load wide constants.
3120         (short_media): New insn.
3121         (movdi): Enable for shmedia.
3122         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
3123         * config/sh/sh.h (CPP_SPEC): Added `m5'.
3124         (SUBTARGET_CPP_SPEC): Added `!m5'.
3125         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
3126         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
3127         to all other SH variants.
3128         (TARGET_DEFAULT): Set to SH1_BIT.
3129         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
3130         (BITS_PER_WORD): Raise to 64 on shmedia.
3131         (MAX_BITS_PER_WORD): Change to 64.
3132         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
3133         (INT_TYPE_SIZE): Keep as 32.
3134         (UNITS_PER_WORD): Raise to 8 on shmedia.
3135         (MIN_UNITS_PER_WORD): Keep as 4.
3136         (POINTER_SIZE): Raise to 64 on shmedia.
3137         (CONST_OK_FOR_J): New macro.
3138         (CONST_OK_FOR_LETTER_P): Use it.
3139         (processor_type): Add PROCESSOR_SH5.
3140         * config/sh/sh.md: Conditionalize all expands, insns and
3141         splits to TARGET_SH1.
3142         (cpu): Added sh5.
3143         (addsi3_compact): Renamed from...
3144         (addsi3): Now an expand.
3145         (addsi3_media, subsi3_media): New insns.
3146         (subsi3): Don't negate constants with SHmedia.
3147
3148         * hooks.c: New file.
3149         * hooks.h: New file.
3150         * Makefile.in (HOOKS_H): New.
3151         (TARGET_DEF_H): Added $(HOOKS_H).
3152         (OBJS): Added hooks.o.
3153         (cfgcleanup.o, bb-reorder.o): Added target.h.
3154         (hooks.o): Added dependencies.
3155         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
3156         (TARGET_INITIALIZER): this.
3157         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
3158         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
3159         * bb-reorder.c: Include target.h.
3160         (reorder_basic_blocks): Skip if cannot modify jumps.
3161         * cfgcleanup.c: Include target.h.
3162         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
3163
3164 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
3165
3166         * config/mips/mips.md (casesi_internal, casesi_internal_di):
3167         Protect jump delay slot instructions with .set noreorder and
3168         .set nomacro.
3169
3170 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
3171
3172         * config/mips/mips.md (casesi_internal_di): Calculate
3173         the index into the target offset table correctly.
3174
3175 2002-02-08  Richard Henderson  <rth@redhat.com>
3176
3177         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
3178         * final.c (output_addr_const): Accept and discard SUBREG.
3179         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
3180         mark them unknown instead.
3181         (simplify_subtraction): Handle RTX_UNKNOWN.
3182         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
3183
3184 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
3185
3186         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
3187
3188 2002-02-08  Richard Henderson  <rth@redhat.com>
3189
3190         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
3191
3192 2002-02-08  Andreas Jaeger  <aj@suse.de>
3193
3194         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
3195         * config/i386/t-linux64: New file.
3196
3197 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
3198
3199         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
3200         * c-parse.in (compstmt): Clear last_expr_type.
3201
3202 2002-02-07  Richard Henderson  <rth@redhat.com>
3203
3204         * loop.c (strength_reduce): Sink final_value when not
3205         eliminating a biv.
3206
3207 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
3208
3209         * config/sparc/freebsd.h: Fix mismatched spec {.
3210
3211 2002-02-07  Richard Henderson  <rth@redhat.com>
3212
3213         * cfgrtl.c: Include recog.h and insn-config.h.
3214         (keep_with_call_p): Fix general_operand invocation.
3215         * Makefile.in (cfgrtl.o): Update dependencies.
3216
3217 2002-02-07  Kazu Hirata  <kazu@hxi.com>
3218
3219         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
3220         comment.  Accept HImode only if TARGET_H8300.
3221
3222 2002-02-07  Eric Christopher  <echristo@redhat.com>
3223
3224         * config/mips/crtn.asm: Cleanup #ifdefs.
3225
3226 2002-02-07  Eric Christopher  <echristo@redhat.com>
3227
3228         * config/mips/crti.asm: Add changes for mips16. mips16 uses
3229         register 7 as RA instead of $31.
3230         * config/mips/crtn.asm: Ditto.
3231         * config/mips/mips.c (mips_move_2words): Add case for
3232         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
3233         (compute_frame_size): Fix typo.
3234         (save_restore_insns): Ditto.  Make documentation about using
3235         register $7 as return register more precise.
3236         (mips_expand_epilogue): Fix comment. Add code to work around not
3237         being able to add to the stack pointer directly.
3238         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
3239         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
3240         epilogue.
3241
3242 2002-02-07  Tom Rix  <trix@redhat.com>
3243
3244         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
3245         immediates in ldu and stdu DS opcode field.
3246         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
3247         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
3248         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
3249
3250 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
3251
3252         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
3253         offset for stack bias.
3254
3255 2002-02-07  H.J. Lu <hjl@gnu.org>
3256
3257         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
3258
3259 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
3260
3261         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
3262
3263 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
3264
3265         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
3266         * i386.c (x86_order_regs_for_local_alloc): New global function.
3267         * i386.h (REG_ALLOC_ORDER): CLeanup.
3268         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
3269
3270 2002-02-07  Richard Henderson  <rth@redhat.com>
3271
3272         PR optimization/2463
3273         * alias.c (find_base_value): Recall base values for fixed hard regs.
3274         * loop.c (loop_regs_update): Don't use single_set on non-insns.
3275
3276 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
3277
3278         * config/mips/mips.md (define_delay) [mips16]: Adjust required
3279         length.
3280
3281 2002-02-06  Richard Henderson  <rth@redhat.com>
3282
3283         PR c/5609
3284         * stmt.c (resolve_operand_name_1): Take more care with mixed
3285         named and unnamed operands.
3286
3287 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
3288             Jan Hubicka  <jh@suse.cz>
3289
3290         * loop.c (remove_constant_addition): Avoid clobbering a shared
3291         CONST expression.
3292
3293 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
3294
3295         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
3296         * config/s390/t-linux64: New file.
3297         * config/s390/libgcc-glibc.ver: New file.
3298
3299 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
3300
3301         * config/s390/linux64.h: Delete file.
3302         * config/s390/s390x.h: New file.
3303         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
3304         as target header file.
3305         * config/s390/linux.h (TARGET_VERSION): Define depending on
3306         DEFAULT_TARGET_64BIT.
3307         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
3308         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
3309         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
3310         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
3311         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
3312         (EXTRA_SPEC): New define.
3313         * config/s390/s390.h (TARGET_VERSION): Define depending on
3314         DEFAULT_TARGET_64BIT.
3315         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
3316
3317 2002-02-06  Jason Merrill  <jason@redhat.com>
3318
3319         * c-decl.c (finish_function): Warn about a non-void function with
3320         no return statement and no abnormal exit.
3321         (current_function_returns_abnormally): New variable.
3322         (start_function): Clear it.
3323         (struct c_language_function): Add returns_abnormally.
3324         (push_c_function_context): Save it.
3325         (pop_c_function_context): Restore it.
3326         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
3327         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
3328         an explicit return type.
3329         * c-tree.h: Declare current_function_returns_abnormally.
3330         (C_FUNCTION_IMPLICIT_INT): New macro.
3331         * c-typeck.c (build_function_call): Set it.
3332         (c_expand_return): Set current_function_returns_value even if the
3333         value is erroneous.
3334
3335 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
3336
3337         PR c/5420:
3338         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
3339         unsafe for reevaluation.
3340
3341 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
3342
3343         PR c/5482:
3344         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
3345         EXPR_STMT, but COMPOUND_STMT, recurse into it.
3346
3347 2002-02-06  Richard Henderson  <rth@redhat.com>
3348
3349         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
3350         be a general_operand.  Dest for function value must be a pseudo.
3351
3352 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
3353
3354         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
3355         as SYMBOL_REFs from the constant pool.
3356
3357 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
3358
3359         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
3360         passed by invisible reference.
3361
3362 2002-02-05  Richard Henderson  <rth@redhat.com>
3363
3364         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
3365
3366 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
3367
3368         Implement using "base addresses" in insn operands as default.
3369         * config/mmix/mmix.c (mmix_conditional_register_usage): if
3370         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
3371         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
3372         used to read the rtx value.
3373         (mmix_target_asm_function_epilogue): Fix spacing.
3374         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
3375         (mmix_legitimate_address): Ditto.
3376         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
3377         should be loaded with a GETA insn.  Don't allocate needless extra
3378         char for nul termination and fix misleading comment.
3379         (mmix_print_operand_address): Handle constants if
3380         TARGET_BASE_ADDRESSES.
3381         (mmix_output_register_setting): Use base addressing if
3382         TARGET_BASE_ADDRESSES and the number of insns is 3.
3383         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
3384         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
3385         to use R as constraint, add LDA to match s.
3386         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
3387         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
3388         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
3389         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
3390         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
3391         order with other fixed registers.
3392         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
3393         other parameter/call-clobbered registers.
3394         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
3395         -mbase-addresses, -mno-base-addresses.
3396         (MMIX Options): Ditto.
3397
3398 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3399
3400         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
3401
3402 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
3403
3404         * config/rs6000/altivec.h: Change elem to _S_elem.
3405
3406 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
3407
3408         * config/netbsd.h (WCHAR_TYPE): Define.
3409         (WCHAR_TYPE_SIZE): Ditto.
3410         (WINT_TYPE): Ditto.
3411         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
3412         (WCHAR_UNSIGNED): Ditto.
3413         (WCHAR_TYPE_SIZE): Ditto.
3414         (WINT_TYPE): Ditto.
3415         * config/arm/netbsd.h: Likewise.
3416         * config/i386/netbsd-elf.h: Likewise.
3417         * config/i386/netbsd.h: Likewise.
3418         * config/m68k/netbsd-elf.h: Likewise.
3419         * config/m68k/netbsd.h: Likewise.
3420         * config/ns32k/netbsd.h: Likewise.
3421         * config/sparc/netbsd.h: Likewise.
3422         * config/vax/netbsd.: Likewise.
3423
3424 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
3425
3426         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
3427         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
3428         (TARGET_INITIALIZER): this.
3429         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
3430         (BITFIELD_NBYTES_LIMITED): Markup fix.
3431         * tree.h (default_ms_bitfield_layout_p): Declare.
3432         (record_layout_info): Added prev_field.
3433         * tree.c (default_ms_bitfield_layout_p): New fn.
3434         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
3435         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
3436         * stor-layout.c: Include target.h.
3437         (start_record_layout): Initialize prev_field.
3438         (place_field): Handle MS bit-field layout, and disregard
3439         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
3440         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
3441         * Makefile.in (stor-layout.o): Adjust dependencies.
3442
3443 2002-02-05  Jason Merrill  <jason@redhat.com>
3444
3445         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
3446
3447 2002-02-05  Andreas Jaeger  <aj@suse.de>
3448
3449         * crtstuff.c: Fix comments.
3450
3451 2002-02-05  Richard Henderson  <rth@redhat.com>
3452
3453         PR fortran/3393
3454         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
3455         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
3456
3457         PR fortran/3392
3458         * config/mips/mips.c (function_arg): Handle TImode.
3459         (function_arg_advance): Likewise.
3460
3461 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
3462
3463         * config/rs6000/altivec.h (vec_step_help): Rename to
3464         __vec_step_help.
3465
3466 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
3467
3468         * config/rs6000/altivec.h: Fix typos.
3469
3470 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
3471
3472         * config/arm/netbsd.h: Correct a comment.
3473
3474 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
3475
3476         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
3477         building void typed builtins.
3478
3479         * config/rs6000/altivec.h (vec_ld*): Fix typos.
3480         (vec_step): Implement for C++.
3481
3482 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3483
3484         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
3485
3486 2002-02-04  Richard Henderson  <rth@redhat.com>
3487
3488         * combine.c (nonzero_bits): Re-introduce special case for
3489         sp/fp/ap wrt REGNO_POINTER_ALIGN.
3490
3491 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
3492
3493         * doc/extend.texi: Warn about unsupported usage of altivec
3494         builtins.
3495
3496         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
3497         (altivec_predicate_*): New.
3498
3499         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
3500         Add C++ version of vec_*() functions.
3501
3502         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
3503         (bdesc_2arg): Remove altivec predicates.
3504         (altivec_expand_builtin): Handle predicates.
3505         (altivec_init_builtins): Handle predicates.
3506         (altivec_expand_predicate_builtin): New.
3507
3508 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3509
3510         * pa.c (DO_FRAME_NOTES): Move forward.
3511         (store_reg): Revise handling of frame notes.
3512         (load_reg): Likewise.
3513         (set_reg_plus_d): Likewise.
3514         (hppa_expand_prologue): Likewise.
3515         (hppa_expand_epilogue): Likewise.
3516
3517 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3518
3519         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
3520
3521 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
3522
3523         PR c/4475, c++/3780:
3524         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
3525         * c-common.h (SWITCH_TYPE): Define.
3526         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
3527         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
3528         Rename spareness variable to sparseness.
3529         (expand_end_case_type): Renamed from expand_end_case, use orig_type
3530         if non-NULL instead of TREE_TYPE (orig_index).
3531         * tree.h (expand_end_case_type): Renamed from expand_end_case.
3532         (expand_end_case): Define using expand_end_case_type.
3533         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
3534         to expand_end_case_type.
3535         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
3536
3537 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3538
3539         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
3540         (BIGGEST_ALIGNMENT): Change to 128.
3541
3542 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3543
3544         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
3545
3546 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3547
3548         * pa.md (call_internal_reg_64bit): Remove unused variable.
3549
3550 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
3551
3552         * config/arm/arm.h (machine_function): Add uses_anonymous_args
3553         field.
3554         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
3555         * config/arm/arm.c (current_function_anonymous_args): Delete,
3556         replace uses with cfun->machine->uses_anonymous_args.
3557         (arm_reorg): Do not reset uses_anonymous_args.
3558
3559         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
3560         any geenral register.
3561
3562 2001-02-04  Bernd Schmidt  <bernds@redhat.com>
3563
3564         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
3565         the entry block.
3566
3567 2002-02-04  Richard Henderson  <rth@redhat.com>
3568
3569         * combine.c (force_to_mode): Remove STACK_BIAS code.
3570         (nonzero_bits): Likewise.  Replace sp/fp special case with
3571         REGNO_POINTER_ALIGN.
3572
3573         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
3574         (HARD_FRAME_POINTER_REGNUM): New.
3575         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
3576         (FIXED_REGS, CALL_USED_REGS): Update.
3577         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
3578         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
3579         (HARD_REGNO_NREGS): Update for SFP.
3580         (STACK_POINTER_OFFSET): Include bias here ...
3581         (FIRST_PARM_OFFSET): ... not here.
3582         (STACK_BIAS): Remove.
3583         (INIT_EXPANDERS): New.
3584         (STARTING_FRAME_OFFSET): Do not include bias.
3585         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
3586         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
3587         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
3588         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
3589         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
3590         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
3591         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
3592         (MUST_SAVE_REGISTER): Likewise.
3593         (sparc_flat_function_prologue): Likewise.
3594         (sparc_flat_function_epilogue): Likewise.
3595         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
3596         (sparc_init_modes): SFP is GENERAL_REGS.
3597         (sparc_builtin_saveregs): SFP does not have bias applied.
3598
3599 2002-02-04  Richard Henderson  <rth@redhat.com>
3600
3601         * config/alpha/alpha.c (current_function_is_thunk): Don't check
3602         current_function_is_thunk.
3603         (alpha_sa_mask): Distinguish between current_function_is_thunk
3604         called from ASM_OUTPUT_MI_THUNK and not.
3605         (alpha_does_function_need_gp): Thunks always need gp.
3606         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
3607         (alpha_output_mi_thunk_osf): New.
3608         * config/alpha/alpha-protos.h: Update.
3609         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
3610
3611 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
3612
3613         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
3614         function types, not when they're taken away.
3615
3616 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
3617
3618         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
3619         CODE_LABEL and jump table when replacing a table jump with a
3620         simple jump.
3621
3622 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
3623
3624         * config/s390/s390-protos.h (legitimize_la_operand,
3625         s390_secondary_input_reload_class, s390_plus_operand,
3626         s390_expand_plus_operand): Add prototypes.
3627
3628         config/s390/s390.c (s390_secondary_input_reload_class,
3629         s390_plus_operand, s390_expand_plus_operand): New functions.
3630
3631         (struct s390_address): New member 'pointer'.
3632         (s390_decompose_address): Compute it.
3633         (legitimate_la_operand_p): Use it.
3634         (legitimize_la_operand): New function.
3635         (movti, movdi, movdf splitters): Call it.
3636
3637         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
3638         (PREDICATE_CODES): Add s390_plus_operand.
3639
3640         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
3641         (la_ccclobber): Allow GENERAL_REGS as output operand.
3642
3643         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
3644         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
3645         (*la_64, *la_31, reload_indi, reload_insi): ... these.
3646
3647 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
3648
3649         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
3650         register names for regular asm () construct.
3651
3652 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
3653
3654         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
3655         registers.
3656
3657 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
3658
3659         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
3660         pat for recog.
3661
3662 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
3663
3664         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
3665         constant pool to be identical by string address and index.
3666
3667 2002-02-04  Anthony Green  <green@redhat.com>
3668
3669         * output.h (SECTION_OVERRIDE): Define.
3670         * varasm.c (named_section): Obey SECTION_OVERRIDE.
3671
3672 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
3673
3674         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
3675         by existing arm*-*-netbsd* (a.out) target.
3676         (ns32k-*-netbsdelf*): Likewise.
3677         (sparc-*-netbsdelf*): Likewise.
3678         (vax-*-netbsdelf*): Likewise.
3679
3680 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
3681
3682         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
3683         headers and libobjc headers.
3684
3685 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
3686
3687         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
3688         (_mingw.h): Remove duplicate include.
3689
3690 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
3691
3692         * config.gcc: Set cpu_type to m68k for 68010, as well.
3693         (m68010-*-netbsdelf*): New...
3694         (m68k*-*-netbsdelf*): ...targets.
3695         * config/m68k/netbsd-elf.h: New file.
3696
3697 2002-02-02  Kazu Hirata  <kazu@hxi.com>
3698
3699         * config/h8300/h8300.c (hand_list): Move inside function_arg.
3700
3701 2002-02-02  Kazu Hirata  <kazu@hxi.com>
3702
3703         * config/h8300/h8300.c (h8_push_ops): Move inside
3704         h8300_init_once.
3705         (h8_pop_ops): Likewise.
3706         (h8_move_ops): Likewise.
3707
3708 2002-02-02  Kazu Hirata  <kazu@hxi.com>
3709
3710         * config/h8300/h8300.c (os_task): Make it static.
3711         (monitor): Likewise.
3712         (pragma_saveall): Likewise.
3713
3714 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
3715
3716         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
3717         constant is a valid sign-extension for Pmode.
3718
3719 2002-02-02  Kazu Hirata  <kazu@hxi.com>
3720
3721         * config/h8300/h8300.c: Fix formatting.
3722
3723 2002-02-02  Kazu Hirata  <kazu@hxi.com>
3724
3725         * config/h8300/h8300.md: Fix formatting.
3726
3727 2002-02-02  Kazu Hirata  <kazu@hxi.com>
3728
3729         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
3730         predicates of operands[1].  Split the patterns for each
3731         processor variant.
3732
3733 2002-02-02  Kazu Hirata  <kazu@hxi.com>
3734
3735         * config/h8300/h8300.md (xor patterns): Tighten the predicates
3736         of operands[1] to register_operand.
3737
3738 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3739
3740         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
3741         * cpphash.c (_cpp_init_hashtable): Similarly.
3742         * cppinit.c (cpp_create_reader): Default the signed_char flag.
3743         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
3744         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
3745         (cpp_handle_option): Handle the new options.
3746         * cpplex.c (cpp_interpret_charconst): Use new flag.
3747         * cpplib.h (struct cpp_options): New member signed_char.
3748         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
3749         (cpp_options): Handle -fsigned-char and -funsigned-char.
3750         (static_specs): Remove signed_char_spec.
3751         (do_spec1): Don't handle %c.
3752         * system.h: Poison SIGNED_CHAR_SPEC.
3753         * tradcif.y (yylex): Use flag_signed_char.
3754         * tradcpp.h (flag_signed_char): New.
3755         * tradcpp.c (flag_signed_char): New.
3756         (main): Handle new command-line options.
3757         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
3758 config:
3759         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
3760         * avr/avr.h: Remove old comments.
3761         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
3762         (CC1_SPEC): Pass -fsigned-char if -mic*.
3763         (SIGNED_CHAR_SPEC): Remove.
3764 doc:
3765         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
3766
3767 2002-02-01  Eric Christopher  <echristo@redhat.com>
3768
3769         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
3770         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
3771         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
3772         (ASM_OUTPUT_REG_POP): Ditto.
3773
3774 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3775
3776         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
3777         patch.
3778
3779 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
3780
3781         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
3782
3783 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
3784
3785         PR c/5304:
3786         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
3787         unconditionally.
3788
3789 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
3790
3791         * cfganal.c: Include tm_p.h.
3792         (keep_with_call_p): Fix the test that determines if a register holds
3793         the return value of a call.
3794
3795 2002-02-01  DJ Delorie  <dj@redhat.com>
3796
3797         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
3798         we are given conflicting registers, switch to the other one we
3799         had allocated for us.
3800         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
3801         as TImode so we know when the "other" register is available.
3802
3803 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
3804
3805         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
3806         sparc/sparc_bi.h.
3807
3808 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
3809
3810         * cfganal.c (keep_with_call_p): New function.
3811         (flow_call_edges_add): Prevent splitting a block between a call and
3812         a single-set instruction that should be kept in the same block.
3813
3814 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3815
3816         * doc/install.texi (avr): Update outdated URL.
3817
3818 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
3819
3820         * config/stormy16/stormy16.md (pushqi): New.
3821         (popqi): New.
3822         (pushhi): New.
3823         (pophi): New.
3824         (movhi): Remove stack operands.
3825         (movqi): Likewise.
3826         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
3827         nonimmediate_nonstack_operand.
3828         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
3829         New.
3830         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
3831         New.
3832
3833 2002-01-31  Jason Merrill  <jason@redhat.com>
3834
3835         * Makefile.in (c-parse.c): Handle .output file.
3836         * objc/Make-lang.in (objc-parse.c): Likewise.
3837
3838 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
3839
3840         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
3841         the -me[lb] option is given.  Don't output the default flag
3842         twice.
3843
3844 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
3845
3846         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
3847         the primary source file; this has not been done yet.
3848         * c-decl.c (c_expand_body): Reset input_filename from
3849         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
3850
3851 2002-01-31  Kazu Hirata  <kazu@hxi.com>
3852
3853         * rtlanal.c (subreg_regno_offset): Do not use
3854         SUBREG_REGNO_OFFSET.
3855         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
3856         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
3857
3858 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
3859
3860         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
3861         version rather than GNATS version in --version output.
3862
3863 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
3864
3865         * ifcvt.c (noce_process_if_block): Make a copy of the destination
3866         when copying back from a temporary.
3867
3868 2002-01-30  Richard Henderson  <rth@redhat.com>
3869
3870         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
3871         and new_dest are the same.
3872
3873 2002-01-30  Richard Henderson  <rth@redhat.com>
3874
3875         PR opt/5076
3876         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
3877         * rtl.c (note_insn_name): Update.
3878         * emit-rtl.c (remove_unnecessary_notes): Kill it.
3879         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
3880         to perform loop rotation.
3881         (expand_exit_loop_top_cond): New.
3882         * tree.h (expand_exit_loop_top_cond): Declare it.
3883         * c-semantics.c (genrtl_while_stmt): Use it.
3884         (genrtl_for_stmt): Likewise.
3885
3886 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
3887
3888         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
3889         arguments to 64-bit boundaries on 64-bit ABIs.
3890
3891 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
3892
3893         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
3894
3895 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
3896
3897         * c-decl.c (grokdeclarator): Handle type being a typedef for an
3898         invalid type.
3899
3900 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
3901
3902         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
3903         * config/sparc/sparc_bi.h: Remove file.
3904         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
3905
3906 2002-01-30  Richard Henderson  <rth@redhat.com>
3907
3908         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
3909
3910 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
3911
3912         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
3913
3914 2002-01-30  Jason Merrill  <jason@redhat.com>
3915
3916         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
3917         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
3918         (reg_save): Use DW_CFA_offset_extended_sf instead.
3919
3920         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
3921
3922 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
3923
3924         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
3925         in cselib_lookup.
3926
3927 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
3928
3929         * rs6000.md ("*call_value_local32"): Remove constraints.
3930         ("*call_value_local64"): Same.
3931         ("*call_value_indirect_nonlocal_aix32"): Same.
3932         ("*call_value_nonlocal_aix32"): Same.
3933         ("*call_value_indirect_nonlocal_aix64"): Same.
3934         ("*call_value_nonlocal_aix64"): Same.
3935         ("*call_value_nonlocal_sysv"): Same.
3936
3937 2002-01-29  Richard Henderson  <rth@redhat.com>
3938
3939         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
3940
3941 2002-01-29  Richard Henderson  <rth@redhat.com>
3942
3943         * expr.c (force_operand): Ignore flag_pic for detecting pic
3944         address loads.
3945         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
3946         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
3947         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
3948         instead of open-coded loop.
3949         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
3950         be fixed when in use.
3951
3952 2002-01-29  Richard Henderson  <rth@redhat.com>
3953
3954         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
3955         * sched-rgn.c (propagate_deps): Update them.
3956         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
3957         clobbers list when either gets too long.
3958
3959 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
3960
3961         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
3962         and INDEX_REGS the same as GENERAL_REGS.
3963         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3964
3965 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3966
3967         * tree.c (build_nonstandard_integer_type): Correct prototype.
3968
3969 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
3970
3971         * config/s390/s390.md (movstrsico, movstrdix_64,
3972         movstrsix_31): Remove, replace by ...
3973         (movstrdi_short, movstrsi_short, movstrdi_long,
3974         movstrsi_long): ... these.  New.
3975         (movstrdi, movstrsi): Adapt.
3976
3977         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
3978         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
3979         Remove unnecessary CC clobber.
3980         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
3981         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
3982
3983         (divmoddi4): Don't partially initialize TImode register.
3984
3985 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
3986
3987         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
3988
3989 2002-01-29  Richard Henderson  <rth@redhat.com>
3990
3991         * flow.c (print_rtl_and_abort): Remove.
3992         (print_rtl_and_abort_fcn): Remove.
3993         (verify_local_live_at_start): Use dump_bb instead.
3994         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
3995         (verify_wide_reg_1): Return 2 on mode test failure.
3996
3997 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3998
3999         PR c/3325, c/3326, c/2511, c/3347
4000         * c-decl.c (enum_decl_context): Remove BITFIELD.
4001         (grokdeclarator): Take bitfield width as an input.
4002         Ensure bitfields are given the correct type.  Perform
4003         bitfield width validation with build_bitfield_integer_type
4004         rather than waiting for finish_struct.
4005         (grok_typename, grok_typename_in_parm_context, start_decl,
4006         push_parmdecl, grokfield, start_function): Update calls to
4007         grokdeclarator.
4008         (build_bitfield_integer_type): New function.
4009         (finish_struct): Move bitfield validation to grokdeclarator
4010         and build_bitfield_integer_type.
4011         * tree.c (build_nonstandard_integer_type): New function.
4012         * tree.h (build_nonstandard_integer_type): New prototype.
4013 objc:
4014         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
4015
4016 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
4017
4018         PR other/1502:
4019         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
4020         don't ignore unrecognized -W* options.
4021         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
4022         * cpplib.h (cpp_handle_option): Adjust prototype.
4023         * c-decl.c (c_decode_options): Pass 0 as last argument to
4024         cpp_handle_option.
4025
4026         PR c/2896:
4027         * gcc.c (cpp_unique_options): Split from cpp_options.
4028         (cpp_options): Source cpp_unique_options.
4029         (default_compilers): Use cpp_unique_options instead of cpp_options
4030         when used together with cc1_options.
4031         (static_specs): Add cpp_unique_options.
4032         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
4033         when used together with cc1_options.
4034
4035 2002-01-29  Kazu Hirata  <kazu@hxi.com>
4036
4037         * config/h8300/h8300-protos.h: Update the prototype of
4038         output_a_shift.
4039         * config/h8300/h8300.c (output_a_shift): Remove an unused
4040         argument 'insn'.  Remove redundant code.
4041         * config/h8300/h8300.md: Adust to the new prototype of
4042         output_a_shift.
4043
4044 2002-01-29  Kazu Hirata  <kazu@hxi.com>
4045
4046         * config/h8300/h8300-protos.h: Update the prototypes of
4047         emit_a_rotate and expand_a_rotate.
4048         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
4049         first argument to 'enum rtx_code'.
4050         (expand_a_rotate): Likewise.
4051
4052 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4053
4054         * config/h8300/h8300-protos.h: Update the prototype of
4055         output_simode_bld.
4056         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
4057         'log2'.
4058         * config/h8300/h8300.md: Adjust to the new prototype.
4059
4060 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4061
4062         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
4063         redundant code.
4064
4065 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4066
4067         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
4068         is a fixed register before returning pic_offset_table_rtx.
4069         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
4070         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
4071
4072 2002-01-28  Jason Merrill  <jason@redhat.com>
4073
4074         * dwarf2.h: Sync with src version.
4075
4076 2002-01-28  Paul Koning  <pkoning@equallogic.com>
4077
4078         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
4079         BT_FN_VOID_PTR_VAR.
4080         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
4081         * doc/extend.texi (__builtin_prefetch): Update documentation:
4082         first argument is now const void ptr.
4083
4084 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4085
4086         * config/h8300/h8300-protos.h: Remove an unused prototype.
4087
4088 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
4089
4090         * toplev.c (lang_independent_init): Round up identifier size.
4091
4092 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
4093
4094         * config.gcc: Revert previous change.
4095
4096 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
4097
4098         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
4099
4100 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
4101
4102         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
4103         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
4104         other non-elf netbsd config frags.
4105         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
4106         collect2 will does that.
4107         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
4108         shared-lib frobbing will work.
4109
4110 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4111
4112         * config/h8300/h8300.h: Fix formatting.
4113         * config/h8300/h8300.md: Likewise.
4114
4115 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
4116
4117         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
4118         the old, removed AAA_standards fix.
4119         * fixinc/fixincl.x: Rebuilt.
4120
4121 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
4122
4123         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
4124         atexit call in crtbegin, hooked in after call to frame_dummy;
4125         register EH before registering __fini__start.
4126
4127 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
4128
4129         * config/rs6000/altivec.h: Remove spurious semicolons.
4130
4131 2002-01-27  Kazu Hirata  <kazu@hxi.com>
4132
4133         * config/h8300/h8300.md: Replace dead bit extraction patterns
4134         with ones that work.
4135
4136 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4137
4138         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
4139         if not STRICT_ALIGNMENT.
4140         * rtl.h (MEM_ALIGN): Likewise.
4141
4142 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4143
4144         * doc/invoke.texi (-fdump-translation-unit): Revert this
4145         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4146
4147 2002-01-27  Kazu Hirata  <kazu@hxi.com>
4148
4149         * config/h8300/h8300.md (define_constants): New.
4150         (anonymous patterns) Use defined constants appropriately.
4151
4152 2002-01-27  Kazu Hirata  <kazu@hxi.com>
4153
4154         * config/h8300/h8300.c (function_arg): Remove redundant code.
4155
4156 2002-01-26  Richard Henderson  <rth@redhat.com>
4157
4158         * sched-deps.c (reg_pending_uses_head): New.
4159         (reg_pending_barrier): Rename from reg_pending_sets_all.
4160         (find_insn_list): Don't mark inline.
4161         (find_insn_mem_list): Remove.
4162         (add_dependence_list, add_dependence_list_and_free): New.
4163         (flush_pending_lists): Replace only_write param with separate
4164         for_read and for_write parameters.  Update all callers.  Use
4165         add_dependence_list_and_free.
4166         (sched_analyze_1): Do not add reg dependencies here; just set
4167         the pending bits.  Use add_dependence_list.
4168         (sched_analyze_2): Likewise.
4169         (sched_analyze_insn): Replace schedule_barrier_found with
4170         reg_pending_barrier.  Add all dependencies for pending reg
4171         uses, sets, and clobbers.
4172         (sched_analyze): Don't add reg dependencies for calls, just
4173         set pending bits.  Use regs_invalidated_by_call.  Treat
4174         sched_before_next_call as a normal list, not a fake insn.
4175         (init_deps): No funny init for sched_before_next_call.
4176         (free_deps): Free pending mems lists.  Don't zero reg_last.
4177         (init_deps_global): Init reg_pending_uses.
4178         (finish_deps_global): Free it.
4179         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
4180         (find_insn_mem_list): Remove.
4181         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
4182         (propagate_deps): Use them.  Zero temp mem lists.
4183
4184 2002-01-26  Richard Henderson  <rth@redhat.com>
4185
4186         * Makefile.in (CRTSTUFF_CFLAGS): New.
4187         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
4188         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
4189         crtstuff.c instead of alpha assembly version.
4190         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
4191         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
4192         not FORCE_{INIT,FINI}_SECTION_ALIGN.
4193         (__do_global_dtors_aux): Mark used.
4194         (frame_dummy, __do_global_ctors_aux): Mark used.
4195         (fini_dummy, init_dummy): Remove.
4196
4197         * config/alpha/crtbegin.asm: Remove file.
4198         * config/alpha/crtend.asm: Remove file.
4199         * config/alpha/t-crtbe: Remove file.
4200         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
4201         (LINK_EH_SPEC): New.
4202
4203         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
4204         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
4205         calling constructors.
4206         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
4207
4208         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
4209         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
4210         CRT_END_INIT_DUMMY hack.
4211         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
4212         FORCE_{INIT,FINI}_SECTION_ALIGN.
4213
4214         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
4215         FORCE_{INIT,FINI}_SECTION_ALIGN.
4216
4217         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
4218         invocation sequence.
4219         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
4220
4221         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
4222         (FORCE_CODE_SECTION_ALIGN): New.
4223
4224 2002-01-26  Richard Henderson  <rth@redhat.com>
4225
4226         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
4227
4228 2002-01-26  Richard Henderson  <rth@redhat.com>
4229
4230         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
4231         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
4232
4233 2002-01-26  Kazu Hirata  <kazu@hxi.com>
4234
4235         * config/h8300/h8300.md: Remove bit extraction patterns that
4236         cannot be triggered.
4237         Restrict each bit extraction pattern to a variant on which the
4238         pattern is tested.
4239
4240 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
4241
4242         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
4243
4244 2002-01-26  Kazu Hirata  <kazu@hxi.com>
4245
4246         * config/h8300/h8300.md: Remove bit test patterns that cannot
4247         be triggered.
4248         Restrict each bit test pattern to a variant on which the
4249         pattern is tested.
4250
4251 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4252
4253         * builtins.c (expand_builtin_strncat): Remove redundant check for
4254         INTEGER_CST.
4255
4256 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
4257
4258         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
4259         default setting.
4260         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
4261         existing setting.
4262
4263 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
4264
4265         * dbxout.c (dbxout_init): Use assemble_name rather than just
4266         stripping off the first character.
4267         (dbxout_source_file): Likewise.
4268
4269 2002-01-25  DJ Delorie  <dj@redhat.com>
4270
4271         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
4272         using rtx_equal_p, not by comparing pointers.
4273
4274 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
4275
4276         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
4277         for PIC_OFFSET_TABLE_REGNUM.
4278         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
4279
4280 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
4281
4282         * config.gcc (x86_64-*-freebsd*): New target.
4283         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
4284         value.
4285         (i[34567]86-*-freebsd*): Don't include svr4.h.
4286         * config/i386/freebsd64.h: New file.
4287
4288 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
4289
4290         * config/alpha/x-vms (version): Make static.
4291
4292         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
4293         in previous checkin.
4294
4295         * Makefile.in (install-headers-cp): New target.
4296         * config.gcc (alpha-dec-*vms*): Install headers with
4297         install-headers-cp
4298
4299 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
4300
4301         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
4302         avoid it's copies.
4303
4304 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4305
4306         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
4307         of compare_tree_int.
4308         (expand_builtin_strncat): Likewise.
4309         * c-decl.c (finish_struct): Use tree_low_cst.
4310         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
4311         * tree.c (compare_tree_int): Likewise.
4312
4313 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
4314
4315         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
4316         adjustments even if they are implemented by more than two insns.
4317
4318 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
4319
4320         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
4321         * df.h (struct ref): Kill B.
4322         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
4323
4324         * basic-block.h (PROP_EQUAL_NOTES): New flag.
4325         * flow.c (propagate_one_insn): Use it.
4326         (mark_used_regs): Handle NIL.
4327
4328 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
4329
4330         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
4331         to help folding.
4332
4333 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
4334
4335         * rs6000.md (prefetch): Make address V4SI mode so that the address
4336         is restricted to legitimate form for instruction.
4337
4338 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
4339
4340         * doc/install.texi (xtensa-*-elf): New target.
4341         (xtensa-*-linux*): New target.
4342         * doc/contrib.texi: Add myself.
4343
4344 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
4345
4346         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
4347         purpose register to hold an SImode (or smaller) value.
4348
4349 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
4350
4351         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
4352         registry only.
4353         * crtstuff.c: Likewise.
4354
4355 2002-01-25  Kazu Hirata  <kazu@hxi.com>
4356
4357         * config/h8300/h8300.md (negation patterns): Tighten
4358         predicates to register_operand.
4359
4360 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
4361
4362         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
4363         mode, not Pmode.
4364
4365         * builtins.c (expand_builtin_prefetch): Same.
4366
4367 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
4368
4369         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
4370         modes.
4371
4372 2002-01-24  Kazu Hirata  <kazu@hxi.com>
4373
4374         * config/h8300/h8300.c (print_operand): Remove support for
4375         operand character 'A'.
4376         * config/h8300/h8300.md (three anonymous patterns): Replace
4377         operand character 'A' with either 'T' or 'S'.
4378
4379 2002-01-24  Kazu Hirata  <kazu@hxi.com>
4380
4381         * config/h8300/h8300.c (print_operand): Remove support for
4382         operand character 'U'.
4383
4384 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
4385
4386         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
4387
4388 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
4389
4390         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
4391         values to be assigned to the stack pointer.
4392
4393 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
4394
4395         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
4396         to const_double needs to be done right for big-endian systems.
4397
4398 2002-01-24  Jason Merrill  <jason@redhat.com>
4399
4400         PR c++/2432
4401         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
4402         to can_throw_internal.
4403
4404 2002-01-23  Richard Henderson  <rth@redhat.com>
4405
4406         * fold-const.c (fold): Change UINT_MAX test to check vs precision
4407         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
4408
4409 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
4410
4411         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
4412         (symGOT2reg): Use them, then set as GOT value as unchanging.
4413         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
4414         as a temporary, if possible.
4415         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
4416         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
4417
4418 2002-01-23  Kazu Hirata  <kazu@hxi.com>
4419
4420         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
4421         accept to accept 0x80 as operands[2].
4422
4423 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
4424
4425         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
4426
4427 2002-01-23  Richard Henderson  <rth@redhat.com>
4428
4429         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
4430
4431 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
4432
4433         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
4434         (parmlist_or_identifiers_1): Verify that only a parmlist follows
4435         an attribute.
4436
4437 2002-01-23  Richard Henderson  <rth@redhat.com>
4438
4439         * expr.c (move_by_pieces_1): Extend size before negation.
4440
4441         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
4442         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
4443         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
4444         * config/m68k/t-m68kelf: Likewise.
4445
4446 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
4447
4448         * config/xtensa/elf.h: New file.
4449         * config/xtensa/lib1funcs.asm: New file.
4450         * config/xtensa/lib2funcs.S: New file.
4451         * config/xtensa/linux.h: New file.
4452         * config/xtensa/t-xtensa: New file.
4453         * config/xtensa/xtensa-config.h: New file.
4454         * config/xtensa/xtensa-protos.h: New file.
4455         * config/xtensa/xtensa.c: New file.
4456         * config/xtensa/xtensa.h: New file.
4457         * config/xtensa/xtensa.md: New file.
4458         * config.gcc (xtensa-*-elf*): New target.
4459         (xtensa-*-linux*): New target.
4460         * cse.c (canon_hash): Compare rtx pointers instead of register
4461         numbers.  This is required for the Xtensa port.
4462         * integrate.c (copy_insn_list): Handle case where the static
4463         chain is in memory and the memory address has to be copied to
4464         a register.
4465         * doc/invoke.texi (Option Summary): Add Xtensa options.
4466         (Xtensa Options): New node.
4467         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
4468
4469 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
4470
4471         * diagnostic.c (internal_error): Do ICE suppression only
4472         when ENABLE_CHECKING is not defined.
4473
4474         * c-typeck.c (require_complete_type): Return error_mark_node
4475         if type is error_mark_node.
4476
4477 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
4478
4479         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
4480         -Os and issue a warning.
4481
4482 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
4483
4484         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
4485         current (lack of) need for host configuration by hand.
4486
4487         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
4488         references.  Documentation of some target macros moved from
4489         hostconfig.texi to tm.texi.
4490
4491 2002-01-23  Will Cohen  <wcohen@redhat.com>
4492
4493         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
4494         defined.
4495
4496 2002-01-23  Kazu Hirata  <kazu@hxi.com>
4497
4498         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
4499         operand[3].
4500
4501 2002-01-23  Jason Merrill  <jason@redhat.com>
4502
4503         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
4504
4505         * function.c (assign_parms): Don't put args of inline functions
4506         into registers when not optimizing.
4507
4508 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
4509
4510         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
4511         (prologue_use): New pattern.
4512         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
4513         preference to gen_rtx_USE.
4514         (thumb_expand_prologue): Use gen_prologue_use in preference to
4515         gen_rtx_USE.
4516         (thumb_expand_epilogue): Use gen_prologue_use in preference to
4517         gen_rtx_USE.
4518
4519 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
4520
4521         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
4522
4523 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4524
4525         PR c/3504
4526         * doc/extend.texi: Correct documentation of __alignof__.
4527
4528 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
4529
4530         * params.h: Rename arguments of DEFPARAM so that it will be
4531         recognized as a translation keyword.
4532
4533 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
4534
4535         * extend.texi: Document altivec functions.
4536         Fix N-bit adjectives in X86 builtin documentation.
4537
4538 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
4539
4540         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
4541         auto_inc_dec values.
4542
4543 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
4544
4545         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
4546         after backslash.
4547         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
4548
4549 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
4550
4551         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
4552
4553 2002-01-22  Richard Henderson  <rth@redhat.com>
4554
4555         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
4556         copy_insn not copy_rtx.
4557
4558 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
4559
4560         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
4561         "nonzero" as that might add "1" bits.  Ensure "constop" is
4562         properly sign extened.
4563         (force_to_mode): Tweak for sign extended constop.
4564
4565 2002-01-22  Richard Henderson  <rth@redhat.com>
4566
4567         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
4568         for_each_rtx instead of assuming we're already looking at the MEM.
4569         (split_small_symbolic_mem_operand): Likewise.
4570         * config/alpha/alpha.h (PREDICATE_CODES): Update.
4571         * config/alpha/alpha.md (small symbolic memory splitters): Update.
4572
4573 2002-01-22  Richard Henderson  <rth@redhat.com>
4574
4575         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
4576         sequence number for the literal.
4577         (divmoddi_internal_er): Likewise.
4578
4579 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4580
4581         PR java/4972
4582         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
4583         in LIBICONV variable.
4584         * configure: Regenerated.
4585
4586 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
4587
4588         * dependence.c (build_def_use): Remove array_idx.
4589
4590         * dwarfout.c (last_filename): Remove.
4591         (output_compile_unit_die): Remove last_filename.
4592
4593 2002-01-22  Roger Sayle  <roger@eyesopen.com>
4594             Richard Henderson  <rth@redhat.com>
4595
4596         PR opt/3640
4597         * fold-const.c (fold): Optimize unsigned comparisons against
4598         UINT_MAX (and similar unsigned constants).
4599
4600 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
4601
4602         * Makefile.in (loop.o): Depend on OPTABS_H.
4603         * loop.c (emit_prefetch_instructions): Check the prefetch operand
4604         against the predicate.
4605
4606         PR target/5379
4607         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
4608         for the address operand.
4609
4610 2002-01-22  Richard Henderson  <rth@redhat.com>
4611
4612         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
4613
4614 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4615
4616         PR other/5450
4617         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
4618         preprocessor flags.
4619
4620 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
4621
4622         * config.gcc (x86_64-*-netbsd*): New target.
4623         * config/i386/netbsd64.h: New file.
4624
4625 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
4626
4627         * regrename.c (kill_value): Fix typo.
4628
4629 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
4630
4631         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
4632
4633         * config/rs6000/rs6000.h: Same.
4634
4635         * function.c (instantiate_virtual_regs): Remove
4636         STARTING_FRAME_PHASE.
4637         (assign_stack_local_1): Same.
4638         Calculate frame phase.
4639
4640 2002-01-22  Nick Clifton  <nickc@redhat.com>
4641
4642         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
4643         variable declaration to outer scope in order to simplify
4644         future extensions.
4645         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
4646         arm_hard_regno_mode_ok.
4647         * config/arm/arm-protos.h: Add a prototype for
4648         arm_hard_regno_mode_ok.
4649         * config/arm/arm.c (soft_df_operand): Remove now redundant
4650         check for DImode values using IP_REGNUM.
4651         (nonimmediate_soft_df_operand): Remove now redundant check for
4652         DImode values using IP_REGNUM.
4653         (arm_hard_regno_mode_ok): New function. New check: make sure
4654         that DImode values are not stored in IP_REGNUM.
4655
4656         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
4657         note with a USE.
4658         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
4659
4660 2002-01-22  Jason Merrill  <jason@redhat.com>
4661
4662         * c-semantics.c (genrtl_compound_stmt): Only check nesting
4663         consistency if this COMPOUND_STMT is scoped.
4664
4665 2002-01-22  Kazu Hirata  <kazu@hxi.com>
4666
4667         * predict.c: Fix formatting.
4668         * print-tree.c: Likewise.
4669         * protoize.c: Likewise.
4670         * real.h: Likewise.
4671         * rtl.h: Likewise.
4672         * sbitmap.h: Likewise.
4673         * scan.c: Likewise.
4674         * sched-deps.c: Likewise.
4675         * sched-vis.c: Likewise.
4676         * sdbout.c: Likewise.
4677         * sibcall.c: Likewise.
4678         * ssa.c: Likewise.
4679         * ssa-ccp.c: Likewise.
4680         * ssa-dce.c: Likewise.
4681         * stmt.c: Likewise.
4682         * stor-layout.c: Likewise.
4683         * system.h: Likewise.
4684
4685 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4686
4687         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
4688         if fits in bounds of base type.
4689
4690         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
4691         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
4692         (add_bound_info, default): If can't find a context, make a
4693         SAVE_EXPR.
4694         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
4695
4696 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
4697
4698         * c-typeck.c (parser_build_binary_op): If result from
4699         build_binary_op is ERROR_MARK just return error_mark_node without
4700         further processing.
4701
4702 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
4703
4704         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
4705         Split a.out-specific bits into...
4706         * config/netbsd-aout.h: ...this.
4707         * config/netbsd-elf.h: New file.
4708         * config/alpha/netbsd-elf.h: Remove.
4709         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
4710         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
4711         (STARTFILE_SPEC): Remove redundant definition.
4712         (ENDFILE_SPEC): Likewise.
4713         (LINK_SPEC): Likewise.
4714         (CPP_SPEC): Likewise.
4715         (ASM_SPEC): Likewise.
4716         (LIB_SPEC): Likewise.
4717         (SWITCH_TAKES_ARG): Likewise.
4718         (TARGET_MEM_FUNCTIONS): Likewise.
4719         (CPP_PREDEFINES): Redefine.
4720         (ASM_FINAL_SPEC): Remove redefinition.
4721         (ASM_COMMENT_START): Redefine.
4722         (FUNCTION_PROFILER): Define.
4723         (TARGET_VERSION): Redefine.
4724         Comment and formatting cleanup.
4725         * config/i386/netbsd.h: Include <netbsd-aout.h>.
4726         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
4727         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
4728         big- or little-endian.
4729         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
4730         * config.gcc (*-*-netbsd*): Add definitions common to all
4731         NetBSD configs.
4732         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
4733         gnu_ld definitions.  Add netbsd-elf.h to and remove
4734         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
4735         tmake_file, and don't lose previous tmake_file contents.
4736         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
4737         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
4738         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
4739         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
4740         (mipsel-*-netbsd*): Rename this to...
4741         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
4742         mips/little.h to tm_file for mips*el-*.
4743         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
4744         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
4745         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
4746
4747 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4748
4749         * pa-protos.h (reg_before_reload_operand): New function prototype.
4750         * pa.c (reg_before_reload_operand): New function implementation.
4751         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
4752         contraints to "*m".
4753
4754 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4755
4756         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
4757
4758 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4759
4760         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
4761         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
4762         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
4763         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
4764         (ENDFILE_SPEC): Undefine.
4765         (STARTFILE_SPEC): Redefine for PA.
4766
4767 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4768
4769         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
4770
4771 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
4772
4773         * config.gcc: Add entries to supported PowerPC --with-cpu
4774         types.
4775
4776 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
4777
4778         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
4779         true for 64-bit mode only SSE registers in 32-bit mode.
4780
4781 2002-01-21  Kazu Hirata  <kazu@hxi.com>
4782
4783         * unwind-dw2.c: Fix formatting.
4784         * unwind-dw2-fde.c: Likewise.
4785         * unwind-dw2-fde.h: Likewise.
4786         * unwind-pe.h: Likewise.
4787         * varasm.c: Likewise.
4788         * varray.h: Likewise.
4789
4790 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
4791
4792         Remove workaround for register stack overwrite bug in mmix.
4793         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
4794         support for TARGET_REG_STACK_FILL_BUG.
4795         * config/mmix/mmix.h: Remove member has_call_without_parameters.
4796         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
4797         Delete.
4798         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
4799         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
4800         -mno-reg-stack-fill-bug-workaround.
4801         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
4802         machine member has_call_without_parameters.
4803         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
4804         -mreg-stack-fill-bug-workaround and
4805         -mno-reg-stack-fill-bug-workaround.
4806         (MMIX Options): Ditto.
4807
4808 2002-01-21  Kazu Hirata  <kazu@hxi.com>
4809
4810         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
4811         as appropriate.
4812         Remove redundant code.
4813
4814 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4815
4816         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
4817         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
4818         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
4819         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
4820         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
4821         out target macro definitions and non-target-specific comments
4822         mostly taken from old versions of the manual.
4823
4824 2002-01-20  Kazu Hirata  <kazu@hxi.com>
4825
4826         * config/h8300/h8300.h: Fix comment formatting.
4827         * config/ia64/aix.h: Likewise.
4828         * config/ia64/ia64-protos.h: Likewise.
4829         * config/ia64/ia64.c: Likewise.
4830         * config/ia64/ia64.h: Likewise.
4831         * config/ia64/ia64intrin.h: Likewise.
4832         * config/ia64/linux.h: Likewise.
4833         * config/ia64/unwind-aix.c: Likewise.
4834         * config/ia64/unwind-ia64.c: Likewise.
4835
4836 2002-01-20  Kazu Hirata  <kazu@hxi.com>
4837
4838         * config/h8300/h8300.c: Revise comments about shift code.
4839
4840 2002-01-20  Kazu Hirata  <kazu@hxi.com>
4841
4842         * config/h8300/h8300.c (function_arg): Update a comment.
4843
4844 2002-01-20  Kazu Hirata  <kazu@hxi.com>
4845
4846         * config/h8300/h8300.md: Update the comments at the beginning
4847         of the file.
4848
4849 2002-01-20  Kazu Hirata  <kazu@hxi.com>
4850
4851         * config/i370/i370.c: Fix comment formatting.
4852         * config/i370/i370.h: Likewise.
4853         * config/i370/i370.md: Likewise.
4854         * config/i370/linux.h: Likewise.
4855
4856 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4857
4858         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
4859
4860         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
4861         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
4862         in incomplete case.
4863
4864 2002-01-20  Graham Stott  <grahams@redhat.com>
4865
4866         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
4867
4868 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4869
4870         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
4871
4872 2002-01-19  Tom Rix  <trix@redhat.com>
4873
4874         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
4875
4876 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
4877
4878         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
4879
4880         * function.c (assign_stack_local_1): Adjust x_frame_offset with
4881         STARTING_FRAME_PHASE.
4882         (STARTING_FRAME_PHASE): New.
4883         (instantiate_virtual_regs): Check saneness of
4884         STARTING_FRAME_PHASE.
4885
4886         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
4887
4888 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
4889
4890         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
4891
4892 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4893
4894         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
4895         be used for bootstrapping GCC 3.0.
4896
4897 2002-01-18  Kazu Hirata  <kazu@hxi.com>
4898
4899         * config/h8300/h8300.md: Fix an insn length.
4900
4901 2002-01-18  Kazu Hirata  <kazu@hxi.com>
4902
4903         * bitmap.h: Fix comment formatting.
4904         * combine.c: Likewise.
4905         * cppfiles.c: Likewise.
4906         * c-pragma.h: Likewise.
4907         * c-typeck.c: Likewise.
4908         * df.c: Likewise.
4909         * dwarf2out.c: Likewise.
4910         * function.c: Likewise.
4911         * gcc.c: Likewise.
4912         * genattrtab.c: Likewise.
4913         * gthr-win32.h: Likewise.
4914         * haifa-sched.c: Likewise.
4915         * predict.c: Likewise.
4916         * rtlanal.c: Likewise.
4917         * rtl.h: Likewise.
4918         * unwind-dw2-fde.h: Likewise.
4919         * unwind-pe.h: Likewise.
4920         * vmsdbgout.c: Likewise.
4921
4922 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4923
4924         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
4925         if type_required and passed decl.
4926
4927 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
4928
4929         * config.gcc (cpu_type): Include altivec.h in powerpc
4930         extra_headers.
4931         Same for darwin.
4932
4933         * config/rs6000/altivec.h: New.
4934
4935 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
4936
4937         * doc/install.texi (*-ibm-aix*): Update assembler and exception
4938         handling information.
4939         * doc/trouble.texi (Interoperation): Add libstdc++ information
4940         for AIX.
4941         (Misunderstandings): Add template instantiation and static template
4942         member information for AIX.
4943
4944 2002-01-17  Jason Merrill  <jason@redhat.com>
4945
4946         * dbxout.c (dbxout_type): Support const and volatile.
4947
4948         * except.c (add_partial_entry): Remove backwards compatibility code.
4949         (end_protect_partials): Likewise.
4950
4951 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
4952
4953         * config/ia64/ia64.md (prologue_use): New.
4954         * config/ia64/ia64.c (ia64_expand_prologue): Use
4955         gen_prologue_use instead of gen_rtx_USE.
4956         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
4957         as CODE_FOR_pred_rel_mutex.
4958         (ia64_sched_reorder2): Likewise.
4959
4960 2002-01-16  Eric Christopher  <echristo@redhat.com>
4961
4962         * config/mips/r3900.h: Reformat.
4963         (SUBTARGET_CPP_SIZE_SPEC): Remove.
4964         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
4965         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
4966         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
4967         * config/mips/t-elf: Remove mips3 multilib.
4968
4969 2002-01-16  H.J. Lu <hjl@gnu.org>
4970
4971         * config/mips/linux.h: Include "mips/abi64.h".
4972
4973 2002-01-16  H.J. Lu <hjl@gnu.org>
4974
4975         * config/mips/t-linux: New.
4976
4977         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
4978
4979         * config/mips/linux.h: Don't include "gofast.h".
4980         (INIT_SUBTARGET_OPTABS): Removed.
4981
4982 2002-01-16  Kazu Hirata  <kazu@hxi.com>
4983
4984         * config/h8300/h8300-protos.h: Replace emit_a_shift with
4985         output_a_shift.
4986         * config/h8300/h8300.c: Likewise.
4987         * config/h8300/h8300.md: Likewise.
4988
4989 2002-01-16  Kazu Hirata  <kazu@hxi.com>
4990
4991         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
4992         spaces after an opcode name.
4993         (pushqi1_h8300hs): Likewise.
4994         (pushhi1_h8300hs): Likewise.
4995
4996 2002-01-16  Kazu Hirata  <kazu@hxi.com>
4997
4998         * doc/extend.texi: Replace "option" with "attribute"
4999         appropriately.
5000
5001 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
5002
5003         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
5004         (and:DI () (const_int -8)).
5005         (split_small_symbolic_mem_operand): Split
5006         (mem (and:DI () (const_int -8)).
5007
5008 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
5009
5010         PR target/5309:
5011         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
5012         same way as TYPE_IMUL.
5013         (ultrasparc_sched_reorder): Likewise.
5014         * config/sparc/sparc.md (type): Add comment to update
5015         ultrasparc_sched_reorder when making changes.
5016
5017 2002-01-16  Kazu Hirata  <kazu@hxi.com>
5018
5019         * doc/invoke.texi: Change the dump file name of block
5020         reordering pass from 28.bbro to 29.bbro.
5021         Mention -dk option.
5022
5023 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
5024
5025         * i386.md (minsf splitter): Fix pasto.
5026
5027 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
5028
5029         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
5030         to frame pointer initialisation instruction.
5031         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
5032         initialisation instruction.
5033         (soft_df_operand): Do not accept the IP register.
5034         (nonimmediate_soft_df_operand): Do not accept the IP register.
5035
5036 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
5037
5038         PR target/5357:
5039         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
5040         MASK_V8 being both set.
5041
5042 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
5043
5044         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
5045         insn for GOT register; add REG_MAYBE_DEAD notes instead.
5046         config/s390/s390.md (call, call_value): Add GOT register to
5047         CALL_INSN_FUNCTION_USAGE where needed.
5048         (call_exp, call_value_exp): New.
5049
5050 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
5051
5052         * config/arm/arm.c: General formatting tidy up.
5053
5054 2002-01-16  Graham Stott  <grahams@redhat.com>
5055
5056         * calls.c (try_to_integrate): Use "(size_t)" intermediate
5057         cast and when casting an integer literal to "rtx" pointer.
5058         (expand_call): Likewise.
5059         * flow.c (try_pre_increment): Likewise.
5060         (find_use_as_address): Likewise.
5061         * integrate.c (expand_iline_function): Likewise.
5062         * regmove.c (try_auto_increment): Likewise.
5063
5064 2002-01-16  Graham Stott  <grahams@redhat.com>
5065
5066         * sched-rgn.c (passed): Use sbitmap_free.
5067         (header): Likewise.
5068         (inner): Likewise.
5069         (in_queue): Likewise.
5070         (in_stack): Likewise.
5071
5072 2002-01-15  Eric Christopher  <echristo@redhat.com>
5073
5074         * flow.c (propagate_one_insn): Change to use fatal_insn.
5075
5076 2002-01-15  Kazu Hirata  <kazu@hxi.com>
5077
5078         * expmed.c (extract_fixed_bit_field): Remove unused code.
5079         * system.h: Poison SLOW_ZERO_EXTEND.
5080         * doc/tm.texi: Remove.
5081         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
5082         * config/arm/arm.h: Likewise.
5083         * config/avr/avr.h: Likewise.
5084         * config/clipper/clipper.h: Likewise.
5085         * config/convex/convex.h: Likewise.
5086         * config/d30v/d30v.h: Likewise.
5087         * config/dsp16xx/dsp16xx.h: Likewise.
5088         * config/elxsi/elxsi.h: Likewise.
5089         * config/fr30/fr30.h: Likewise.
5090         * config/h8300/h8300.h: Likewise.
5091         * config/i370/i370.h: Likewise.
5092         * config/i386/i386.h: Likewise.
5093         * config/m68k/m68k.h: Likewise.
5094         * config/mips/mips.h: Likewise.
5095         * config/ns32k/ns32k.h: Likewise.
5096         * config/pdp11/pdp11.h: Likewise.
5097         * config/pj/pj.h: Likewise.
5098         * config/s390/s390.h: Likewise.
5099         * config/sh/sh.h: Likewise.
5100         * config/stormy16/stormy16.h: Likewise.
5101         * config/v850/v850.h: Likewise.
5102         * config/vax/vax.h: Likewise.
5103         * config/we32k/we32k.h: Likewise.
5104
5105 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
5106
5107         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
5108         (altivec_lvsl): Change constraint to b.
5109         (altivec_lvsr): Same.
5110         (altivec_lvebx): Same.
5111         (altivec_lvehx): Same.
5112         (altivec_lvewx): Same.
5113         (altivec_lvxl): Same.
5114         (altivec_lvx): Same.
5115         (altivec_stvx): Add parallel.
5116         (altivec_stvxl): Same.
5117         (altivec_stvehx): Same.
5118         (altivec_stvebx): Same.
5119         (altivec_stvebx): Same.
5120
5121 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
5122
5123         * config.gcc: Change altivec.h to altivec-defs.h.
5124
5125         * config/rs6000/altivec.h: Delete.
5126
5127         * config/rs6000/altivec-defs.h: Add.
5128
5129 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5130
5131         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
5132         and UMOD modes.
5133
5134         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
5135         less than or equal to eight bytes.
5136
5137         * vax.md (andsi3): Remove constraints and change SET destination
5138         operand type to nonimmediate_operand.
5139         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
5140         when it is a CONST_INT.
5141
5142 2002-01-15  Jason Merrill  <jason@redhat.com>
5143
5144         * c-common.def (FILE_STMT): New code.
5145         * c-common.c (statement_code_p): It's a statement.
5146         * c-common.h (stmt_tree_s): Add x_last_filename.
5147         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
5148         (last_expr_filename): New macro.
5149         * c-semantics.c (begin_stmt_tree): Initialize it.
5150         (add_stmt): If the filename changed, also insert a
5151         FILE_STMT.
5152         (expand_stmt): Handle seeing one.
5153
5154 2002-01-15  Eric Christopher  <echristo@redhat.com>
5155
5156         * flow.c (propagate_one_insn): Add error message and print out
5157         insn for debugging.
5158
5159 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
5160
5161         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
5162         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
5163         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
5164         TRAMPOLINE_ALIGNMENT.
5165         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
5166         to be in bits.
5167         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
5168         PCC_BITFIELD_TYPE_MATTERS.
5169         * config/interix.h (STDC_VALUE): Remove.  Use
5170         STDC_0_IN_SYSTEM_HEADERS.
5171         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
5172         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
5173         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
5174
5175 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5176
5177         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
5178         not work on this platform currently.
5179
5180 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
5181
5182         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
5183         readonly_warning in _().
5184
5185 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
5186
5187         * gcc.c (delete_if_ordinary): Backout previous change.
5188
5189 2002-01-15  Kazu Hirata  <kazu@hxi.com>
5190
5191         * config/h8300/h8300.c (print_operand): Remove support for
5192         unused operand characters.
5193
5194         * read-rtl.c: Fix formatting.
5195         * real.c: Likewise.
5196         * recog.c: Likewise.
5197         * regclass.c: Likewise.
5198         * regmove.c: Likewise.
5199         * reg-stack.c: Likewise.
5200         * reload1.c: Likewise.
5201         * rtlanal.c: Likewise.
5202
5203 2002-01-15  Kazu Hirata  <kazu@hxi.com>
5204
5205         * config/i386/i386.c: Fix formatting.
5206
5207 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
5208
5209         * c-typeck.c (process_init_element): Don't save_expr
5210         COMPOUND_LITERAL_EXPR if just its initializer will be used.
5211
5212 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
5213
5214         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
5215         emit optional traceback table if optimize_size or TARGET_ELF.
5216         * config/rs6000/rs6000.md (prefetch): New.
5217
5218 2002-01-15  Andreas Jaeger  <aj@suse.de>
5219
5220         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
5221
5222 2002-01-15  Kazu Hirata  <kazu@hxi.com>
5223
5224         * mips-tfile.c: Fix formatting.
5225
5226 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
5227
5228         * unroll.c (final_reg_note_copy): Fix previous commit.
5229
5230 2002-01-14  Kazu Hirata  <kazu@hxi.com>
5231
5232         * config/h8300/h8300-protos.h: Remove the prototype for
5233         eq_operator.
5234         * config/h8300/h8300.c (eq_operator): Remove.
5235
5236 2002-01-14  Richard Henderson  <rth@redhat.com>
5237
5238         * config/i386/i386.md (prefetch): Tidy.
5239         (prefetch_3dnow): Fix locality operand.
5240
5241 2002-01-14  Richard Henderson  <rth@redhat.com>
5242
5243         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
5244         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
5245
5246 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
5247
5248         * reload1.c (reload_combine): Pass reg_sum replacement through
5249         copy_rtx in loop performing multiple changes.
5250
5251 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
5252
5253         * except.c (remove_unreachable_regions): New.
5254         (free_eh_status): Clear exception_handler_labels.
5255         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
5256         (find_exception_handler_labels): Don't add the same label more than
5257         once.
5258         (remove_exception_handler_label): Don't die if
5259         find_exception_handler_labels hasn't been called for the current
5260         function yet.
5261
5262 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
5263
5264         * toplev.c (rest_of_compilation): Rebuild jump labels after
5265         gcse.
5266
5267 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
5268
5269         * doc/extend.texi: Move documentation of X86 built-in functions
5270         here.
5271         * doc/invoke.texi: From here.
5272         * doc/sourcebuild.texi: Document location of documentation for
5273         machine built-in functions.
5274
5275 2002-01-13  Christopher Faylor  <cgf@redhat.com>
5276
5277         * cppfiles.c (TEST_THRESHOLD): New macro.
5278         (SHOULD_MMAP): Ditto.
5279         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
5280         be used.
5281
5282 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
5283
5284         * unroll.c (final_reg_note_copy): Properly handle
5285         REG_LABEL
5286         (unroll_loops): Fix LOOP_CONDITION heuristics.
5287
5288 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
5289
5290         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
5291         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
5292
5293 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
5294
5295         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
5296         threaded loop.
5297
5298 2002-01-14  Tom Rix  <trix@redhat.com>
5299
5300         * config/rs6000/rs6000.md: Fix typo with sradi.
5301
5302 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
5303
5304         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
5305         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
5306         (clrstrdi, clrstrsi): Adapt callers.
5307
5308         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
5309
5310         (movti splitter): Never use register 0 as base register.
5311
5312 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
5313
5314         * combine.c (simplify_shift_const): Always generate new rtx
5315         for shift expression instead of reusing given expression.
5316
5317 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5318
5319         * config/alpha/alpha.c (alpha_expand_mov): Don't call
5320         alpha_legitimize_address unless mode is Pmode.
5321
5322 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
5323
5324         * doc/md.texi (Modifiers): Document the '*' constraint for the
5325         user.
5326
5327         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
5328         * doc/extend.texi (Function Attributes): 'interrupt' is valid
5329         for xstormy16 too.
5330
5331 2002-01-13  Richard Henderson  <rth@redhat.com>
5332
5333         * reload.c (find_reloads): Use a hard reg destination as reload reg
5334         for an input reload of the source.
5335
5336 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5337
5338         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
5339         more generic.
5340
5341 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
5342
5343         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
5344         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
5345
5346         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
5347
5348 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5349
5350         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
5351
5352 2002-01-12  Tom Rix  <trix@redhat.com>
5353
5354         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
5355         TARGET_POWERPC64.
5356
5357 2002-01-12  Richard Henderson  <rth@redhat.com>
5358
5359         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
5360
5361         * doc/invoke.texi: Update Alpha options.
5362
5363         * doc/invoke.texi: Update i386 built-in function lists.
5364
5365 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
5366
5367         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
5368         referencing outside.
5369
5370 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5371
5372         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
5373         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
5374         offsets, and change line folding.
5375         * optabs.c (expand_binop): Remove warnings.
5376         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
5377
5378 2002-01-12  Graham Stott <grahams@redhat.com>
5379
5380         * attribs.c (handle_deprecated_attribute): constify WHAT.
5381         * diagnostic.c (warn_deprecated_use): Add braces, fixes
5382         dangling else warning and constify WHAT.
5383         * except.h (struct function, struct inline_remap): Move
5384         struct tag forward defs before all prototypes.
5385         (duplicate_eh_regions): Whitespace.
5386
5387 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
5388
5389         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
5390         MODE_BASE_REG_CLASS.
5391         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
5392
5393 2002-01-12  Richard Henderson  <rth@redhat.com>
5394
5395         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
5396         (ix86_expand_vector_move): New.
5397         (bdesc_2arg): Remove andps, andnps, orps, xorps.
5398         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
5399         Remove old prefetch builtins.  Special case the logicals removed above.
5400         (ix86_expand_builtin): Likewise.
5401         (safe_vector_operand): Use V4SFmode, not TImode.
5402         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
5403         (ix86_expand_timode_binop_builtin): New.
5404         * config/i386/i386-protos.h: Update.
5405         * config/i386/i386.h (enum ix86_builtins): Update.
5406         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
5407         Use ix86_expand_vector_move in vector move expanders.
5408         (movti_internal, movti_rex64): Add xorps alternative.
5409         (sse_clrv4sf): Rename and adjust from sse_clrti.
5410         (prefetch): Don't work so hard.
5411         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
5412         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
5413         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
5414
5415 2002-01-11  Richard Henderson  <rth@redhat.com>
5416
5417         * config/i386/mmintrin.h: New file.
5418         * config/i386/xmmintrin.h: New file.
5419         * config.gcc (i?86-*-*): Add extra_headers.
5420         * simplify-rtx.c (simplify_unary_operation): Handle saturating
5421         truncation codes.
5422         (simplify_binary_operation): Handle saturating arithmetic codes.
5423         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
5424         not the lowpart subreg.
5425         (ix86_expand_builtin): Return a TImode dummy register instead of 0
5426         on error.
5427         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
5428
5429 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5430
5431         * conflict.c (conflict_graph_compute): Free regsets when finished.
5432         * ssa.c (compute_coalesced_reg_partition): Likewise.
5433
5434 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5435
5436         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
5437         every where we allocate a register.
5438
5439 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5440
5441         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
5442         * lcm.c (compute_earliest, compute_farthest): Likewise.
5443
5444 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
5445
5446         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
5447
5448 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
5449
5450         * doc/rtl.texi (Insns): Fix 2 typos.
5451
5452 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5453
5454         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
5455         options.  Use @table @gcctabopt for MMIX options.  Add index
5456         entries for MMIX options.  Start new paragraph with first
5457         heading of the machine-dependent options.
5458
5459 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5460
5461         PR other/5299
5462         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
5463         * combine.c (force_to_mode): Same.
5464         * reload1.c (clear_reload_reg_in_use): Same.
5465
5466 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
5467
5468         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
5469         and 'subtargets'.
5470
5471 2002-01-11  Andreas Jaeger  <aj@suse.de>,
5472             Brad Lucier <lucier@math.purdue.edu>
5473
5474         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
5475         mcpu.
5476
5477 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
5478
5479         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
5480         Protect with IN_LIBGCC.
5481         (LINK_EH_SPEC): Add required trailing space.
5482
5483 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
5484
5485         * c-tree.h: Move function declarations so that they are listed
5486         under the filename which contains them.
5487         (check_identifier, finish_decl_top_level,
5488         lookup_name_current_level_global, shadow_record_fields): Remove.
5489
5490 2002-01-11  Andreas Jaeger  <aj@suse.de>
5491
5492         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
5493         march.
5494
5495 2002-01-10  Richard Henderson  <rth@redhat.com>
5496
5497         * config/alpha/alpha.c (print_operand): Add 'J'.
5498         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
5499         new operand with the sequence number for the lituse.  When splitting
5500         the insns, use gen_movdi_er_high_g and generate a sequence number.
5501         (gen_movdi_er_high_g): Print the sequence number if non-zero.
5502
5503 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
5504
5505         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
5506         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
5507         stvxl.
5508         (altivec_expand_builtin): Same.
5509         (altivec_expand_stv_builtin): New.
5510
5511         * config/rs6000/rs6000.h (rs6000_builtins): Same.
5512
5513         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
5514         ("altivec_lvehx"): New.
5515         ("altivec_lvewx"): New.
5516         ("altivec_lvxl"): New.
5517         ("altivec_lvx"): New.
5518         ("altivec_stvx"): New.
5519         ("altivec_stvebx"): New.
5520         ("altivec_stvehx"): New.
5521         ("altivec_stvewx"): New.
5522         ("altivec_stvxl"): New.
5523
5524 2002-01-10  Richard Henderson  <rth@redhat.com>
5525
5526         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
5527         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
5528         care not to delete instructions twice.
5529
5530 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
5531
5532         * toplev.c: Don't declare environ (it's not used anywhere).
5533         * configure.in: Don't check for declaration of environ.
5534         * config/i386/xm-mingw32.h: Don't #define environ.
5535         * config.in, configure: Regenerate.
5536
5537 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
5538
5539         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
5540         * configure: Regenerate.
5541
5542         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
5543         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
5544         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
5545         alpha/xm-vms.h.
5546         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
5547         LIMITS_H_TEST here, not in m68k/x-next.
5548         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
5549         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
5550
5551         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
5552         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
5553         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
5554
5555         * config/i386/x-djgpp: Renamed i386/t-djgpp.
5556         * config/m88k/x-dolph: Renamed m88k/t-dolph.
5557         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
5558         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
5559         replacement of quadlib.asm with quadlib.c.
5560
5561         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
5562         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
5563         config/rs6000/xm-beos.h: Delete file.
5564
5565         * config.gcc: Update to match above changes.
5566
5567 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5568
5569         * config/h8300/h8300.h: Fix comment typos.
5570         * config/h8300/h8300.md: Likewise.
5571         * config/h8300/lib1funcs.asm: Likewise.
5572
5573 2002-01-10  Dale Johannesen  <dalej@apple.com>
5574
5575         PR optimization/5269
5576         * unroll.c (precondition_loop_p): Make *increment be the correct
5577         sign when n_iterations known, to avoid confusing caller.
5578
5579 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5580
5581         * doc/extend.texi (deprecated): Fix a typo.
5582
5583 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
5584
5585         * basic-block.h (update_br_prob_note): Declare.
5586         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
5587         (try_forward_edges): Care negative frequencies and update note.
5588         (outgoing_edges_match): Tweek conditional merging heuristics.
5589         (try_crossjump_to_edge): use update_br_prob_note.
5590         * cfglayout.c (fixup_reorder_chain): Likewise.
5591         * cfrtl.c (update_br_prob_note): New.
5592         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
5593
5594         * i386.c (ix86_decompose_address): Return -1 if address contains
5595         shift.
5596         (legitimate_address_p): Require ix86_decompose_address to return 1.
5597
5598         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
5599         (cprop_insn): Likewise.
5600
5601 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5602
5603         * toplev.c: Fix formatting.
5604         * tree.c: Likewise.
5605         * tree-dump.c: Likewise.
5606         * unroll.c: Likewise.
5607         * unwind-dw2.c: Likewise.
5608         * unwind-dw2-fde.c: Likewise.
5609         * unwind-dw2-fde-glibc.c: Likewise.
5610         * unwind-sjlj.c: Likewise.
5611
5612 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
5613
5614         * doc/invoke.texi: Document PDP-11 options.
5615
5616 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5617
5618         * config/h8300/h8300.h: Fix formatting.
5619
5620 2002-01-10  Ira Ruben   <ira@apple.com>
5621
5622         Add __attribute__ ((deprecated)).
5623         * extend.texi: Document __attribute__ ((deprecated)).
5624         * invoke.texi: Document -Wno-deprecated-declarations.
5625         * testsuite/g++.dg/other/deprecated.C: New C++ test.
5626         * testsuite/gcc.dg/deprecated.c: New C test.
5627         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
5628         (c_common_attribute_table): Add "deprecated" entry.
5629         (handle_deprecated_attribute): New function.
5630         * c-decl.c (deprecated_states): New enum.
5631         deprecated_state: State of "deprecated" handling.
5632         (start_decl): Set deprecated_state based on attributes.
5633         (grokdeclarator): Test for deprecated uses, propagate attribute.
5634         * c-typeck.c (build_component_ref): Test for deprecated fields.
5635         (build_external_ref): Test for deprecated primaries.
5636         * diagnostic.c (warn_deprecated_use) New function to issue
5637         warnings about __attribute__ ((depricated)) references.
5638         * flags.h (warn_deprecated_decl): Extern declared for
5639         -W[no-]deprecated-declarations option.
5640         * print-tree.c (print_node): Show deprecated flag status.
5641         * toplev.c (warn_deprecated_decl): Defined.
5642         (W_options): Added "deprecated-declaration".
5643         * toplev.h (warn_deprecated_use): Extern declared.
5644         * tree.h (struct tree_common): Define deprecated_flag.
5645         (TREE_DEPRECATED): New macro to access flag.
5646         * cp/call.c (build_call): Test for deprecated calls.
5647         * cp/class.c (add_implicitly_declared_members): Set global
5648         flag to tell grokdeclarator to not issue deprecated warnings.
5649         * cp/cp-tree.h: Add extern for adding_implicit_members.
5650         * cp/decl.c (deprecated_states): New enum.
5651         (start_decl): Set deprecated_state based on attributes.
5652         (grokdeclarator): Test for deprecated uses, propagate attribute.
5653         * cp/lex.c (do_identifier): Test for deprecated primaries.
5654         * cp/typeck.c (build_component_ref): Test for deprecated fields.
5655
5656 2002-01-10  Ira Ruben   <ira@apple.com>
5657
5658         Fix to assign attributes to inline member functions.
5659         * cp/decl.c (start_method): Handle attrlist.
5660
5661 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5662
5663         * combine.c (expand_field_assignment): Use subreg_lsb().
5664
5665 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
5666
5667         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
5668         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
5669         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
5670         Recurse for any operand of AND as long as constant is non-zero.
5671
5672 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5673
5674         * config/h8300/h8300.md: Remove constraints from expanders.
5675
5676 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5677
5678         * varasm.c: Fix formatting.
5679         * varray.c: Likewise.
5680         * vmsdbgout.c: Likewise.
5681         * xcoffout.c: Likewise.
5682
5683 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
5684
5685         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
5686         update edge probabilities to match.
5687
5688 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
5689
5690         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
5691         dependencies.
5692         * doc/languages.texi, doc/sourcebuild.texi: New files.
5693         * doc/configfiles.texi: Make a subsubsection.  Update.
5694         * doc/configterms.texi: Add @node.  Remove warning that this isn't
5695         instructions for building GCC.
5696         * doc/makefile.texi: Make a subsection.
5697         * doc/gccint.texi: Update.
5698
5699 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
5700
5701         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
5702
5703 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
5704
5705         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
5706
5707 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
5708
5709         * optabs.c (expand_fix): Look for wider integer modes first.
5710
5711         * i386.md (mov?f): Avoid the fake const double trick for medium
5712         memory model.
5713         (min?f*/max?f*): Prohibit memory operands for i387 variant.
5714         (fop_df_4): Disable for SSE compilation.
5715
5716 2002-01-10  Graham Stott  <grahams@redhat.com>
5717
5718         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
5719         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
5720
5721 2002-01-10  Richard Henderson  <rth@redhat.com>
5722
5723         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
5724
5725 2002-01-10  Richard Henderson  <rth@redhat.com>
5726
5727         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
5728         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
5729
5730 2002-01-10  Kazu Hirata  <kazu@hxi.com>
5731
5732         * combine.c (can_combine_p): Fix a comment typo.
5733
5734 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
5735
5736         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
5737         empty list correctly.  Change loop index $t to $f for
5738         consistency with rest of Makefile.
5739
5740 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
5741
5742         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
5743         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
5744
5745         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
5746         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
5747         (altivec_init_builtins): Same.
5748         (altivec_expand_unop_builtin): Return NULL_RTX on error.
5749         (altivec_expand_binop_builtin): Same.
5750         (altivec_expand_ternop_builtin): Same.
5751         (bdesc_dst): New.
5752
5753         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
5754         ("altivec_vctuxs"): Fix typo.
5755         ("altivec_vnmsubfp"): Same.
5756         ("altivec_dssall"): New.
5757         ("altivec_mfvscr"): New.
5758         ("altivec_dss"): New.
5759         ("altivec_lvsl"): New.
5760         ("altivec_lvsr"): New.
5761         ("altivec_dstt"): New.
5762         ("altivec_dstst"): New.
5763         ("altivec_dststt"): New.
5764         ("altivec_dst"): New.
5765
5766         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
5767         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
5768
5769 2002-01-09  Richard Henderson  <rth@redhat.com>
5770
5771         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
5772
5773 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
5774
5775         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
5776         function.
5777         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
5778         prototype.
5779         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
5780
5781 2002-01-09  Kazu Hirata  <kazu@hxi.com>
5782
5783         * read-rtl.c: Fix formatting.
5784         * real.c: Likewise.
5785         * regclass.c: Likewise.
5786         * regrename.c: Likewise.
5787         * reg-stack.c: Likewise.
5788         * reload1.c: Likewise.
5789         * reload.c: Likewise.
5790         * rtl.c: Likewise.
5791
5792 2002-01-09  Kazu Hirata  <kazu@hxi.com>
5793
5794         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
5795         to extract items in the expr_list chain.
5796
5797 2002-01-09  Richard Henderson  <rth@redhat.com>
5798
5799         * config/vax/vax.c (vax_rtx_cost): Never abort.
5800
5801         * config/vax/vax.h (REAL_ARITHMETIC): Define.
5802
5803 2002-01-09  Jan Hubicka  <jh@suse.cz>
5804
5805         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
5806
5807 2002-01-09  Richard Henderson  <rth@redhat.com>
5808
5809         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
5810         Unify code from various alternatives.
5811
5812 2002-01-09  Richard Henderson  <rth@redhat.com>
5813
5814         * regrename.c (copy_value): Ignore the copy if the source register
5815         is present in the value chain with a narrower mode.
5816
5817 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
5818
5819         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
5820         for the c4x target. Also improve layout.
5821
5822 2002-01-09  Richard Henderson  <rth@redhat.com>
5823
5824         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
5825         * config/m32r/m32r.md (and ior xor splitters): Swap operands
5826         to match insn patterns.
5827
5828 2002-01-09  Richard Henderson  <rth@redhat.com>
5829
5830         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
5831         (copyprop_hardreg_forward_1): Likewise.
5832
5833 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5834
5835         * pa.md (decrement_and_branch_until_zero): Change predicate for
5836         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
5837
5838 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5839
5840         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
5841         gets undefined. For Darwin.
5842
5843 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5844
5845         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
5846
5847 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5848
5849         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
5850
5851 2002-01-08  Richard Henderson  <rth@redhat.com>
5852
5853         * regrename.c (copy_value): Ignore overlapping copies.
5854
5855 2002-01-08  Richard Henderson  <rth@redhat.com>
5856
5857         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
5858         as needed to avoid shared structure.
5859
5860 2002-01-08  Kazu Hirata  <kazu@hxi.com>
5861
5862         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
5863         H8/300H and H8/S.
5864
5865 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
5866
5867         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
5868         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
5869         documentation of obsolete macros.
5870         * system.h: Poison these macros.
5871         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
5872         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
5873         config/c4x/c4x.h, config/clipper/clipper.h,
5874         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
5875         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
5876         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
5877         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
5878         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
5879         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
5880         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
5881         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
5882         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
5883         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
5884         config/sparc/sparc.h, config/stormy16/stormy16.h,
5885         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
5886         definitions and commented out definitions of obsolete macros.
5887         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
5888         of MAX_INT_TYPE_SIZE.
5889
5890 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
5891
5892         * config/s390/s390.c (s390_preferred_reload_class): Never
5893         return ADDR_REGS if it isn't a subset of the given class.
5894         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
5895         FP_REGS, but all superclasses as well.
5896
5897         * config/s390/s390.c (s390_function_profiler): Fix thinko.
5898
5899         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
5900         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
5901         must not be a const_int.
5902
5903 2002-01-08  Richard Henderson  <rth@redhat.com>
5904
5905         * Makefile.in (toplev.o): Depend on options.h.
5906         (gcc.o): Depend on specs.h.
5907
5908 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
5909
5910         * expr.c (store_expr): Convert VOIDmode constants back to target's
5911         mode.
5912
5913 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5914
5915         * doc/invoke.texi: Markup gcc as @command.  Refer to
5916         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
5917         of http://gcc.gnu.org/thanks.html.
5918
5919 2002-01-08  Dale Johannesen  <dalej@apple.com>
5920
5921         * config/rs6000/rs6000.md: Add missing int register
5922         target case to movdf_low.
5923
5924 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
5925
5926         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
5927         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
5928         (cppinit.o): Depend on except.h.
5929         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
5930         s-specs): New rules.
5931
5932         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
5933         Don't create specs.h/options.h/gencheck.h here.  Remove
5934         unnecessary variable settings from last argument of AC_OUTPUT.
5935         * config.in, configure: Regenerate.
5936         * intl.c: Hardcode package name as "gcc".
5937
5938         * cppinit.c: Include except.h.
5939         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
5940         appropriate.
5941         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
5942         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
5943         (!)USING_SJLJ_EXCEPTIONS.
5944         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
5945
5946 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
5947
5948         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
5949         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
5950         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
5951         documentation of obsolete macros.
5952         * system.h: Poison these macros.
5953         * config/d30v/d30v.h, config/ns32k/encore.h,
5954         config/stormy16/stormy16.h: Remove definitions and commented out
5955         definitions of obsolete macros.
5956
5957 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
5958
5959         * objc/objc-act.c (handle_class_ref): Mark the declaration of
5960         %sobjc_class_ref_%s as used - to prevent unwanted compiler
5961         warnings.
5962
5963 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
5964
5965         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
5966         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
5967         to insn adjusting stack/frame pointer.
5968         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
5969         accept operands that cause the insn to be non-splittable.
5970
5971 2002-01-08  Graham Stott  <grahams@redhat.com>
5972
5973         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
5974         (C_TYPE_FIELDS_VOLATILE): Likewise.
5975         (C_TYPE_BEING_DEFINED): Likewise.
5976         (C_IS_RESERVED_WORD): Likewise.
5977         (C_TYPE_VARIABLE_SIZE): Likewise.
5978         (C_DECL_VARIABLE_SIZE): Likewise.
5979         (C_MISSING_PROTOTYPE_WARNED): Likewise.
5980         (C_SET_EXP_ORIGINAL_CODE): Likewise.
5981         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
5982         parenthesis.
5983         (C_DECL_ANTICIPATED): Likewise.
5984         (c_build_type_variant): Add parenthesis.
5985
5986 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
5987
5988         * gcc.c (option_map): Remove --version.
5989         (process_command): Handle -fversion following the GNU Coding
5990         Standards.  Partially addresses PR other/704.
5991
5992 2002-01-08  Graham Stott  <grahams@redhat.com>
5993
5994         * combine.c (combine_instructions): Fix typo.
5995
5996 2002-01-08  Graham Stott  <grahams@redhat.com>
5997
5998         * debug.h: Use "tree" and "rtx" throughout.
5999
6000         * debug.c: Likewise.
6001
6002 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
6003
6004         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
6005         constant pool, use the pool's version of the symbol instead.
6006
6007 2002-01-07  Richard Henderson  <rth@redhat.com>
6008
6009         * regrename.c (find_oldest_value_reg): Ignore the value chain if
6010         the original register was copied in a mode with a fewer number of
6011         hard registers than the desired mode.
6012         (copyprop_hardreg_forward_1): Likewise.
6013         (debug_value_data): Fix loop test.
6014         * toplev.c (parse_options_and_default_flags): Reenable
6015         -fcprop-registers at -O1.
6016
6017 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
6018
6019         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
6020         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
6021
6022         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
6023         predicates.
6024
6025         * config/rs6000/rs6000.md: Add altivec predicate patterns.
6026
6027 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6028
6029         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
6030         (pa_output_function_prologue): Output local label at the beginning of
6031         the prologue when profiling.
6032         (hppa_profile_hook): Use the local label rather than the function label.
6033         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
6034
6035 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
6036
6037         * config/rs6000/rs6000.c (print_operand): Remove extra space.
6038         (altivec_expand_unop_builtin): Fix thinko.
6039         (altivec_expand_binop_builtin): Same.
6040         (altivec_expand_ternop_builtin): Same.
6041         (altivec_expand_builtin): Same.
6042
6043 2002-01-07  Richard Henderson  <rth@redhat.com>
6044
6045         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
6046
6047 2002-01-07  Jason Merrill  <jason@redhat.com>
6048
6049         * unwind-dw2.c (execute_cfa_program): Use < again.
6050
6051 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
6052
6053         * predict.c (combine_predictions_for_insn): Avoid division by zero.
6054
6055 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
6056
6057         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
6058         Don't allow -1 - x -> ~x simplifications in the first pass.
6059
6060 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
6061
6062         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
6063         arguments.
6064         (altivec_expand_binop_builtin): Same.
6065         (altivec_expand_unop_builtin): Same.
6066         (print_operand): Fix typo.
6067         (bdesc_1arg): Add vupk* variants.
6068
6069         * rs6000.h (rs6000_builtins): Add vupk* enums.
6070
6071         * rs6000.md: Add altivec_vupk* variants.
6072
6073 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
6074
6075         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
6076         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
6077         and last update dates.
6078
6079 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
6080
6081         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
6082
6083 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6084
6085         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
6086         * config/avr/avr.h (CPP_SPEC): Likewise.
6087         (LINK_SPEC): Likewise.
6088         (CRT_BINUTILS_SPECS): Likewise.
6089         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6090         * doc/invoke.texi (AVR Options): Document them.
6091
6092 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
6093
6094         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
6095         LABEL_NUSES.
6096
6097 2002-01-07  Graham Stott  <grahams@redhat.com>
6098
6099         * config/i386/i386.h: Update copyright date.
6100         (HALF_PIC_PTR): Add parenthesis.
6101         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
6102         (CONSTANT_ALIGNMENT): Add parenthesis.
6103         (DATA_ALIGNMENT): Likewise.
6104         (LOCAL_ALIGNMENT): Likewise.
6105         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
6106         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
6107         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
6108         (HARD_REGNO_NREGS): Add paranethesis.
6109         (VALID_SSE_REG_MODE): Whitespace.
6110         (VALID_MMX_REG_MODE): Whitespace.
6111         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
6112         (ix86_hard_regno_mode_ok): Add parenthesis.
6113         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
6114         (RETURN_IN_MEMORY): Whitespace.
6115         (N_REG_CLASSES): Add parenthesis.
6116         (INTEGER_CLASS_P): Add parenthesis and wrap.
6117         (FLOAT_CLASS_P): Likewise.
6118         (SSE_CLASS_P): Likewise.
6119         (MMX_CLASS_P): Likewise.
6120         (MAYBE_INTEGER_CLASS_P): Likewise.
6121         (MAYBE_FLOAT_CLASS_P): Likewise.
6122         (MAYBE_SSE_CLASS_P): Likewise.
6123         (MAYBE_MMX_CLASS_P): Likewise.
6124         (Q_CLASS_P): Likewise.
6125         (GENERAL_REGNO_P): Uppercase macro parameter.
6126         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
6127         (FP_REGNO_P): Likewise.
6128         (ANY_FP_REGNO_P): Uppercase macro parameter.
6129         (SSE_REGNO_P): Likewise.
6130         (SSE_REGNO): Likewise.
6131         (SSE_REG_P): Likewise.
6132         (SSE_FLOAT_MODE_P): Likewise.
6133         (MMX_REGNO_P): Likewise.
6134         (MMX_REG_P):Likewise.
6135         (STACK_REG_P): Likewise.
6136         (NON_STACK_REG_P): Likewise.
6137         (STACK_TOP_P): Likewise.
6138         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
6139         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
6140         (SECONDARY_MEMORY_NEEDED): Likewise.
6141         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
6142         (MD_ASM_CLOBBERS): Whitespace and wrap.
6143         (MUST_PASS_IN_STACK): Whitespace and wrap.
6144         (RETURN_POPS_ARGS): Add parenthesis.
6145         (INIT_CUMULATIVE_ARGS): Likewise.
6146         (FUNCTION_ARG): Likewise.
6147         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
6148         (SETUP_INCOMING_VARARGS): Likewise.
6149         (BUILD_VA_LIST_TYPE):  Add parenthesis.
6150         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
6151         parenthsis.
6152         (EXPAND_BUILTIN_VA_ARG): Likewise.
6153         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
6154         (INITIALIZE_TRAMPOLINE): Add parenthesis.
6155         (INITIAL_ELIMINATION_OFFSET): Likewise.
6156         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
6157         (REGNO_OK_FOR_BASE_P): Likewise.
6158         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
6159         (REGNO_OK_FOR_DIREG_P): Likewise.
6160         (REG_OK_FOR_INDEX_P): Whitespace.
6161         (REG_OK_FOR_BASE_P): Whitespace.
6162         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
6163         parenthesis.
6164         (FIND_BASE_TERM): Fix typo.
6165         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
6166         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
6167         (SYMBOLIC_CONST; Whitespace.
6168         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
6169         (ENCODE_SECTION_INFO): Whitespace.
6170         (FINALIZE_PIC): Remove do { ... } while (0).
6171         (PROMOTE_MODE): Wrap in do { ... } while (0).
6172         (CONST_COSTS): Whitespace.
6173         (RTX_COSTS): Add paramethesis, whitespace and wrap.
6174         (REGISTER_MOVE_COST): Add parenthesis.
6175         (MEMORY_MOVE_COST): Likewise.
6176         (EXTRA_CC_MODES): Whitespace.
6177         (SELECT_CC_MODE): Add parenthesis and whitespace.
6178         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
6179         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
6180         (ASM_OUTPUT_LABEL): Add paramethesis.
6181         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
6182         (ASM_OUTPUT_REG_POP): Likewise.
6183         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
6184         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6185
6186         * config/i386/i386.c: Update copyright.
6187         (CHECK_STACK_LIMIT): Add parenthesis.
6188         (AT_BP): Uppercase macro parameter.
6189         (x86_64_int_parameter_registers): Constify.
6190         (x86_64_int_return_registers): Likewise.
6191         (ix86_compare_op0): Use rtx.
6192         (construct_container): Constify INTREG parameter.
6193         (function_arg): Use rtx.
6194
6195         * diagnostic.h: Update copyright date.
6196         (output_buffer_state): Add parenthesis.
6197         (output_buffer_format_args): Likewise.
6198
6199         * combine.c (combine_instructions): Replace XEXP (links, 0)
6200         with link.
6201
6202 2002-01-06  H.J. Lu <hjl@gnu.org>
6203
6204         * cfgcleanup.c (thread_jump): Fix 2 typos.
6205
6206 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
6207
6208         * config.gcc: Add support for --enable-altivec.
6209
6210 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
6211
6212         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
6213
6214 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
6215
6216         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
6217         __objc_class_name_*.
6218
6219 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
6220
6221         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
6222
6223 2002-01-06  Richard Henderson  <rth@redhat.com>
6224
6225         * reorg.c (emit_delay_sequence): Remove death notes, not merely
6226         nop them out.  Increment label reference count for REG_LABEL.
6227         (fill_slots_from_thread): Frob label reference count around
6228         delete_related_insns.
6229
6230 2002-01-05  Richard Henderson  <rth@redhat.com>
6231
6232         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
6233         jump threading.
6234
6235 2002-01-05  Richard Henderson  <rth@redhat.com>
6236
6237         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
6238         * integrate.c (output_inline_function): Likewise.
6239         * toplev.c (rest_of_compilation): Do it here instead.  Move call
6240         to remove_unnecessary_notes after emitting abstract instance.
6241         Force an emitted nested function to have its parent emited as well.
6242         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
6243         for null.
6244         (rtl_for_decl_location): Do not look at reload data structures
6245         before reload has run.
6246
6247 2002-01-05  Kazu Hirata  <kazu@hxi.com>
6248
6249         * cse.c: Fix formatting.
6250         * dwarf2asm.c: Likewise.
6251         * dwarf2out.c: Likewise.
6252         * explow.c: Likewise.
6253         * expmed.c: Likewise.
6254         * function.c: Likewise.
6255         * gcov.c: Likewise.
6256         * gencheck.c: Likewise.
6257         * genrecog.c: Likewise.
6258         * ggc-common.c: Likewise.
6259         * ggc-page.c: Likewise.
6260         * global.c: Likewise.
6261
6262 2002-01-05  Kazu Hirata  <kazu@hxi.com>
6263
6264         * combine.c: Fix formatting.
6265
6266 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
6267
6268         PR middle-end/1557
6269         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
6270
6271 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
6272
6273         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
6274         as 1 for __powerpc64__ as well.
6275
6276         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
6277
6278         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
6279         return it.
6280
6281 2002-01-05  Daniel Berlin  <dan@dberlin.org>
6282
6283         * lcm.c: Revert change, due to performance regression it causes on
6284         SPEC because it's slightly more conservative (sigh, I hate
6285         edge-based LCM).
6286
6287 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
6288
6289         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
6290
6291 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
6292
6293         * doc/cppinternals.texi: Update.
6294
6295 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
6296
6297         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
6298         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
6299         negatives.
6300         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
6301         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
6302         kludge for pre-october-14th mmix versions to handle new-found bug
6303         with PUSHJ/PUSHGO and the register stack.
6304         * config/mmix/mmix.h (struct machine_function): Rename member
6305         has_call_value_without_parameters to has_call_without_parameters.
6306         All referers changed.
6307         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
6308         TARGET_MASK_BRANCH_PREDICT): New macros.
6309         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
6310         -mno-reg-stack-fill-bug-workaround.
6311         * config/mmix/mmix.md ("call"): Set struct machine member
6312         has_call_without_parameters.
6313
6314 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
6315
6316         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
6317
6318 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
6319
6320         * cfgcleanup.c: Include tm_p.h
6321         (mark_effect): Fix handling of hard register; fix handling of SET
6322
6323 2002-01-04  Kazu Hirata  <kazu@hxi.com>
6324
6325         * config/h8300/h8300.md (anonymous patterns): Check that
6326         operands are registers before using REGNO on them.
6327
6328 2002-01-03  Roland McGrath  <roland@frob.com>
6329
6330         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
6331
6332 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
6333
6334         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
6335         * c-common.h (genrtl_expr_stmt_value): Likewise.
6336         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
6337         (expand_expr_stmt_value): Add maybe_last argument.
6338         Don't warn about statement with no effect if it is the last statement
6339         in expression statement.
6340         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
6341         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
6342         expand_expr_stmt_value.
6343         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
6344         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
6345         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
6346         as maybe_last to expand_expr_stmt_value.
6347
6348 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
6349
6350         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
6351         be passed in, do not build it.
6352         (c_begin_if_stmt): New function.
6353         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
6354         * c-common.h (c_expand_start_cond): Update prototype.
6355         (c_begin_if_stmt): Prototype new function.
6356         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
6357         * c-parse.in (if_prefix): Use c_begin_if_stmt,
6358         c_begin_while_stmt and c_finish_while_stmt_cond.
6359
6360 2002-01-04  William Cohen  <wcohen@redhat.com>
6361
6362         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
6363         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
6364         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
6365         * config/pa/som.h (ASM_FILE_START): Likewise.
6366
6367 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
6368
6369         * lcm.c: Include df.h.
6370         Add available_transfer_function prototype.
6371         (compute_available): Rework to use iterative dataflow framework.
6372         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
6373         with bb_info in df.h
6374         (available_transfer_function): New function.
6375
6376         * Makefile.in (lcm.o): add df.h to dependencies.
6377
6378 2002-01-04  Richard Henderson  <rth@redhat.com>
6379
6380         * config/alpha/alpha.c (some_operand): Accept HIGH.
6381         (input_operand): Likewise; accept simple references to globals.
6382         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
6383         (alpha_const_double_ok_for_letter_p): Likewise.
6384         (alpha_extra_constraint): Likewise.
6385         (alpha_preferred_reload_class): Likewise.  Do not force
6386         symbolic constants to memory.
6387         (alpha_legitimate_address_p): Accept simple references
6388         to small_symbolic_operand.
6389         (alpha_legitimize_address): New arg scratch.  Be prepared to be
6390         called when no_new_pseudos.  Emit simple symbolic references.
6391         Split integers into low, high, and rest.
6392         (alpha_expand_mov): Use alpha_legitimize_address.
6393         (some_small_symbolic_mem_operand): New.
6394         (split_small_symbolic_mem_operand): New.
6395         * config/alpha/alpha-protos.h: Update.
6396         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
6397         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
6398         (EXTRA_CONSTRAINT): Likewise.
6399         (PREFERRED_RELOAD_CLASS): Likewise.
6400         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
6401         (PREDICATE_CODES): Update.
6402         * config/alpha/alpha.md: New post-reload splitters to convert
6403         simplfied symbolic operands to the form that references $29.
6404         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
6405         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
6406
6407 2002-01-03  Richard Henderson  <rth@redhat.com>
6408
6409         * local-alloc.c (function_invariant_p): Update commentary.
6410
6411 2002-01-04  H.J. Lu <hjl@gnu.org>
6412
6413         * toplev.c (rest_of_compilation): Fix a typo when calling
6414         cleanup_cfg.
6415
6416 2002-01-03  Kazu Hirata  <kazu@hxi.com>
6417
6418         * c-common.c: Fix formatting.
6419         * diagnostic.c: Likewise.
6420         * doloop.c: Likewise.
6421         * dwarf2out.c: Likewise.
6422
6423 2002-01-03  Kazu Hirata  <kazu@hxi.com>
6424
6425         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
6426         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
6427
6428 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6429
6430         * cpperror.c: Update comments and copyright.
6431         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
6432         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
6433
6434 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6435
6436         * collect2.c (main): Use strcmp when testing for "-shared".
6437
6438 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6439
6440         * cppmacro.c: Don't include intl.h.  Update comments.
6441         (new_number_token): Allocate enough buffer for 64-bit unsigned
6442         integers; update prototype.
6443         * cppmain.c: Update comments.
6444
6445 2002-01-03  William Cohen  <wcohen@redhat.com>
6446
6447         * function.h (struct function): Add profile.
6448         (current_function_profile): New.
6449         doc/extend.texi: Update documentation.
6450         * final.c (final_start_function): Use current_function_profile
6451         instead of profile_flag.
6452         (profile_after_prologue): Likewise.
6453         * function.c (expand_function_start): Likewise.
6454         (expand_function_start): Likewise.
6455         * config/alpha/alpha.c (direct_call_operand):
6456         (alpha_does_function_need_gp): Likewise.
6457         (alpha_expand_prologue): Likewise.
6458         * config/arm/arm.c (arm_expand_prologue): Likewise.
6459         thumb_expand_prologue: Likewise.
6460         * config/d30v/d30v.c (d30v_stack_info): Likewise.
6461         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
6462         (fr30_expand_prologue): Likewise.
6463         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
6464         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
6465         * config/i386/i386.h (FINALIZE_PIC): Likewise.
6466         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
6467         * config/i960/i960.c (i960_output_function_prologue): Likewise.
6468         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
6469         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
6470         (m32r_expand_prologue): Likewise.
6471         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
6472         (m88k_expand_prologue): Likewise.
6473         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
6474         * config/mips/mips.c (compute_frame_size): Likewise.
6475         (mips_expand_prologue): Likewise.
6476         (mips_can_use_return_insn): Likewise.
6477         * config/pa/elf.h (ASM_FILE_START): Likewise.
6478         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
6479         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
6480         * config/pa/som.h (ASM_FILE_START): Likewise.
6481         * config/romp/romp.c (romp_using_r14): Likewise.
6482         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
6483         (rs6000_stack_info): Likewise.
6484         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6485         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
6486         * config/v850/v850.c (compute_register_save_size): Likewise.
6487
6488 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
6489
6490         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
6491         gen_lowpart_common fails, use gen_lowpart_SUBREG.
6492
6493 2002-01-03  Turly O'Connor  <turly@apple.com>
6494
6495         * darwin.c (machopic_output_possible_stub_label): Don't generate
6496         stub routines for pseudo-stubs which we've just defined.
6497
6498 2002-01-03  Kazu Hirata  <kazu@hxi.com>
6499
6500         * builtins.c: Fix formatting.
6501         * c-typeck.c: Likewise.
6502         * combine.c: Likewise.
6503         * expr.c: Likewise.
6504         * loop.c: Likewise.
6505
6506 2002-01-03  Andreas Schwab  <schwab@suse.de>
6507
6508         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
6509         and return true if _cpp_push_next_buffer pushed a new include
6510         file.
6511         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
6512         _cpp_pop_file_buffer did not push a new file.
6513         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
6514
6515 2002-01-02  Eric Christopher  <echristo@redhat.com>
6516
6517         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
6518         FIND_REG_INC_NOTE call. Update copyright.
6519         * loop.c (canonicalize_condition): Ditto.
6520         * reorg.c (delete_scheduled_jump): Ditto.
6521
6522 2002-01-03  Kazu Hirata  <kazu@hxi.com>
6523
6524         * gcse.c: Fix formatting.
6525
6526 2002-01-03  Graham Stott  <grahams@redhat.com>
6527
6528         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
6529         forward defs for struct tags rtx_def, union_tree, rtvec_def
6530         also output corresponding typedefs for rtx, tree, and rtvec.
6531
6532         * system.h: Move forward defs for struct tags rtx_def, union_tree,
6533         rtvec_def along with corresponding typedefs for rtx, tree, and
6534         rtvec to config.h, hconfig.h, tconfig.h.
6535
6536 2002-01-03  Graham Stott  <grahams@redhat.com>
6537
6538         * tree.h: Update copyright date.
6539         (IS_EXPR_CODE_CLASS): Add parenthesis.
6540         (TREE_SET_CODE): Add whitespace.
6541         (TREE_CHECK): Add parenthesis.
6542         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
6543         (CST_OR_CONSTRUCTOR_CHECK):
6544         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
6545         (TREE_SYMBOL_REFERENCED): Whitespace.
6546         (INT_CST_LT): Likewise.
6547         (INT_CST_LT_UNSIGNED): Likewise.
6548         (tree_real_cst): Unwrap comment.
6549         (tree_string): Likewise.
6550         (tree_complex): Likewise.
6551         (IDENTIFIER_POINTER): correct cast.
6552         (SAVE_EXPR_CONTEXT): Whitespace.
6553         (EXPR_WFL_FILENAME_NODE): Likewise.
6554         (EXPR_WFL_FILENAME): Remove parenthesis.
6555         (DECL_ORIGIN): Add parenthesis.
6556         (DECL_FROM_INLINE): Use NULL_TREE.
6557         (build_int_2): Whitespace.
6558         (build_type_variant): Add parenthesis.
6559
6560         * gcc/jcf-parse.c: Update copyright date.
6561         (yyparse): Constify resource_filename.
6562
6563 2002-01-03  Graham Stott  <grahams@redhat.com>
6564
6565         * rtl.h: Update copyright date.
6566         (RTL_CHECK1): Wrap long line.
6567         (RTL_CHECK2): Likewise.
6568         (RTL_CHECKC1): Wrap long line and whitespace.
6569         (RTL_CHECKC2): Likewise.
6570         (XWINT): Whitespace.
6571         (XINT): Likewise.
6572         (XSTR): Likewise.
6573         (XEXP): Likewise.
6574         (XVEC): Likewise.
6575         (XMODE): Likewise.
6576         (XBITMAP): Likewise.
6577         (XTREE): Likewise.
6578         (XBBDEF): Likewise.
6579         (XTMPL): Likewise.
6580         (X0WINT): Likewise.
6581         (X0INT):Likewise.
6582         (X0UINT): Likewise.
6583         (X0STR): Likewise.
6584         (X0EXP): Likewise.
6585         (X0VEC): Likewise.
6586         (X0MODE): Likewise.
6587         (X0BITMAP): Likewise.
6588         (X0TREE): Likewise.
6589         (X0BBDEF): Likewise.
6590         (X0ADVFLAGS): Likewise.
6591         (X0CSELIB): Likewise.
6592         (X0MEMATTR): Likewise.
6593         (XCWINT): Likewise.
6594         (XCINT): Likewise.
6595         (XCUINT): Likewise.
6596         (XCSTR): Likewise.
6597         (XCEXP): Likewise.
6598         (XCVEC): Likewise.
6599         (XCMODE): Likewise.
6600         (XCBITMAP): Likewise.
6601         (XCTREE): Likewise.
6602         (XCBBDEF): Likewise.
6603         (XCADVFLAGS): Likewise.
6604         (XCCSELIB): Likewise.
6605         (XC2EXP): Likewise.
6606         (INSN_UID): Likewise.
6607         (PREV_INSN): Likewise.
6608         (PATTERN): Likewise.
6609         (INSN_CODE): Likewise.
6610         (PUT_REG_NOTE_KIND): Likewise.
6611         (CODE_LABEL_NUMBER): Likewise.
6612         (NOTE_SOURCE_FILE): Likewise.
6613         (NOTE_BLOCK): Likewise.
6614         (NOTE_EH_HANDLER): Likewise.
6615         (NOTE_RANGE_INFO): Likewise.
6616         (NOTE_LIVE_INFO): Likewise.
6617         (NOTE_BASIC_BLOCK): Likewise.
6618         (NOTE_EXPECTED_VALUE): Likewise.
6619         (NOTE_LINE_NUMBER): Likewise.
6620         (LABEL_NAME): Likewise.
6621         (LABEL_NUSES): Likewise.
6622         (LABEL_ALTERNATE_NAME): Likewise.
6623         (ADDRESSOF_DECL): Likewise.
6624         (JUMP_LABEL): Likewise.
6625         (LABEL_NEXTREF): Likewise.
6626         (REGNO): Likewise.
6627         (ORIGINAL_REGNO: Likewise.
6628         (HARD_REGISTER_NUM_P): Add parenthesis.
6629         (SUBREG_REG): Whitespace.
6630         (SUBREG_BYTE): Likewise.
6631         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
6632         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
6633         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
6634         (ASM_OPERANDS_INPUT_VEC): Likewise.
6635         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
6636         (ASM_OPERANDS_INPUT): Likewise.
6637         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
6638         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
6639         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
6640         (ASM_OPERANDS_INPUT_MODE): Likewise.
6641         (ASM_OPERANDS_SOURCE_FILE): Likewise.
6642         (ASM_OPERANDS_SOURCE_LINE): Likewise.
6643         (MEM_SET_IN_STRUCT_P): Minor reformat.
6644         (TRAP_CONDITION): Whitespace.
6645         (TRAP_CODE): Likewise.
6646         (COND_EXEC_TEST): Likewise.
6647         (COND_EXEC_CODE): Likewise.
6648         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
6649         (PHI_NODE_P): Add parenthesis.
6650         (plus_constant): Whitespace and add parenthesis.
6651
6652 2002-01-03  Kazu Hirata  <kazu@hxi.com>
6653
6654         * config/avr/avr.c: Fix comment typos.
6655         * config/c4x/c4x.md: Likewise.
6656         * config/dsp16xx/dsp16xx.h: Likewise.
6657         * config/dsp16xx/dsp16xx.md: Likewise.
6658         * config/i386/i386.md: Likewise.
6659         * config/ia64/ia64.c: Likewise.
6660         * config/m32r/m32r.h: Likewise.
6661         * config/m68hc11/m68hc11.md: Likewise.
6662         * config/mmix/mmix.c: Likewise.
6663         * config/mn10200/mn10200.c: Likewise.
6664         * config/romp/romp.c: Likewise.
6665         * config/sh/sh.c: Likewise.
6666         * config/stormy16/stormy16.c: Likewise.
6667         * config/stormy16/stormy16.h: Likewise.
6668         * config/stormy16/stormy16.md: Likewise.
6669
6670 2002-01-03  Graham Stott  <grahams@redhat.com>
6671
6672         * loop.h: Update copyright date.
6673         (LOOP_MOVABLES): Fix typo.
6674         (LOOP_REGS): Likewise.
6675         (LOOP_IVS): Likewise.
6676
6677 2002-01-03  Graham Stott  <grahams@redhat.com>
6678
6679         * cppinit.c: Update copyright date.
6680         Don't include output.h
6681         * Makefile.in: Update copyright date.
6682         Update dependency.
6683
6684 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
6685
6686         PR c/5226
6687         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
6688         (-pthread) Add to RS/6000 options.
6689
6690 2002-01-02  Kazu Hirata  <kazu@hxi.com>
6691
6692         * except.c: Fix comment typos.
6693         * loop.c: Likewise.
6694         * varasm.c: Likewise.
6695         * doc/tm.texi: Fix a typo.
6696
6697 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
6698
6699         * c-typeck.c (output_init_element): Allow initializing static storage
6700         duration objects with compound literals.
6701
6702 2002-01-02  Richard Henderson  <rth@redhat.com>
6703
6704         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
6705         after abusing it.
6706
6707 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6708
6709         * gcc.c (default_compilers): Const-ify.
6710         * mips-tdump.c (stab_names): Likewise.
6711         * mips-tfile.c (map_coff_types, map_coff_storage,
6712         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
6713         pseudo_ops_t, pseudo_ops): Likewise.
6714         * protoize.c (default_include): Likewise
6715
6716         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
6717         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
6718         Add array size in declaration.
6719         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
6720         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
6721         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
6722         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
6723         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
6724         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
6725         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
6726         emtens, make_nan): Const-ify.
6727         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
6728         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
6729
6730 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6731
6732         * config.gcc (ia64-*-*): Set extra_headers.
6733         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
6734         * config/alpha/t-osf: Remove.
6735         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
6736
6737 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
6738
6739         * config/rs6000/t-aix43: Revert previous change.
6740
6741 2002-01-02  Jason Merrill  <jason@redhat.com>
6742
6743         * c-decl.c (c_expand_body): Call outlining_inline_function when
6744         emitting an inline function out of line.
6745
6746 2002-01-02  Richard Henderson  <rth@redhat.com>
6747
6748         * dwarf2out.c (limbo_die_node): Add created_for member.
6749         (new_die): New argument created_for.  Update all callers.
6750         (mark_limbo_die_list): New.
6751         (dwarf2out_init): Register limbo_die_list as a root.
6752         (dwarf2out_finish): Force insert limbo dies into their function
6753         context.
6754
6755 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
6756
6757         PR c++/5089
6758         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
6759
6760 2002-01-02  Kazu Hirata  <kazu@hxi.com>
6761
6762         * config/h8300/fixunssfsi.c: Update copyright.
6763         Fix comment typos.
6764         Fix formatting.
6765         * config/h8300/h8300.c: Update copyright.
6766         Eliminate warnings.
6767
6768 2002-01-02  Kazu Hirata  <kazu@hxi.com>
6769
6770         * config/romp/romp.c: Fix comment formatting.
6771         * config/romp/romp.h: Likewise.
6772         * config/romp/romp.md: Likewise.
6773         * config/s390/s390.c: Likewise.
6774         * config/stormy16/stormy16.c: Likewise.
6775         * config/stormy16/stormy16.h: Likewise.
6776
6777 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
6778
6779         * c-common.h (genrtl_expr_stmt_value): Declare.
6780         * c-semantics.c (genrtl_goto_stmt): Redirect to...
6781         (genrtl_goto_stmt_value): ... this new function.  Pass new
6782         argument down to expand_expr_stmt_value, taking
6783         TREE_ADDRESSABLE into account.
6784         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
6785         STMT_EXPR as addressable, i.e., one whose result we want.
6786         * expr.c (expand_expr): Don't save expression statement value
6787         of labeled_blocks or loop_exprs.
6788         * stmt.c (expand_expr_stmt): Redirect to...
6789         (expand_expr_stmt_value): ... this new function.  Use new
6790         argument to tell whether to save expression value.
6791         (expand_end_stmt_expr): Reset last_expr_type and
6792         last_expr_value if we don't have either.
6793         * tree-inline.c (declare_return_variable): Mark its use
6794         statement as addressable.
6795         * tree.h: Document new use of TREE_ADDRESSABLE.
6796         (expand_expr_stmt_value): Declare.
6797
6798 2002-01-01  Tom Rix  <trix@redhat.com>
6799
6800         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
6801         rs6000_emit_allocate_stack.
6802
6803 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
6804
6805         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
6806         ${srcdir}/ginclude/ to every entry in extra_headers.
6807         * configure: Regenerate.
6808         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
6809         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
6810         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
6811         * ginclude/proto.h: Rename to config/convex/proto.h.
6812
6813 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6814
6815         * attribs.c (handle_vector_size_attribute): Use host_integerp
6816         and tree_int_cst; remove warnings.
6817         * caller-save.c (insert_restore): Add cast to get rid of warning.
6818         (insert_save): Likewise.
6819         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
6820         * regmove.c (find_matches): Add temporary var to kill a warning.
6821
6822 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
6823
6824         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
6825         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
6826         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
6827         (vms-dwarf2eh.o): Add Makefile rule.
6828         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
6829         * config/alpha/vms-dwarf2eh.asm: New file.
6830
6831         * gcc.c (delete_if_ordinary): Delete all versions.
6832
6833 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
6834
6835         * config/mmix/mmix.md: Update FIXME to not mention
6836         define_constants.
6837         (MMIX_rJ_REGNUM): New define_constants constant.
6838         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
6839         "*movdicc_real"): Adjust contraints formatting.
6840         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
6841         for branch prediction.
6842         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
6843         output template.
6844         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
6845         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
6846         number.  Delete related FIXMEs.
6847         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
6848         from number to MMIX_rJ_REGNUM.
6849         (TARGET_MASK_BRANCH_PREDICT): New.
6850         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
6851         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
6852         value.  Add -mbranch-predict and -mno-branch-predict.
6853         (TARGET_VERSION): Drop date.
6854         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
6855         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
6856         for finding out global symbols.
6857         (mmix_asm_output_labelref): Revert condition for global symbol.
6858         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
6859         (mmix_print_operand_punct_valid_p): A '+' is valid.
6860
6861 See ChangeLog.6 for earlier changes.