OSDN Git Service

a1f9c16f4203827c0ba03a6d4c81b5fbe5e7d0bf
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-03-14  Richard Henderson  <rth@redhat.com>
2
3         * c-decl.c: Include c-pragma.h.
4         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5         (finish_function): Tidy.
6         * c-pragma.c: Include c-common.h.
7         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
8         (handle_pragma_weak): Use them.
9         (init_pragma): Register pending_weaks.
10         * c-pragma.h (maybe_apply_pragma_weak): Declare.
11         * print-tree.c (print_node): Print DECL_WEAK.
12         * varasm.c (mark_weak_decls): Remove.
13         (remove_from_pending_weak_list): Remove.
14         (add_weak): Remove.
15         (asm_emit_uninitialised): Call globalize_decl for weak commons.
16         (weak_decls): Make a tree_list.
17         (declare_weak): Cons weak_decls directly.
18         (globalize_decl): Remove weak_decls elements directly.
19         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
20         symbols.  Don't pretend to handle aliases.
21         (init_varasm_once): Update weak_decls registry.
22         * Makefile.in: Update dependencies.
23
24 2002-03-14  Richard Henderson  <rth@redhat.com>
25
26         PR target/5312
27         * config/ia64/ia64.c: Include tm_p.h last.
28         (gen_nop_type): Remove duplicate definition.
29         (cycle_end_fill_slots): Set sched_data for second L slot.
30         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
31         (nop_cycles_until): Fix typos.
32
33 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
34
35         PR optimization/5891
36         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
37
38 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
39
40         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
41           descriptors correctly.
42
43 2002-03-14  Michael Meissner  <meissner@redhat.com>
44
45         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
46         100, allowing MAX_UNROLLED_INSNS to be overridden.
47
48         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
49         --param.
50
51         * unroll.c (params.h): Include.
52         (MAX_UNROLLED_INSNS): Delete, now in params.h.
53
54         * doc/invoke.texi (--param max-unroll-insns): Document.
55
56         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
57
58 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
59
60         * arm.md: Fix warnings about constraints in peepholes and splits.
61
62 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
63
64         * cpphash.h (struct lexer_state): Remove line_extension member.
65         * cpplib.c (dequote_string, do_linemarker): New functions.
66         (linemarker_dir): New data object.
67         (DIRECTIVE_TABLE): No longer need to interpret #line in
68         preprocessed source.  Delete obsolete comment about return
69         values of handlers.
70         (end_directive, directive_diagnostics, _cpp_handle_directive):
71         Don't muck with line_extension.
72         (directive_diagnostics): No need to issue warnings for
73         linemarkers here.
74         (_cpp_handle_directive): Issue warnings for linemarkers here,
75         when appropriate.  Dispatch linemarkers to do_linemarker, not
76         do_line.
77         (do_line): Code to handle linemarkers split out to do_linemarker.
78         Convert escape sequences in filename argument, both places.
79
80         * cppmacro.c (quote_string): Rename cpp_quote_string and
81         export.  All callers changed.
82         * cpplib.h (cpp_quote_string): Prototype.
83         * cppmain.c (print_line): Call cpp_quote_string on to_file
84         before printing it.
85
86         * doc/cpp.texi: Document that escapes are now interpreted in
87         #line and in linemarkers, and that non-printing characters are
88         converted to octal escapes when linemarkers are generated.
89
90 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
91
92         * emit-rtl.c (try_split): Use delete_insns.
93         * recog.c (split_all_insns): Fix terminating condition.
94
95 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
96             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
97
98         PR target/5828
99         * arm.c (arm_output_epilogue): Fix floating-point register save
100         adjustment when using a frame pointer.
101
102 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
103
104         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
105         * config/mips/mips.c (compute_frame_size): Retrofit them here.
106         (save_restore_insns, mips_expand_epilogue): And here.
107         (build_mips16_call_stub): And here.
108         (mips_function_value): Use the new macros to decide whether a single
109         or complex float can be returned in floating-point registers.  Return
110         a parallel rtx in the complex case.
111
112 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
113
114         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
115         call after liveness analysis.
116
117         * recog.c (split_insn): Use delete_insn_and_edges.
118
119         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
120         instructions to have branch prediction notes.
121         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
122
123 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
124
125         * configure.in: Don't pass -Wno-long-long to a ADA compiler
126         that doesn't support it.
127         * configure: Regenerate.
128
129 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
130
131         PR target/5626
132         * config/sparc/sparc.md (normal_branch, inverted_branch,
133         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
134         inverted_fp_branch): Adjust calls to output_cbranch.
135         Set length attribute.
136         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
137         output_v9branch.  Set length attribute.
138         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
139         predicates.
140         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
141         (output_cbranch): Likewise.  Handle far branches.
142         (output_v9branch): Handle far branches.
143         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
144         Adjust prototypes.
145         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
146         noov_compare64_op predicates.
147
148 2002-03-13  Jason Merrill  <jason@redhat.com>
149
150         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
151         into the function and constify it.
152         * gthr-dce.h, gthr-solaris.h: Likewise.
153
154 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
155
156         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
157         * config/rs6000/rs6000.c (rs6000_va_arg): Use
158         std_expand_builtin_va_arg if not ABI_V4.
159
160 2002-03-13  Jason Merrill  <jason@redhat.com>
161
162         * varasm.c (globalize_decl): New fn.
163         (assemble_start_function): Use it.
164         (asm_emit_uninitialized): Use it.
165         (assemble_alias): Use it.
166         (assemble_variable): Use it.
167
168 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
169
170         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
171         2002-03-12 internal visibility change.
172         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
173         visibility into SYMBOL_REF_FLAG.
174
175 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
176
177         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
178         VOIDmode operand.  Add compile-time optimization for constant results.
179
180 2002-03-12  Jason Merrill  <jason@redhat.com>
181
182         * c-typeck.c (convert_for_assignment): Don't allow conversions
183         between pointers and references.  Only allow lvalues to convert to
184         reference.
185
186 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
187
188         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
189         before prologue, to avoid scheduling problems.
190
191 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
192
193         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
194         (ELIMINABLE_REGS): Add sfp->sp.
195         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
196
197 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
198
199         PR optimization/5892
200         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
201
202 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
203
204         * loop.c (basic_induction_var): Don't call convert_modes if mode
205         classes are different.
206
207 2002-03-12  Richard Henderson  <rth@redhat.com>
208
209         PR optimization/5901
210         * function.c (reposition_prologue_and_epilogue_notes): Position
211         the markers after/before the last/first insn not deleted.
212
213 2002-03-12  Richard Henderson  <rth@redhat.com>
214
215         PR optimization/5878
216         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
217         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
218         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
219
220         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
221         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
222         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
223
224         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
225         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
226         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
227         also.  Don't set it if not flag_pic.
228         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
229         to be INVALID_REGNUM when not used.
230
231 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
232
233         * expmed.c (store_bit_field): Reset alias set for memory.
234         (extract_bit_field): Same.
235
236 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
237
238         * c-common.c (c_tree_code_type, c_tree_code_length,
239         c_tree_code_name, add_c_tree_codes): Delete.
240         * c-common.h (add_c_tree_codes): Delete.
241         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
242         Define.
243         * c-objc-common.c (c_objc_common_init): Don't call
244         add_c_tree_codes, instead set lang_unsafe_for_reeval.
245         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
246         objc_tree_code_name, add_objc_tree_codes): Delete.
247         (objc_init): Don't call add_objc_tree_codes.
248         * objc/objc-lang.c (tree_code_type, tree_code_length,
249         tree_code_name): Define.
250         * toplev.c (lang_independent_init): Don't set
251         tree_code_length[IDENTIFIER_NODE].
252         * tree.c (tree_code_type, tree_code_length, tree_code_name):
253         Delete definitions, moved to language front-ends.
254         * tree.def (IDENTIFIER_NODE): Hardwire the length.
255         * tree.h (tree_code_type, tree_code_length, tree_code_name):
256         Const-ify.
257         (tree_code_length): Change type to unsigned char.
258
259 2002-03-12  Richard Henderson  <rth@redhat.com>
260
261         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
262         internal visibility change.
263
264 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
265
266         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
267         validize_mem() instead of change_address to avoid clobbering
268         memory attributes.
269
270 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
271
272         * c-lex.h (position_after_whitespace): Remove.
273
274 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
275
276         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
277         (lex_string): Use unsigned char pointers.
278
279 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
280
281         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
282         is not a valid memory_operand.
283
284 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
285
286         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
287         * config/xtensa/lib1funcs.asm: Fix copyright to include
288         special case for libgcc files.
289         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
290         (__divsi3): Likewise.
291         (__umodsi3): Likewise.
292         (__modsi3): Likewise.
293         * config/xtensa/lib2funcs.S: Fix copyright to include
294         special case for libgcc files.
295
296 2002-03-12  Tom Rix  <trix@redhat.com>
297
298         * collect2.c (resolve_lib_name): Move outside of
299         OBJECT_FORMAT_COFF ifdef.
300         (ignore_library): Same.
301
302 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
303
304         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
305
306 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
307
308         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
309         to function_section before writing out the constant pool.
310
311 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
312
313         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
314         zero_constant.
315         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
316
317 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
318
319         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
320         (adddi3): Likewise.
321         (movdf): Likewise.
322         (movdi): Likewise.
323         (cmpsi splitter): Likewise.
324         (modsi3): Fail if <= 0.
325         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
326         redundant test when HOST_BITS_PER_WIDE_INT != 32.
327         (reg_or_sub_cint64_operand): Likewise.
328         (num_insns_constant_wide): Optimize sign extension.
329         (rs6000_legitimize_address): Likewise.
330
331 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
332
333         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
334         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
335
336 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
337
338         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
339         address calculation.
340
341 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
342
343         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
344         scratch register to DImode / TImode.
345         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
346         register used does not overlap the target.
347
348 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
349
350         * Makefile.in (debug.o): Depend on debug.h.
351         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
352         * debug.c (do_nothing_debug_hooks): Likewise.
353         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
354         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
355         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
356         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
357         * dwarfout.c (dwarf_debug_hooks): Likewise.
358         * integrate.c (output_inline_function): Likewise.
359         * objc/objc-act.c (synth_module_prologue): Likewise.
360         * sdbout.c (sdb_debug_hooks): Likewise.
361         * toplev.c (debug_hooks): Likewise.
362         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
363
364 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
365
366         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
367         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
368         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
369         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
370         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
371         * defaults.h (POINTER_SIZE): Define.
372         * doc/tm.texi (POINTER_SIZE): Document default.
373
374 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
375
376         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
377
378 2002-03-11  Richard Henderson  <rth@redhat.com>
379
380         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
381         if rebuild_label_notes_after_reload.
382
383 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
384
385         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
386         emit pic register load if "internal" visibility.
387         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
388         (cris_expand_builtin_va_arg): Do all computations on trees.
389
390 2002-03-11  Richard Henderson  <rth@redhat.com>
391
392         * rtlanal.c: Include recog.h.
393         (keep_with_call_p): Fix thinko.
394         * Makefile.in (rtlanal.o): Update dependencies.
395
396 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
397
398         * genflags.c (gen_insn): Use IS_VSPACE.
399         * genoutput.c (output_insn_data): Likewise.
400         (process_template): Likewise.
401
402 2002-03-11  Richard Henderson  <rth@redhat.com>
403
404         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
405
406 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
407
408         * Makefile.in: Update.
409         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
410         Update documentation.
411         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
412         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
413
414 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
415
416         * Makefile.in: Give texi2pod its input file as a command line
417         argument, not on stdin.
418
419 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
420             Daniel Berlin  <dan@dberlin.org>
421
422         C++ alias analysis improvement.
423         * alias.c (record_component_aliases): Record aliases for base
424         classes too.
425
426 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
427
428         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
429
430 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
431
432         * toplev.c (vms_fopen): Remove, not needed.
433
434         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
435
436         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
437
438         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
439         for FP, already done later.
440
441         * toplev.c (debug_args): Add entry for VMS_DEBUG.
442         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
443
444 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
445
446         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
447         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
448         LARGEST_EXPONENT_IS_NORMAL for the given mode.
449         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
450         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
451         (ediv, emul, eldexp, esqrt): Likewise.
452         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
453         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
454         (saturate): New function.
455         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
456         (make_nan): Use a saturation value instead of a NaN if
457         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
458         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
459         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
460         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
461         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
462         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
463         !ROUND_TOWARDS_ZERO.
464         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
465         (ROUND_TOWARDS_ZERO): Document.
466
467 2002-03-11  Andreas Jaeger  <aj@suse.de>
468
469         * cfg.c (dump_flow_info): Remove unused variable.
470
471 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
472
473         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
474         computations on trees.
475
476 2002-03-10  Richard Henderson  <rth@redhat.com>
477
478         PR 5693:
479         * reload.c (copy_replacements_1): New.
480         (copy_replacements): Use it to recurse through the rtx.
481
482 2002-03-10  Richard Henderson  <rth@redhat.com>
483
484         * loop.c (strength_reduce): Compute number of iterations as
485         unsigned HOST_WIDE_INT.
486
487 2002-03-10  Richard Henderson  <rth@redhat.com>
488
489         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
490         to move away from the end of the block.
491
492 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
493
494         PR preprocessor/5899
495         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
496
497 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
498
499         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
500
501         * attribs.c (decl_attributes): Fix signed/unsigned warning.
502
503 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
504
505         * config/mmix/mmix.c: Improve comments.
506         (mmix_target_asm_function_prologue): Drop variable
507         empty_stack_frame.  Don't allocate unused slot above fp.
508         (mmix_target_asm_function_epilogue): Mirror prologue changes.
509         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
510         brace in first column.
511         (enum reg_class): Ditto.
512         (FIRST_PARM_OFFSET): Now 0.
513         (USER_LABEL_PREFIX): Remove #if 0:d definition.
514
515 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
516
517         * combine.c (make_extraction): Fix error in last change.
518
519 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
520
521         * c4x.c (c4x_fp_reglist): Const-ify.
522         * cris.c (cris_print_operand): Likewise.
523         * i386.c (ix86_va_arg): Likewise.
524         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
525         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
526         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
527         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
528         * mcore.h (regno_reg_class): Likewise.
529         * mips.c (gen_int_relational): Likewise.
530         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
531         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
532         * pdp11.c (move_costs): Likewise.
533         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
534         * s390.c (s390_branch_condition_mnemonic, regclass_map):
535         Likewise.
536         * s390.h (regclass_map): Likewise.
537         * sh.c (shift_amounts): Likewise.
538         * sh.md (rotlsi3): Likewise.
539
540 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
541
542         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
543         (ne0+5): Use new clobber to generate proper shift pattern.
544         Patch by Michael Matz <matz@kde.org>.
545
546 2002-03-09  Andreas Schwab  <schwab@suse.de>
547
548         * gcc.c (validate_all_switches): Also handle `%W{...}'.
549
550 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
551
552         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
553
554 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
555
556         PR middle-end/5877
557         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
558         even for non-representable constants.
559
560 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
561
562         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
563         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
564         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
565         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
566         (pop_function_context): Compute MAY_SHARE parameter for
567         fixup_var_refs.
568         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
569         (gen_mem_addressof): Call fixup_var_refs with new parm.
570
571         * combine.c (make_extraction): Don't make extension of CONST_INT.
572
573 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
574
575         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
576         in o32 and o64 ABIs.
577         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
578         but getting fixed-size structs passed in registers regardless of
579         padding in o32 and o64 ABIs.
580
581         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
582         offset before loading address of argument passed by transparent
583         reference.
584
585 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
586
587         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
588
589 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
590
591         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
592         marker such that registers after it are saved.
593
594 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
595
596         * sparc.c (arith_4096_operand): Fix error in last change.
597
598 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
599
600         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
601         defaults for MEABI.
602
603 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
604
605         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
606         vectors.
607
608 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
609
610         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
611
612 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
613
614         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
615         removed; fix return value.
616         * combine.c (combine_instructions): Dirtify blocks where we failed to
617         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
618         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
619
620 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
621
622         * gcse.c (insert_insn_end_bb): Fix typo in last change.
623
624 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
625
626         * recog.c (peephole2_optimize): Re-distribute EH edges.
627
628 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
629
630         * expr.c (expand_expr): Use unsave lang hook.
631         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
632         (LANG_HOOKS_INITIALIZER): Update.
633         * langhooks.h (struct lang_hooks): New hook unsave.
634         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
635         (unsave_expr_1): Remove unused lang_unsave_expr_now.
636         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
637         (unsave_expr_now): Remove.
638         * tree.h (unsave_expr_now, lang_unsave,
639         lang_unsave_expr_now): Remove.
640         (lhd_unsave): New.
641
642 2002-03-08  Andreas Jaeger  <aj@suse.de>
643
644         * flow.c (propagate_block_delete_insn): Remove unused variable.
645
646 2002-03-08  Kazu Hirata  <kazu@hxi.com>
647
648         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
649         insn length for memory load/store.
650
651 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
652
653         * doc/install.texi (--with-libiconv-prefix): Document.
654
655 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
656
657         * doc/sourcebuild.texi: Fix typo.
658
659 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
660
661         PR c/3711
662         * builtins.c (std_expand_builtin_va_arg): Do all computations on
663         trees.
664
665 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
666
667         * rtl.c (copy_most_rtx): Move from here ...
668         * emit-rtl.c (copy_most_rtx): ... to here.
669
670 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
671
672         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
673         SUBTARGET_CPP_SIZE_SPEC.
674         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
675
676         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
677
678 2002-03-07  Matt Hiller  <hiller@redhat.com>
679
680         * gensupport.c (first_dir_md_include): Renamed from include;
681         change all references.
682         (last_dir_md_include): Renamed from last_include; change all
683         references.
684         (init_md_reader): Unconditionally initialize base_dir whether or
685         not filename is a relative path.
686
687 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
688
689         * config/fp-bit.c (_unord_f2): Compile it in even if
690         US_SOFTWARE_GOFAST is enabled.
691
692         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
693         NULL_RTX.  Set all HFmode operations as NULL_RTX.
694         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
695         NULL_RTX, try reversing the comparison and the operands.
696
697 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
698
699         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
700         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
701         and MATCH_OP_DUP.
702
703 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
704
705         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
706
707 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
708
709         * basic-block.h (fixup_abnormal_edges): Declare.
710         * reload1.c (fixup_abnormal_edges): New function.
711         * reg-stack.c (convert_regs): Use it.
712
713         * gcse.c (insert_insn_end_bb): Handle trapping insns.
714
715         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
716
717 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
718
719         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
720         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
721         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
722         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
723         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
724         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
725         unless x and y could be infinite.
726         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
727         Check that the common type of both arguments is a real, even for
728         targets without unordered comparisons.  Allow an integer argument
729         to be compared against a real.
730         (expand_tree_builtin): Use expand_unordered_cmp.
731         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
732         * cse.c (fold_rtx): Likewise.  Fix indentation.
733         * fold-const.c (fold_real_zero_addition_p): New.
734         (fold): Use it, and the new HONOR_... macros.
735         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
736         * jump.c (reversed_comparison_code_parts): After searching for
737         the true comparison mode, use HONOR_NANS to decide whether it
738         can be safely reversed.
739         (reverse_condition_maybe_unordered): Remove IEEE check.
740         * simplify-rtx.c (simplify_binary_operation): Use the new macros
741         to decide which simplifications are valid.  Allow the following
742         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
743         and (a - -b) to (a + b).
744         (simplify_relational_operation): Use HONOR_NANS.
745         * doc/tm.texi: Document the MODE_HAS_... macros.
746
747 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
748
749         * combine.c (simplify_comparison): If simplifying a logical shift
750         right and compare with constant, force the comparison to unsigned.
751
752 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
753
754         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
755
756         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
757         -mabi=no-altivec
758         (alt_reg_names): Remove % for vrsave.
759
760 2002-03-06  Richard Henderson  <rth@redhat.com>
761
762         PR optimization/5844
763         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
764         if used indicates we've already emitted one copy of an operand.
765         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
766         (gen_split): Supply a non-null used.
767
768 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
769
770         * reload1.c (reload): Unshare all rtl after reload is done.
771
772         * simplify-rtx.c (simplify_plus_minus): Do not abort,
773         but simply fail if the expression is too complex to simplify.
774         (simplify_gen_binary): Handle simplify_plus_minus failures.
775
776 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
777
778         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
779         consistently call delete_trivially_dead_insns after CSE and GCSE;
780         fix DFI_life dumping; do jump threading after liveness; do crossjumping
781         after liveness2; update comment in last crossjumping.
782         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
783
784 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
785
786         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
787         after completing fast dead code elimination.
788
789         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
790         COMPARE operator.
791
792 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
793
794         * version.c:  Fix misplaced leading blanks on first line.
795
796 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
797
798         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
799
800 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
801
802         * cfgcleanup.c (mentions_nonequal_regs): New function.
803         (thread_jump): Use it.
804         * toplev.c (rest_of_compilation): Run jump threading after
805         liveness.
806
807 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
808
809         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
810         patch.
811
812 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
813
814         * predict.c (estimate_bb_frequencies): Do not reload the
815         frequencies from notes.
816
817 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
818
819         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
820         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
821
822         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
823         delete_noop_moves): Return indeger.
824         * flow.c (ndead): New variable.
825         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
826         BB argument; update callers.
827         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
828         (life_analysis): Do not call purge_all_dead_edges.
829         (update_life_info): Return number of deleted insns; print statistics.
830         (update_life_info_in_dirty_blocks): likewise.
831         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
832         return number of insns deleted.
833
834         * cse.c: Include timevar.h
835         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
836         iterate until stabilizes; print statistics; return number of killed
837         insns.
838         * Makefile.in: (cse.o): Add timevar.h dependency
839         * rtl.h (delete_trivially_dead_insns): New.
840         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
841         * toplev.c (rest_of_compilation): Update callers.
842
843         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
844         (try_optimize_cfg): Do not update liveness.
845         (cleanup-cfg): Loop until try_optimize_cfg and dead code
846         removal stabilizes; use delete_trivially_dead_insns.
847
848         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
849
850 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
851
852         * cppmain.c (setup_callbacks): Disable #pragma and #ident
853         callbacks when processing assembly language.
854
855 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
856
857         * pa.h (ASM_FILE_END): Define.
858         * som.h (ASM_FILE_END): Delete.
859
860         * pa.c (function_arg): Don't pass floats in general registers in
861         indirect calls if TARGET_ELF32.
862
863 2002-03-05  Richard Henderson  <rth@redhat.com>
864
865         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
866
867 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
868
869         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
870
871 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
872
873         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
874         -r command line.  Don't hide any symbols if not building
875         shared libgcc.
876
877 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
878
879         * cfg.c (dump_flow_info): Warn about profile mismatches.
880         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
881         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
882
883 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
884
885         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
886         wide volatile memory by parts.
887
888 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
889
890         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
891         is NULL.
892
893 2002-03-05  Richard Henderson  <rth@redhat.com>
894
895         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
896
897 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
898
899         * toplev.c (documented_lang_options): Document more
900         language-specific options.
901         * doc/invoke.texi (Warning Options): Correct documentation for
902         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
903         * c-decl.c (c_decode_option): Use a table to handle warning options.
904
905 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
906
907         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
908         parameter to mmix_encode_section_info.
909         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
910         relocatably.  Always produce ELF, not mmo if linking relocatably.
911         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
912         first is non-zero, don't add symbol prefix.
913         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
914         prototype accordingly.
915
916 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
917
918         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
919
920 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
921
922         * configure.in: Increase required makeinfo version to 4.1.
923         * configure: Regenerate.
924
925 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
926
927         * .cvsignore: Remove *.info* and genrtl*; these files are generated
928         elsewhere now.
929
930 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
931
932         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
933         * doc/invoke.texi: Fix @math uses.
934
935 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
936
937         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
938         removal
939
940 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
941
942         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
943         (powerpc-*-eabisimaltivec*): Same.
944
945         * config/rs6000/t-ppcendian: New.
946
947 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
948
949         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
950         nonimmediate_src_operand and nonimmediate_lsrc_operand to
951         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
952
953 2002-03-03  Richard Henderson  <rth@redhat.com>
954
955         * toplev.c (rest_of_decl_compilation): Revert last two changes.
956
957 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
958
959         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
960         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
961         tree.c, config/m68k/m68k.c:
962         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
963         REAL_ARITHMETIC blocks unconditional.  Delete some further
964         #ifdef blocks predicated on REAL_ARITHMETIC.
965         * flags.h, toplev.c: Delete remaining references to
966         flag_pretend_float.
967
968         * doc/invoke.texi: Remove documentation of -fpretend-float.
969         * doc/tm.texi: Describe the various REAL_* macros as provided by
970         real.h, not by the target configuration files.
971
972         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
973         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
974         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
975         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
976         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
977         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
978         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
979         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
980         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
981         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
982         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
983         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
984         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
985         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
986         config/xtensa/xtensa.h:
987         Do not define, undefine, or mention in comments any of
988         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
989         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
990         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
991         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
992         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
993         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
994         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
995         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
996         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
997
998 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
999
1000         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
1001         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
1002         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
1003         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
1004         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
1005         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
1006         Delete.
1007         * defaults.h (BITS_PER_WORD): Define.
1008         * doc/tm.texi (BITS_PER_WORD): Document default value.
1009
1010         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
1011         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
1012         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
1013
1014 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1015
1016         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
1017         lieu of explicit sizeof/sizeof.
1018         * i386.c (override_options, ix86_init_mmx_sse_builtins,
1019         ix86_expand_builtin): Likewise.
1020         * mips.c (mips_add_gc_roots): Likewise.
1021         * mmix.c (mmix_output_condition): Likewise.
1022         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
1023         altivec_init_builtins): Likewise.
1024         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
1025         * cppexp.c (Nsuff, parse_number): Likewise.
1026         * cppinit.c (builtin_array_end): Likewise.
1027         * gcc.c (n_default_compilers, process_command): Likewise.
1028         * genpreds.c (output_predicate_decls): Likewise.
1029         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
1030         * lcm.c (N_ENTITIES): Likewise.
1031         * stor-layout.c (set_sizetype): Likewise.
1032
1033 2002-03-03  Richard Henderson  <rth@redhat.com>
1034
1035         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
1036         for types or labels.
1037
1038 2002-03-03  Richard Henderson  <rth@redhat.com>
1039
1040         * c-decl.c (start_decl): Initialized variables are not common.
1041
1042 2002-03-02  Per Bothner  <per@bothner.com>
1043
1044         * gcc.c (option_map):  Suport new --bootclasspath option.
1045         --CLASSPATH is now just an alias for --classpath.
1046
1047 2002-03-02  Richard Henderson  <rth@redhat.com>
1048
1049         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
1050         load if "internal" visibility.
1051         * doc/extend.texi: Document visibility meanings.
1052
1053 2002-03-02  Richard Henderson  <rth@redhat.com>
1054
1055         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
1056         to functions as well.
1057
1058 2002-03-02  Richard Henderson  <rth@redhat.com>
1059
1060         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
1061         (handle_visibility_attribute): Don't call assemble_visibility.
1062         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
1063         without asmspec.  Invoke assemble_alias when needed.
1064         * varasm.c (maybe_assemble_visibility): New.
1065         (assemble_start_function, assemble_variable, assemble_alias): Use it.
1066
1067 2002-03-02  Richard Henderson  <rth@redhat.com>
1068
1069         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
1070         invoke ENCODE_SECTION_INFO with first call flag.
1071
1072         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1073         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
1074         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
1075         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
1076         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
1077         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
1078         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
1079         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
1080         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
1081         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
1082         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
1083         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
1084         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
1085         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
1086         config/mcore/mcore-protos.h, config/mcore/mcore.c,
1087         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
1088         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
1089         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
1090         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
1091         config/sh/sh.h, config/sparc/sparc.h,
1092         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
1093         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
1094         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
1095         FIRST argument.  As needed, examine it and do nothing.
1096
1097         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
1098         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
1099         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
1100
1101         * config/arm/t-pe (pe.o): Add dependencies.
1102
1103 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1104
1105         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
1106         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
1107         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
1108         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
1109         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
1110         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
1111         * defaults.h (BITS_PER_UNIT): Define.
1112         * doc/tm.texi (BITS_PER_UNIT): Document default value.
1113
1114 2002-03-02  Kazu Hirata  <kazu@hxi.com>
1115
1116         * config/h8300/h8300-protos.h: Add a prototype for
1117         compute_a_shift_length.
1118         * config/h8300/h8300.c (h8300_asm_insn_count): New.
1119         (compute_a_shift_length): Likewise.
1120         (h8300_adjust_insn_length): Do not adjust insn length of shift
1121         insns.
1122         * config/h8300/h8300.md (anonymous shift patterns): Use
1123         compute_a_shift_length.
1124
1125 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1126
1127         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
1128         trunc_int_for_mode.
1129
1130         * emit-rtl.c (offset_address): Call update_temp_slot_address.
1131
1132 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1133
1134         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
1135         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
1136         * flags.h (flag_zero_initialized_in_bss): Declare.
1137         * toplev.c (flag_zero_initialized_in_bss): New flag.
1138         (lang_independent_options): Add flag_zero_initialized_in_bss.
1139         * tree.c (initializer_zerop): New function.
1140         * tree.h (initializer_zerop): Declare.
1141         * varasm.c (assemble_variable): If we can emit bss, put zero
1142         initializers in the bss section.
1143
1144 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
1145
1146         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
1147         like more than one symbol per .weak directive.
1148
1149 2002-03-01  Richard Henderson  <rth@redhat.com>
1150
1151         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
1152         adjust argument_pointer by pretend_args_size.
1153         (ia64_va_start): Adjust va_start address by -pretend_args_size.
1154
1155 2002-03-01  Kazu Hirata  <kazu@hxi.com>
1156
1157         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
1158
1159 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
1160
1161         * toplev.c (rest_of_compilation): Delete dead jumptables before
1162         loop.
1163         * flow.c (delete_dead_jumptables): Make global.
1164         * rtl.h (delete_dead_jumptables): Declare.
1165
1166 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
1167
1168         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
1169         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
1170         * config/rs6000/xcoff.h (COLLET_EXPORT_LIST): Delete.
1171
1172 2002-03-01  Kazu Hirata  <kazu@hxi.com>
1173
1174         * config/h8300/h8300-protos.h: Fix formatting.
1175         * config/h8300/h8300.c: Likewise.
1176         * config/h8300/h8300.h: Likewise.
1177
1178 2002-03-01  Kazu Hirata  <kazu@hxi.com>
1179
1180         * config/h8300/h8300.c (print_operand): Support 16-bit
1181         constant addresses.
1182         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
1183
1184 2002-02-28  Richard Henderson  <rth@redhat.com>
1185
1186         * expmed.c (store_bit_field): Prevent generation of CONCATs;
1187         pun complex values as integers; use gen_lowpart instead of
1188         gen_rtx_SUBREG.
1189         (extract_bit_field): Likewise.
1190
1191 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
1192             David Edelsohn  <edelsohn@gnu.org>
1193
1194         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
1195         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
1196         (SUPPORTS_WEAK): Likewise.
1197         * output.h (add_weak): Add tree param.
1198         * varasm.c (add_weak): Likewise.  Save decl.
1199         (struct weak_syms): Add decl field.
1200         (mark_weak_decls): New function.
1201         (init_varasm_once): ggc_add_root mark_weak_decls.
1202         (assemble_start_function): Use ASM_WEAKEN_DECL.
1203         (assemble_variable): Likewise.
1204         (assemble_alias): Likewise.
1205         (declare_weak): Pass decl to add_weak.
1206         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
1207         (remove_from_pending_weak_list): Declare and define for
1208         ASM_WEAKEN_DECL.
1209         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
1210         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
1211         * defaults.h (SUPPORTS_WEAK): Likewise.
1212         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
1213         .weak for code sym.  Do emit .size for descriptor sym.
1214         (ASM_DECLARE_FUNCTION_SIZE): Define.
1215         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
1216         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
1217         .lglobl unless TARGET_XCOFF.  Formatting fixes.
1218         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
1219         .weak for code sym.
1220         (HANDLE_PRAGMA_WEAK): Remove.
1221         (ASM_WEAKEN_LABEL): Remove.
1222         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
1223
1224 2002-03-01  Jason Merrill  <jason@redhat.com>
1225
1226         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
1227         (TARGET_EXPR_CLEANUP): New macro.
1228
1229 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
1230
1231         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
1232         to take ptr_extend into account as third type of extension.
1233         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
1234         fields used by SUBREG_PROMOTED_UNSIGNED_P.
1235         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
1236         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
1237         * calls.c (precompute_arguments): Use new macro.
1238         (expand_call): Ditto.
1239         * combine.c (nonzero_bits): Ditto.
1240         (record_promoted_value): Ditto.
1241         * expr.c (store_expr): Ditto.
1242         (expand_expr): Ditto.
1243         * function.c (assign_parms): Ditto.
1244
1245 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
1246
1247         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
1248         override -shared and -shared-libgcc.
1249
1250 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
1251
1252         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
1253         of "ultrasparc".
1254         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
1255         to be broken.
1256
1257 2002-02-28  Richard Henderson  <rth@redhat.com>
1258
1259         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
1260         4 cycle latency from MM producers.
1261         (ia64_internal_sched_reorder): Likewise with pipeline flush.
1262
1263 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
1264
1265         * mklibgcc.in: Don't use GNU make extension.
1266
1267 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1268
1269         * c-parse.in (STATIC): New terminal.
1270         (scspec): New non-terminal.  Update productions accordingly.
1271         (program): Remove bogus ifc / end ifc.
1272         (array_declarator): Simplify production using STATIC.
1273
1274 2002-02-28  Jim Meyering  <meyering@lucent.com>
1275
1276         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
1277         \a still means TARGET_BELL.
1278
1279 2002-02-28  Richard Henderson  <rth@redhat.com>
1280
1281         * haifa-sched.c (sched_emit_insn): New.
1282         (schedule_block): Use last_scheduled_insn to track last insn.
1283         * sched-int.h (sched_emit_insn): Prototype.
1284         * config/ia64/ia64.c (last_issued): Remove.
1285         (ia64_variable_issue): Don't set it.
1286         (nop_cycles_until): Use sched_emit_insn.
1287
1288 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
1289
1290         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
1291         extended constants.
1292
1293 2002-02-28  Kazu Hirata  <kazu@hxi.com>
1294
1295         * config/h8300/h8300.c: Fix formatting.
1296         * config/h8300/h8300.h: Likewise.
1297
1298 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1299
1300         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
1301         which may overwrite the high byte of the frame pointer.
1302
1303 2002-02-28  Bo Thorsen  <bo@suse.de>
1304
1305         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
1306         (STARTFILE_SPEC): Add 64 bit files.
1307         (ENDFILE_SPEC): Likewise.
1308
1309 2002-02-28  Jason Merrill  <jason@redhat.com>
1310
1311         * c-decl.c (finish_function): Only warn about missing return
1312         statement with -Wreturn-type.
1313
1314 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
1315
1316         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
1317
1318         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
1319         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
1320
1321 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
1322
1323         * basic-block.h (BB_REACHABLE): Renumber.
1324         (BB_DIRTY, BB_NEW): New flags.
1325         (clear_bb_flags): Declare.
1326         (update_life_info_in_dirty_blocks): Declare.
1327         * cfg.c (clear_bb_flags): New function.
1328         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
1329         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
1330         reorder_insns, emit_insn_after): Mark block as dirty.
1331         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
1332         (update_life_info_in_dirty_blocks): New function.
1333         * recog.c (apply_change_group): Dirtify block.
1334
1335         * cse.c (cse_insn): Reorder emitting of jump insn to keep
1336         cfg consistent.
1337         * gcse.c (delete_null_pointer_checks): Likewise.
1338
1339         * toplev.c (dump_file_index): Move cse2 after bp,
1340         add DFI_null
1341         (dump_file_info): Similary.
1342         (rest_of_compilation): Avoid most of CFG rebuilds;
1343         do first if converision after null pointer checks, do cse2
1344         after branch prediction; avoid full liveness rebuild after
1345         initializing subregs.
1346         * invoke.texi (-d options): Document -du, renumber.
1347
1348         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
1349         (notice_new_block): Do not set BB_UPDATE_LIFE.
1350         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
1351          merge_blocks_move_successor_nojumps, merge_blocks,
1352          try_crossjump_to_edge): Likewise.
1353         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
1354         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
1355         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
1356         (merge_of_block): Do not use life_data_ok.
1357         (find_if_case_1): Do not use SET_UPDATE_LIFE.
1358         (if_convert): Use BB_DIRTY mechanizm to update life.
1359         * lcm.c (optimize_mode_switching): Update
1360         update_life_info_in_dirty_blocks
1361
1362 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1363
1364         * Makefile.in (integrate.o): Update.
1365         * c-decl.c (copy_lang_decl): Rename.
1366         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1367         * integrate.c: Include langhooks.h.
1368         (copy_decl_for_inlining): Update to use langhook.
1369         * langhooks-def.h (lhd_do_nothing_t,
1370         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
1371         (LANG_HOOKS_INITIALIZER): Update.
1372         * langhooks.c (lhd_do_nothing_t): New.
1373         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
1374         * tree.h (copy_lang_decl): Remove.
1375 objc:
1376         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1377
1378 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
1379
1380         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
1381         POST_DEC, and POST_MODIFY.
1382
1383 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
1384
1385         * c-typeck.c (digest_init): Remove unused parameter; all
1386         callers changed.
1387
1388 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
1389
1390         * expmed.c (expand_shift): Correctly test for low part of a
1391         subreg.
1392
1393 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
1394
1395         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
1396         insn UIDs with insn addresses.
1397
1398 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
1399
1400         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
1401         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
1402         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
1403         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
1404         gcc.c, toplev.c: Delete code implementing -traditional mode.
1405
1406         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
1407         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
1408         Document removal of -traditional mode for compilation, and
1409         remove documentation only relevant to that mode.
1410
1411         * config/nextstep.h, config/ptx4.h, config/svr4.h,
1412         config/convex/convex.h, config/d30v/d30v.h,
1413         config/i386/dgux.h, config/i386/osf1elf.h,
1414         config/i386/osfelf.h, config/i386/osfrose.h,
1415         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
1416         config/m68k/hp310.h, config/m88k/dgux.h,
1417         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
1418         config/m88k/m88k.h, config/m88k/openbsd.h,
1419         config/mips/abi64.h, config/mips/osfrose.h,
1420         config/mips/svr4-5.h, config/mips/svr4-t.h,
1421         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1422         config/stormy16/stormy16.h: Remove all references to
1423         -traditional from target specs.  Delete all mention of the
1424         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
1425         delete a couple of commented-out definitions of
1426         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
1427         to -traditional.
1428
1429         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
1430         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
1431
1432 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
1433
1434         * mklibgcc.in: Don't use \n in a line subject to
1435         interpretation by echo.
1436
1437 2002-02-27  Graham Stott  <grahams@redhat.com>
1438
1439         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
1440         Constify NAME.
1441
1442         * loop.c (prescan_loop): Handle PARALLEL.
1443
1444         * unroll.c (loop_iterations): Return 0 if the add_val for
1445         a BIV is REG.
1446
1447         * final.c (output_operand_lossage): Constify PFX_STR.
1448
1449         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
1450
1451 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
1452
1453         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
1454         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
1455
1456 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
1457
1458         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
1459
1460 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1461
1462         * cpplex.c (_cpp_lex_token): Handle directives in macro
1463         arguments.
1464         * cpplib.c (_cpp_handle_directive): Save and restore state
1465         if parsing macro args when entering a directive.
1466         * cppmacro.c (collect_args): No need to handle directives
1467         in macro arguments.
1468         (enter_macro_context, replace_args): Use the original macro
1469         definition in case it was redefined whilst collecting arguments.
1470 doc:
1471         * cpp.texi: Update.
1472
1473 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
1474
1475         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
1476         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
1477         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
1478         method on AIX.
1479         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
1480         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
1481         (load_toc_v4_PIC_2): Same.
1482
1483 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
1484
1485         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
1486
1487 2002-02-26  Richard Henderson  <rth@redhat.com>
1488
1489         * config/alpha/alpha.md (ashldi_se): Re-enable.
1490
1491 2002-02-26  Richard Henderson  <rth@redhat.com>
1492
1493         * config/alpha/alpha.c (alpha_encode_section_info): Examine
1494         MODULE_LOCAL_P; improve commentary.
1495
1496 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
1497
1498         * doc/cpp.texi: Clarify documentation of relationship between
1499         #line and #include.
1500
1501 2002-02-26  Kazu Hirata  <kazu@hxi.com>
1502
1503         * config/h8300/h8300-protos.h: Update the prototype for
1504         compute_logical_op_length.  Add the prototype for
1505         compute_logical_op_cc.
1506         * config/h8300/h8300.c (compute_logical_op_length): Figure out
1507         code from operands.
1508         (compute_logical_op_cc): New.
1509         * config/h8300/h8300.md: Combine all the logical op patterns
1510         in HImode and SImode.  Use compute_logical_op_cc.
1511
1512 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
1513
1514         * config/i386/i386.c (print_operand): Don't append ATT-style
1515         length suffixs to x87 opcodes when in Intel mode.
1516
1517 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
1518
1519         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
1520         (init_emit_once): Update calls.
1521         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
1522         (init_syntax_once): Prototype.
1523
1524 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1525
1526         * pa-linux.h (LIB_SPEC): Update definition.
1527         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
1528
1529 2002-02-26  Richard Henderson  <rth@redhat.com>
1530
1531         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
1532         if we emitted a stop bit.
1533
1534 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
1535
1536         * configure.in (libgcc_visibility): Substitute.
1537         * configure: Rebuilt.
1538         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
1539         defined symbols .hidden.
1540
1541 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
1542
1543         * attribs.c (c_common_attribute_table): Add visibility.
1544         (handle_visibility_attribute): New function.
1545         * varasm.c (assemble_visibility): New function.
1546         * output.h (assemble_visibility): Add prototype.
1547         * tree.h (MODULE_LOCAL_P): Define.
1548         * crtstuff.c (__dso_handle): Use visibility attribute.
1549         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
1550         for MODULE_LOCAL_P symbols too.
1551         * config/ia64/ia64.c (ia64_encode_section_info): Handle
1552         MODULE_LOCAL_P symbols the same way as local symbols.
1553         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
1554         into .sdata/.sbss by the user.
1555         * doc/extend.texi (Function Attributes): Document visibility
1556         attribute.
1557
1558 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
1559
1560         PR debug/5770
1561         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
1562         STRING_CST initializer spanning the whole variable without
1563         embedded zeros.
1564         If expand_expr returned MEM, don't use it.
1565
1566 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
1567
1568         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
1569         generate a die for the lexical block.
1570
1571 2002-02-26  Kazu Hirata  <kazu@hxi.com>
1572
1573         * config/h8300/h8300-protos.h: Add a prototype for
1574         compute_logical_op_length.
1575         * config/h8300/h8300.c (compute_logical_op_length): New.
1576         * config/h8300/h8300.md (anonymous logical patterns): Use
1577         compute_logical_op_length for length.
1578
1579 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
1580
1581         * dwarf2out.c (modified_type_die): Do not call type_main_variant
1582         for vectors.
1583         (gen_type_die): Same.
1584
1585         * attribs.c (handle_vector_size_attribute): Set debug information.
1586
1587 2002-02-26  Daniel Egger  <degger@fhm.edu>
1588
1589         * config/rs6000/rs6000.md: Swap define_insn attributes to
1590         fix incorrect generation of merge high instructions instead
1591         of merge low.
1592
1593 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
1594
1595         * c-typeck.c (really_start_incremental_init): Use
1596         bitsize_zero_node for vectors.
1597
1598 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
1599
1600         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
1601         ("*set_vrsave_internal"): Same.
1602
1603 2002-02-25  Richard Henderson  <rth@redhat.com>
1604
1605         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
1606         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
1607
1608 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
1609
1610         PR target/5755
1611         * config/i386/i386.c (ix86_return_pops_args): Only pop
1612         fake structure return argument if it was passed on the stack.
1613
1614 2002-02-25  Jason Merrill  <jason@redhat.com>
1615
1616         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
1617         RESULT_DECL.
1618
1619 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
1620
1621         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
1622         link with shared_name only.
1623         * doc/invoke.texi (Link Options): Document new behavior.
1624
1625 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
1626
1627         * c-typeck.c (push_init_level): Handle vectors.
1628
1629 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
1630
1631         * config/sparc/sparc.c (const64_high_operand): Zero-extend
1632         operands of SPARC_SETHI_P.
1633         (input_operand): Likewise.
1634         (sparc_emit_set_const32): Likewise.
1635         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
1636         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
1637         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
1638         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
1639         (movdi_insn_sp64_vis): Likewise.
1640         (movdi split, movdf split): Use SETHI32.
1641         * doc/md.texi: Document SPARC constraints L, M and N.
1642
1643 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
1644
1645         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
1646         ("*set_vrsave_internal"): use mfspr for Darwin.
1647
1648         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
1649         gen_get_vrsave_internal.
1650
1651 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1652
1653         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
1654
1655 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1656
1657         * cpplex.c (cpp_interpret_charconst): Get signedness or
1658         otherwise of wide character constants correct.
1659         * cppexp.c (lex): Get signedness of wide charconsts correct.
1660
1661 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1662
1663         * optabs.c (widen_operand): Only call convert_modes for
1664         promoted SUBREG if signedness matches.
1665         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
1666
1667 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1668
1669         * cpplib.c (glue_header_name): Use local buffer to build up
1670         header name.
1671
1672 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1673
1674         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
1675
1676 2002-02-23  Kazu Hirata  <kazu@hxi.com>
1677
1678         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
1679         H8/300[HS] separately.
1680         * config/h8300/h8300.md: Remove the early clobber constraint
1681         from bit field patterns.
1682
1683 2002-02-23  Kazu Hirata  <kazu@hxi.com>
1684
1685         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
1686         register_operand.
1687         (mulhisi3): Likewise.
1688         (umulqisi3): Likewise.
1689         (umulhisi3): Likewise.
1690
1691 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1692
1693         * cppinit.c (output_deps): Correct test for stdout output.
1694         (init_dependency_output): Cure warning.
1695
1696 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1697
1698         * expr.c (store_expr): When converting expression to promoted
1699         equivalent type, allow using SUBREG_REG of TARGET as the target
1700         of the expansion of EXP.
1701         * loop.c (basic_induction_var, case SUBREG): Always look inside.
1702         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
1703         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
1704         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
1705         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
1706
1707 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1708
1709         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
1710         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
1711         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
1712
1713 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
1714
1715         PR optimization/5747
1716         * loop.c (scan_loop): Update reg info if move_movables created new
1717         pseudos.
1718
1719 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
1720
1721         * gcc.c (init_gcc_spec): Revert last change.
1722
1723 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
1724
1725         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
1726         gpc_reg_operand constraint.
1727
1728 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
1729
1730         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
1731         Simplify comparison of `low'.
1732         (add_operand): Fix formatting.
1733         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
1734         (mask_operand): Disallow mask to wrap in 64-bit mode.
1735         (rs6000_stack_info): Remove redundant test setting push_p.
1736         (output_toc): Fix formatting.
1737         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
1738         cc_reg_not_cr0_operand constraint.
1739         (booldi3, boolcdi3 splitters): Same.
1740
1741 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
1742
1743         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
1744
1745 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
1746
1747         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
1748         gcc invoked with -shared-libgcc.
1749
1750 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
1751
1752         PR c++/5748
1753         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
1754         decl if any of elements was TREE_USED.
1755
1756 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
1757
1758         * config/sparc/sol2.h: Don't include sys/mman.h.
1759         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
1760         (arith_4096_operand): Don't throw high bits away.
1761         (const64_operand): Take sign extension of CONST_INTs into account.
1762         (const64_high_operand, sparc_emit_set_const32): Likewise.
1763         (GEN_HIGHINT64): Likewise.
1764         (sparc_emit_set_const64_quick1): Likewise.
1765         (const64_is_2insns): Likewise.
1766         (print_operand): Use trunc_int_for_mode for sign extension.
1767         * config/sparc/sparc.h (SMALL_INT32): Likewise.
1768         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
1769         chars.  Assume CONST_INT is already properly sign-extended.
1770         (movdi split): Sign-extend each SImode part.
1771         (andsi3 split): Don't mask high bits off, so that result
1772         remains properly sign-extend.
1773         (iorsi3 split): Likewise.
1774         (xorsi3 split): Likewise.
1775
1776 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
1777
1778         * fold-const.c (fold): Fix typo in comments.
1779
1780 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
1781
1782         * Makefile.in (langhooks.o): Update dependencies.
1783
1784 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
1785
1786         * langhooks.c: Include flags.h.
1787
1788 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
1789
1790         * testsuite/gcc.dg/attr-alwaysinline.c: New.
1791
1792         * c-common.c (c_common_post_options): Set inline trees by
1793         default.
1794
1795         * doc/extend.texi (Function Attributes): Document always_inline
1796         attribute.
1797         Update documentation about inlining when not optimizing.
1798
1799         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
1800
1801         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
1802         unless DECL_ALWAYS_INLINE.
1803
1804         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
1805         unless DECL_ALWAYS_INLINE.
1806         (c_disregard_inline_limits): Disregard if always_inline set.
1807
1808         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
1809         Disregard if always_inline set.
1810         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
1811         unless DECL_ALWAYS_INLINE.
1812
1813         * attribs.c (handle_always_inline_attribute): New.
1814         (c_common_attribute_table): Add always_inline.
1815
1816         * config/rs6000/altivec.h: Add prototypes for builtins
1817         requiring the always_inline attribute.
1818
1819 2002-02-21  Eric Christopher  <echristo@redhat.com>
1820
1821         * expmed.c (store_bit_field): Try to simplify the subreg
1822         before generating a new one when when the mode size of
1823         value is less than maxmode.
1824
1825 2002-02-21  Richard Henderson  <rth@redhat.com>
1826
1827         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
1828         than gen_rtx_PLUS to form the sum.
1829         * explow.c (force_reg): Rearrange to not allocate new pseudo
1830         when force_operand returns a register.
1831         * expr.c (expand_assignment): Allow offset_rtx expansion to
1832         return a sum.  Do not force addresses into registers.
1833         (expand_expr): Likewise.
1834         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
1835         to canonicalize arithmetic that didn't simpify.
1836         (simplify_plus_minus): New argument force; update
1837         all callers.  Don't split CONST unless we can do something with it,
1838         and wouldn't lose the constness of the operands.
1839
1840         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
1841         that we generated earlier.
1842
1843 2002-02-21  Tom Tromey  <tromey@redhat.com>
1844
1845         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
1846         (output_line_info): Use constant `1', with a long explanatory
1847         comment.
1848         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
1849
1850 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
1851
1852         * jump.c (redirect_jump): If old label has no UID, don't try to
1853         delete it.
1854
1855 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
1856
1857         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
1858         If input is constant, do shifts at compile time.
1859
1860 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1861
1862         * doc/extend.texi: Fix some more overfull hboxes.
1863
1864 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
1865
1866         PR optimization/4994
1867         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
1868         register moves.
1869
1870 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
1871
1872         PR c++/4574
1873         * expr.h (expand_and): Add mode argument.
1874         * expmed.c (expand_and): Add mode argument.
1875         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
1876         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
1877         * except.c (expand_builtin_extract_return_addr): Likewise.
1878         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
1879         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
1880         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
1881         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
1882         * config/c4x/c4x.md: Use GEN_INT (x) instead of
1883         gen_rtx (CONST_INT, VOIDmode, x).
1884
1885 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
1886
1887         PR c/4697:
1888         * stmt.c (warn_if_unused_value): Move side effects test once more.
1889
1890 2002-02-20  Torbjorn Granlund  <tege@swox.com>
1891
1892         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
1893         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
1894
1895 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
1896
1897         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
1898         SUBREG or ZERO_EXTEND.
1899
1900 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
1901
1902         * sh.h (current_function_anonymous_args): Remove.
1903         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
1904         of current_function_varargs and current_function_stdarg is set.
1905         * sh.c (sh_expand_prologue): Check current_function_varargs /
1906         current_function_stdarg / TARGET_SH5 instead of
1907         current_function_anonymous_args.
1908
1909         * sh64.h (TARGET_VERSION): Define.
1910
1911 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
1912
1913         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
1914         VRSAVE_REGNO on TARGET_ALTIVEC.
1915
1916 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
1917
1918         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
1919         bits of SImode const_int.
1920         (includes_rshift_p): Likewise.
1921         (print_operand): Call mask_operand and mask64_operand with correct
1922         mode.
1923         (rs6000_output_function_epilogue): Pad traceback table to word.
1924         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
1925         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
1926         mask64_operand with correct mode.
1927         (FUNCTION_ARG_REGNO_P): Correct parentheses.
1928
1929 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
1930
1931         PR debug/4461
1932         * varasm.c (get_pool_constant_mark): New.
1933         * rtl.h (get_pool_constant_mark): Add prototype.
1934         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
1935         be represented if it has not been output.
1936
1937 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
1938
1939         * combine.c (do_SUBST): Sanity check substitutions of
1940         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
1941         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
1942         CONST_INT into its operand.
1943         (known_cond): Likewise, for ZERO_EXTEND.
1944         * simplify-rtx.c (simplify_unary_operation): Fix condition to
1945         allow for simplification of wide modes.  Reject CONST_INTs in
1946         ZERO_EXTEND when their actual mode is not given.
1947
1948 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
1949
1950         * c-decl.c (pushdecl): If no global declaration is found for an
1951         extern declaration in block scope, try a limbo one.
1952
1953 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
1954
1955         PR c++/4401
1956         * c-common.c (pointer_int_sum): Moved from...
1957         * c-typeck.c (pointer_int_sum): ...here.
1958         * c-common.h (pointer_int_sum): Add prototype.
1959
1960 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
1961
1962         PR c++/5713
1963         * c-decl.c (duplicate_decls): Return 0 if issued error about
1964         redeclaration.
1965
1966 2002-02-20  Roger Sayle  <roger@eyesopen.com>
1967             Jakub Jelinek  <jakub@redhat.com>
1968
1969         PR c/4389
1970         * tree.c (host_integerp): Ensure that the constant integer is
1971         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
1972         when pos is zero or non-zero respectively.  Clarify comment.
1973         * c-format.c (check_format_info_recurse): Fix host_integerp
1974         usage; the pos argument should be zero when assigning to a
1975         signed HOST_WIDE_INT.
1976
1977 2002-02-20  Richard Henderson  <rth@redhat.com>
1978
1979         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
1980         of the operand, rather than assuming TImode.
1981         (ix86_expand_binop_builtin): Cope with commutative patterns
1982         using nonimmediate_operand for both operands.
1983         (ix86_expand_timode_binop_builtin): Likewise.
1984         (ix86_expand_store_builtin): Validate operand 1.
1985         (ix86_expand_unop1_builtin): Likewise.
1986
1987 2002-02-20  Philip Blundell  <philb@gnu.org>
1988
1989         PR 5705
1990         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
1991
1992 2002-02-20  Richard Henderson  <rth@redhat.com>
1993
1994         PR c/5615
1995         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
1996
1997 2002-02-20  Tom Tromey  <tromey@redhat.com>
1998
1999         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2000         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2001         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2002         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2003         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
2004         unconditionally.
2005
2006 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
2007
2008         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
2009           for (const_int 0) in X not just INTVAL.
2010
2011 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2012
2013         * doc/extend.texi: Avoid or reduce overfull hboxes.
2014
2015 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
2016
2017         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
2018         operations if the field does not start at a mode boundary.
2019
2020 2001-02-20      Joel Sherrill <joel@OARcorp.com>
2021
2022         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
2023         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
2024         Also done for -Acpu and -Amachine.
2025
2026 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2027
2028         * cppinit.c (init_dependency_output): Take deps output file
2029         from -o if none given with -MF.  Suppress normal output.
2030         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
2031         * doc/cpp.texi, doc/invoke.texi: Update.
2032
2033 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
2034
2035         * toplev.c (output_quoted_string): Write unprintable
2036         characters with octal escapes.
2037
2038 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
2039
2040         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
2041         really_call_used[VRSAVE_REGNO] if not Altivec.
2042
2043 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
2044
2045         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
2046         MODE_MASK.
2047         (constant_pool_expr_1): Fix formatting.
2048         (rs6000_legitimize_reload_address): Likewise.
2049
2050 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2051
2052         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
2053         now that we have one.
2054
2055 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
2056
2057         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
2058         end of first block of bitfields (which was only seven bits);
2059         rename dummy to unused_1; remove comment which is no longer true.
2060
2061 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
2062
2063         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
2064
2065 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
2066
2067         PR 5399
2068         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
2069         if generating PIC.
2070
2071         PR 5054
2072         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
2073         arm_is_longcall_p rather than inspecting call-type cookie
2074         directly.
2075         (call_value_insn) [TARGET_THUMB]: Likewise.
2076
2077 2002-02-19  Graham Stott  <grahams@redhat.com>
2078
2079         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
2080
2081 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
2082
2083         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
2084         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
2085         (FP_SAVE_INLINE): Delete.
2086
2087         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
2088         * config/rs6000/eabi.asm: Remove ABI save restore routines.
2089         * config/rs6000/t-ppccomm: Build crtsavres.o.
2090         * config/rs6000/crtsavres.asm: New file.
2091
2092 2002-02-19  Philip Blundell  <philb@gnu.org>
2093
2094         * config/arm/arm.c (use_return_insn): Don't reject interrupt
2095         functions.
2096         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
2097         (output_return_instruction): Allow interrupt functions to return with
2098         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
2099         (arm_expand_prologue): Subtract 4 before stacking LR in an
2100         interrupt function.
2101
2102 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
2103
2104         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
2105         decl, not just FUNCTION_DECL.
2106         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
2107         (arm_assemble_integer): Likewise.
2108         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
2109         marked local.
2110
2111 2002-02-19  matthew green  <mrg@eterna.com.au>
2112
2113         * config.gcc (sparc-*-netbsdelf*): Enable target.
2114         (sparc64-*-netbsd*): New target.
2115         * config/sparc/netbsd-elf.h: New file.
2116         * config/sparc/t-netbsd64: New file.
2117
2118 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
2119
2120         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
2121
2122 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
2123
2124         * doc/invoke.texi: explicitly list the style guidelines that
2125         -Weffc++ checks for.
2126
2127 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
2128
2129         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
2130
2131 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
2132
2133         PR other/5718
2134         * gcc.c (cpp_unique_options): Treat -o as indicating object file
2135         only if not -E.  If -E, pass -o through to the preprocessor.
2136
2137 2002-02-19  Kazu Hirata  <kazu@hxi.com>
2138
2139         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
2140         register number with an appropriate macro.
2141
2142 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2143
2144         * doc/rtl.texi (Constants): Close @code tag.
2145
2146 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
2147
2148         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
2149         ("mmx_uavgv4hi3"): Same.
2150         ("pmulhrwv4hi3"): Same.
2151
2152         * tree-inline.c (walk_tree): Handle vectors.
2153
2154         * c-common.c (constant_expression_warning): Handle vectors.
2155         (overflow_warning): Same.
2156
2157         * sched-deps.c (sched_analyze_2): Handle vectors.
2158
2159         * rtlanal.c (rtx_unstable_p): Handle vectors.
2160         (rtx_varies_p): Same.
2161         (count_occurrences): Same.
2162         (regs_set_between_p): Same.
2163         (modified_between_p): Same.
2164         (modified_in_p): Same.
2165         (volatile_insn_p): Same.
2166         (volatile_refs_p): Same.
2167         (side_effects_p): Same.
2168         (may_trap_p): Same.
2169         (inequality_comparisons_p): Same.
2170         (replace_regs): Same.
2171         (computed_jump_p_1): Same.
2172
2173         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
2174         argument.
2175         (inner_mode_array): New.
2176         (copy_rtx): Handle vectors.
2177         (copy_most_rtx): Same.
2178         (rtx_equal_p): Same.
2179         (get_mode_alignment): Adjust for vectors.
2180
2181         * resource.c (mark_referenced_resources): Handle vectors.
2182         (mark_set_resources): Same.
2183
2184         * reload1.c (eliminate_regs): Handle vectors.
2185         (elimination_effects): Same.
2186         (scan_paradoxical_subregs): Same.
2187
2188         * reload.c (subst_reg_equivs): Handle vectors.
2189
2190         * regrename.c (scan_rtx): Handle vectors.
2191
2192         * regclass.c (reg_scan_mark_refs): Handle vectors.
2193
2194         * recog.c (find_single_use_1): Handle vectors.
2195
2196         * local-alloc.c (equiv_init_varies_p): Handle vectors.
2197         (contains_replace_regs): Same.
2198         (memref_referenced_p): Same.
2199
2200         * integrate.c (copy_rtx_and_substitute): Handle vectors.
2201         (subst_constants): Same.
2202
2203         * genattrtab.c (attr_copy_rtx): Handle vectors.
2204         (encode_units_mask): Same.
2205         (clear_struct_flag): Same.
2206         (count_sub_rtxs): Same.
2207
2208         * gcse.c (want_to_gcse_p): Handle vectors.
2209         (oprs_unchanged_p): Same.
2210         (hash_expr_1): Same.
2211         (oprs_not_set_p): Same.
2212         (expr_killed_p): Same.
2213         (compute_transp): Same.
2214         (store_ops_ok): Same.
2215
2216         * function.c (purge_addressof_1): Do not allow paradoxical subregs
2217         of vectors.
2218         (fixup_var_refs_1): Same.
2219         (instantiate_virtual_regs_1): Same.
2220
2221         * fold-const.c (operand_equal_p): Handle vectors.
2222         (fold): Same.
2223         (rtl_expr_nonnegative_p): Same.
2224
2225         * flow.c (mark_used_regs): Handle vectors.
2226
2227         * df.c (df_uses_record): Handle vectors.
2228
2229         * cselib.c (cselib_subst_to_values): Handle vectors.
2230         (cselib_mem_conflict_p): Same.
2231         (hash_rtx): Same.
2232
2233         * cse.c (canon_reg): Handle vectors.
2234         (fold_rt): Same.
2235         (cse_process_notes): Same.
2236         (count_reg_usage): Same.
2237         (canon_hash): Same.
2238
2239         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
2240
2241         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
2242
2243         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
2244         (gen_rtx): Handle CONST_VECTOR.
2245         (gen_const_vector_0): New.
2246         (copy_rtx_if_shared): CONST_VECTORs can be shared.
2247         (reset_used_flags): Same.
2248         (copy_insn_1): Same.
2249         (initializer_constant_valid_p): Handle VECTOR_CST.
2250
2251         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
2252
2253         * doc/rtl.texi (Constants): Document const_vector.
2254         (CONST0_RTX): Update for vectors.
2255         (RTL sharing): Same.
2256
2257         * print-tree.c (print_node): Add case for VECTOR_CST.
2258
2259         * tree.h (TREE_VECTOR_CST_ELTS): New.
2260         (struct tree_vector): New.
2261         (union tree_node): Add vector node.
2262         (build_vector): Add prototype.
2263
2264         * tree.def (VECTOR_CST): New.
2265
2266         * tree.c (build_vector): New.
2267
2268         * expmed.c (make_tree): Handle CONST_VECTOR.
2269
2270         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
2271         (CONST_VECTOR_ELT): New.
2272         (CONST_VECTOR_NUNITS): New.
2273
2274         * machmode.h (GET_MODE_INNER): New.
2275         (DEF_MACHMODE): Accept 8th arg.
2276
2277         * machmode.def: Add 8th argument for vector inner mode.
2278         Add inner vector modes for vectors.
2279
2280         * rtl.def (VEC_CONST): Remove.
2281         (CONST_VECTOR): New.
2282
2283         * expr.c (clear_storage): Allow vectors.
2284         (is_zeros_p): Handle VECTOR_CST.
2285
2286         * varasm.c (output_constant_pool): Handle vectors.
2287         (rtx_const): Add veclo and vechi fields.
2288         (kind): Add RTX_VECTOR.
2289         (decode_rtx_const): Add case for vector.
2290
2291         * config/rs6000/rs6000-protos.h: Add zero_constant.
2292
2293         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
2294         constants.  Force easy vector constants into memory.
2295         (easy_vector_constant): New.
2296         (emit_easy_vector_constant): New.
2297         (rs6000_legitimize_reload_address): Do not generate bad reloads on
2298         darwin.
2299
2300         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
2301         instruction does.
2302         ("altivec_lvxl"): Same.
2303         (altivec_lvebx): Same.
2304         (altivec_lvehx): Same.
2305         (altivec_lvewx): Same.
2306         ("*movv4si_const0"): New.
2307         ("*movv4sf_const0"): New.
2308         ("*movv8hi_const0"): New.
2309         ("*movv16qi_const0"): New.
2310
2311 2002-02-18  Kazu Hirata  <kazu@hxi.com>
2312
2313         * config/h8300/h8300.c (notice_update_cc): Use
2314         cc_status.value2.
2315
2316 2002-02-18  Kazu Hirata  <kazu@hxi.com>
2317
2318         * config/h8300/h8300.md (divmod patterns): Change the
2319         constraints for operands[1] to register_operand.
2320
2321 2002-02-18  Kazu Hirata  <kazu@hxi.com>
2322
2323         * config/h8300/h8300-protos.h: Remove the prototype for
2324         p_operand.
2325         * config/h8300/h8300.c (p_operand): Remove.
2326         * config/h8300/h8300.md: Replace p_operand with
2327         const_int_operand.
2328
2329 2002-02-18 Philip Blundell <pb@nexus.co.uk>
2330
2331         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
2332         comment.
2333         (output_return_instruction): Allow use of LDR to unstack
2334         return addresss even for interrupt handlers or when
2335         interworking.  If compiling for ARMv5, use interworking-safe
2336         return instructions by default.  Remove duplicated code and
2337         lengthy "strcat" sequences.
2338
2339 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2340
2341         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
2342         (LINK_EH_SPEC): Define.
2343         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
2344
2345 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
2346
2347         * config/s390/s390.c (s390_emit_prologue): Do not set the
2348         frame_related flag for call-clobbered registers.
2349
2350 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
2351
2352         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
2353         (construct_container): Fix handling of SSE operands.
2354         (ix86_expand_builtin): Fix handling of 64bit pointers.
2355         (mmx_maskmovq_rex): New pattern.
2356
2357 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
2358
2359         * regrename.c (kill_set_value): Handle subregs properly.
2360
2361 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
2362
2363         * objc/objc-act.c (handle_impent): Remove leading '*'
2364         from objc_class_name.
2365
2366 2002-02-17  Richard Henderson  <rth@redhat.com>
2367
2368         * config/alpha/alpha.c (some_small_symbolic_operand,
2369         some_small_symbolic_operand_1, split_small_symbolic_operand,
2370         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
2371         Handle small SYMBOL_REFs anywhere, not just inside memories.
2372         * config/alpha/alpha-protos.h: Update.
2373         * config/alpha/alpha.h (PREDICATE_CODES): Update.
2374         * config/alpha/alpha.md (small symbolic operand splitter): Update.
2375
2376 2002-02-17  Roland McGrath  <roland@frob.com>
2377
2378         * config.gcc (powerpc-*-gnu-gnualtivec*,
2379         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
2380         * config/rs6000/gnu.h: New file.
2381         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
2382         Grok "gnu" in rs6000_abi_name.
2383         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
2384         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
2385         Grok -mcall-gnu analogous to -mcall-linux et al.
2386         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
2387         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
2388         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
2389
2390 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
2391
2392         PR c/3444:
2393         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
2394         shortening.
2395
2396 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2397
2398         * config/cris/cris.h: Undefine STARTFILE_SPEC and
2399         ENDFILE_SPEC before (re)defining them.
2400
2401 2002-02-17  Kazu Hirata  <kazu@hxi.com>
2402
2403         * config/h8300/h8300.c: Fix formatting.
2404         * config/h8300/h8300.h: Likewise.
2405
2406 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2407
2408         * doc/tm.texi: Explain why empty strings should not be
2409         marked for translation.
2410
2411 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2412
2413         * final.c (output_operand_lossage): Changed to accept
2414         printf style arguments. Change calls where necessary.
2415         * output.h (output_operand_lossage): Change declaration
2416         accordingly. Update copyright.
2417         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
2418         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
2419         Update copyright date where necessary.
2420
2421         * config/i386/i386.c (print_operand): Likewise. Remove use of
2422         sprintf.
2423
2424         * config/cris/cris.c (cris_operand_lossage): Likewise.
2425         Rename parameter so that exgettext recognizes it as
2426         translatable message.
2427         (LOSE_AND_RETURN): Rename parameter to msgid.
2428
2429 2002-02-17  Kazu Hirata  <kazu@hxi.com>
2430
2431         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
2432         hard coded register number with an appropriate macro.
2433         (HARD_REGNO_MODE_OK): Likewise.
2434         (ARG_POINTER_REGNUM): Likewise.
2435         (STATIC_CHAIN_REGNUM): Likewise.
2436         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
2437         * config/h8300/h8300.md (define_constants): Define more
2438         register numbers.
2439
2440 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2441
2442         * config/i386/i386.h: Don't mark empty strings for translation.
2443
2444 2002-02-16  H.J. Lu <hjl@gnu.org>
2445
2446         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
2447
2448 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
2449
2450         * cppinit.c (merge_include_chains): Check for brack being
2451         NULL before attempting to merge it with qtail.
2452
2453 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
2454
2455         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
2456         DBX_DEBUG.
2457
2458 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2459
2460         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
2461
2462 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2463
2464         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
2465         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
2466         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
2467
2468 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2469
2470         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
2471         now only if !TARGET_FIX.
2472         (*movsi_nt_vms_fix): New pattern.
2473
2474 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
2475
2476         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
2477         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
2478         (alpha_sa_mask, alpha_sa_size): Reflect above change.
2479         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
2480         (alpha_start_function, alpha_expand_epilogue): Likewise.
2481         (unicosmk_gen_dsib): Likewise.
2482
2483 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2484
2485         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
2486
2487 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
2488
2489         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
2490         check_and_change_labels, s390_final_chunkify): Delete.
2491         (s390_split_branches, s390_chunkify_pool): New functions.
2492         (s390_function_prologue): Call them.
2493
2494         * config/s390/s390.h (S390_REL_MAX): Delete.
2495         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
2496
2497         * config/s390/s390.md (cjump, icjump, jump): Fix length
2498         attribute calculation.
2499
2500
2501 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
2502
2503         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
2504         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
2505
2506 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2507
2508         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
2509         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
2510         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
2511
2512 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
2513
2514         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
2515
2516 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
2517
2518         * reload.c (find_dummy_reload): Check that an output register
2519         is valid for its mode.
2520
2521 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
2522
2523         * combine.c (known_cond): After replacing the REG of a SUBREG, try
2524         to simplify it.
2525
2526         * function.c (assign_parms): Demote promoted argument passed by
2527         transparent reference.
2528
2529 2001-02-14      Joel Sherrill <joel@OARcorp.com>
2530
2531         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
2532         -Acpu() and -Amachine() to eliminate warnings.
2533
2534 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
2535
2536         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
2537
2538 2002-02-14  Kazu Hirata  <kazu@hxi.com>
2539
2540         * config/h8300/h8300-protos.h: Update the prototype for
2541         const_costs.
2542         * config/h8300/h8300.c (const_costs): Treat SET as a little
2543         more expensive operation.
2544         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
2545         reference to const_costs.
2546
2547 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
2548
2549         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
2550
2551 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
2552
2553         PR c/5503:
2554         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
2555         use arguments from newtype.
2556
2557 2002-02-13  Eric Christopher  <echristo@redhat.com>
2558
2559         * config/mips/mips.c (override_options): Add check for march/mipsX
2560         on the same command line. Fix error message in cpu processing.
2561         Remove architecture and ISA checks.
2562
2563 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
2564
2565         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
2566
2567         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
2568
2569 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
2570
2571         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
2572         alternatives.
2573         ("*movv8hi_internal1"): Same.
2574         ("*movv16qi_internal1"): Same.
2575         ("*movv4sf_internal1"): Same.
2576
2577         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
2578         not push_reload for altivec modes.
2579
2580 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
2581
2582         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
2583         all RTEMS targets including removal of #includes from config/*/rtems*.h
2584         file and adding them to tm_file setting. Added xm_defines=POSIX to
2585         many targets.
2586         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
2587         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
2588         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
2589         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
2590         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
2591         config/m68k/rtemself.h: Ditto.
2592         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
2593         config/mips/rtems64.h: Ditto.
2594         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
2595         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
2596         Ditto.
2597         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
2598         config/sparc/rtemself.h: Ditto.
2599         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
2600         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
2601         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
2602         more like arm-elf.
2603         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
2604         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
2605         target made more similar to i386-elf.
2606         * config/i386/t-rtems-i386: Added soft float support and multilibs.
2607         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
2608         be similar to config/m68k/t-m68kelf.
2609         * gthr-rtems.h: Encapsulate with extern "C" for C++.
2610
2611 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
2612
2613         * regmove.c (kill_value): Handle subregs.
2614
2615 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
2616
2617         * i386.md (mul patterns): Allow memory operand to be first;
2618         add expanders where needed; fix constraints.
2619         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
2620         Allow memory operand to be the first.
2621
2622         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
2623         operands.
2624
2625 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
2626
2627         PR c/5681:
2628         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
2629         GET_MODE (x).
2630
2631 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
2632
2633         PR optimization/5547:
2634         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
2635         all valid IA-32 address modes involving non-scaled %ebx and
2636         GOT/GOTOFF as displacement.
2637
2638 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
2639
2640         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
2641         after emitting ltorg insns.
2642
2643         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
2644         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
2645         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
2646         *abssf2): Fix "op_type" attribute.
2647
2648 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
2649
2650         * mkconfig.sh: Avoid using a subshell redirect.
2651         ($output.T): Change to $(output)T.
2652         (ENABLE_NLS): Remove unneeded undef.
2653
2654         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
2655         * config/alpha/x-vms (libsubdir): Define.
2656
2657         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
2658         register frame procedures. Optimize retrieving context.
2659
2660         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
2661         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
2662         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
2663
2664 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2665
2666         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
2667         Make same change as for find_base_value.
2668
2669 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2670
2671         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
2672         of QImode and SImode.
2673
2674 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2675
2676         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
2677         length computation of movsi.
2678         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
2679
2680 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2681
2682         * config/h8300/h8300.md (subqi3): Tighten the predicate for
2683         operands[2] to register_operand.
2684
2685 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
2686
2687         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
2688
2689 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
2690
2691         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
2692         for altivec_lvx* and altivec_stvx*.
2693         ("*movv4si_internal"): Add constraint for loading from GPRs.
2694         ("*movv8hi_internal1"): Same.
2695         ("*movv16qi_internal1"): Same.
2696         ("*movv4sf_internal1"): Same.
2697
2698         * config/rs6000/rs6000.c (altivec_register_operand): New.
2699
2700         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2701         altivec_register_operand.
2702
2703 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
2704
2705         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
2706         handle SYMBOL_REF.
2707
2708 2002-02-13  Stan Shebs  <shebs@apple.com>
2709
2710         * c-typeck.c (digest_init): Handle vectors.
2711         (really_start_incremental_init): Same.
2712         (pop_init_level): Same.
2713         (process_init_element): Same.
2714
2715         * varasm.c (output_constant): Same.
2716
2717         * expr.c (clear_storage): Same.
2718         (store_constructor): Same.
2719
2720 2002-02-12  Eric Christopher  <echristo@redhat.com>
2721
2722         * explow.c (hard_function_value): Add comment explaining
2723         signed/unsigned comparison.
2724
2725 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
2726
2727         * jump.c (never_reached_warning): Add finish argument.
2728         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
2729         real insn after end.
2730         * rtl.h (never_reached_warning): Adjust prototype.
2731         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
2732         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
2733         never_reached_warning.
2734
2735 2002-02-12  Graham Stott  <grahams@redhat.com>
2736
2737         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
2738
2739 2002-02-12  Kazu Hirata  <kazu@hxi.com>
2740
2741         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
2742         logical shifts on H8/300.
2743         (shift_alg_si): Improve several shifts on H8/300.
2744         (get_shift_alg): Likewise.
2745
2746 2002-02-12  Graham Stott  <grahams@redhat.com>
2747
2748         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
2749
2750 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2751
2752         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
2753         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
2754
2755 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
2756
2757         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
2758         non-CONST_INT through default_assemble_integer.
2759         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
2760         <case 8>: Abort for CONST_DOUBLE.
2761
2762 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2763
2764         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
2765         is specified.
2766         * config/pa/pa-linux.h (LIB_SPEC): Delete.
2767         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
2768
2769 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
2770
2771         * config/stormy16/stormy16.md (zero_extendqihi2): New.
2772
2773 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
2774
2775         * regrename.c (regrename_optimize): Don't accept a
2776         part-clobbered register if the replaced register is not part
2777         clobbered.
2778
2779         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
2780         take padding into account when computing the argument value.
2781
2782         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
2783
2784         * combine.c (try_combine): Apply substitutions in
2785         CALL_INSN_FUNCTION_USAGE too.
2786
2787 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
2788
2789         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
2790         __builtin_altivec_abs*.
2791         (bdesc_abs): New.
2792
2793         * config/rs6000/rs6000.h (rs6000_builtins): Add
2794         ALTIVEC_BUILTIN_ABS*.
2795
2796         * config/rs6000/altivec.h: Use const char for builtins expecting
2797         literals.
2798         (vec_abs): New versions for C and C++.
2799         (vec_abss): Same.
2800
2801 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2802
2803         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
2804         using Pmode.
2805
2806 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2807
2808         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
2809         constant definition from h8300.md.
2810         (FRAME_POINTER_REGNUM): Likewise.
2811         * config/h8300/h8300.md (define_constants): Add FP_REG.
2812
2813 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2814
2815         * config/h8300/h8300.c (print_operand): Remove redundant code.
2816
2817 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2818
2819         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
2820         * config/h8300/h8300.c (byte_reg): Make it static.
2821
2822 2002-02-10  Richard Henderson  <rth@redhat.com>
2823
2824         PR c/5623
2825         * c-typeck.c (incomplete_type_error): Handle flexible array members.
2826
2827 2002-02-10  Richard Henderson  <rth@redhat.com>
2828
2829         PR c++/5624
2830         * tree.c (append_random_chars): Don't abort if main_input_filename
2831         does not exist.
2832
2833 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
2834
2835         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
2836
2837 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2838
2839         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
2840         (pushhi1): Likewise.
2841
2842 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2843
2844         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
2845         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
2846
2847 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
2848
2849         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
2850         remove MASK_VIS.
2851         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
2852
2853 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2854
2855         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
2856         a half of an SImode register on H8/300.
2857
2858 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
2859
2860         * i386.md (movdi_2): Add missing '!'.
2861
2862 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2863
2864         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
2865         definitions.
2866
2867 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2868
2869         * config/h8300/h8300.md (length): Correct the distance valid
2870         for the short branch.
2871
2872 2002-02-09  Kazu Hirata  <kazu@hxi.com>
2873
2874         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
2875
2876 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
2877
2878         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
2879         registers in SImode.
2880         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
2881         part-clobbered.
2882
2883         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
2884         patch.
2885
2886         Contribute sh64-elf.
2887         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
2888         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
2889         (sh_cannot_modify_jumps_p): New function.
2890         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
2891         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
2892         (sh_ms_bitfield_layout_p): New function.
2893         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
2894                     Zack Weinberg  <zack@codesourcery.com>
2895         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
2896         expand_simple_binop instead of expand_binop.
2897         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
2898         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
2899         use of .quad and .uaquad.
2900         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
2901         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
2902         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2903         * config/sh/sh.md (movdi_const, movdi_const_32bit,
2904         movdi_const_16bit): Make sure all CONSTs have modes.
2905         (sym2PIC): Ditto, but by adjusting all callers.
2906         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
2907         if the prologue calls the SHmedia argument decoder or register
2908         saver.
2909         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2910         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
2911         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
2912         (sh_expand_epilogue): Don't emit USE of return target register.
2913         (prepare_move_operands): Legitimize DImode PIC addresses.
2914         (sh_media_register_for_return): Skip tr0, used to initialize the
2915         PIC register.
2916         (sh_expand_prologue): Remove explicit USE of return register.
2917         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
2918         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
2919         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
2920         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
2921         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
2922         EXTRA_CONSTRAINT_T.
2923         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
2924         (MOVI_SHORI_BASE_OPERAND_P): New.
2925         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
2926         (EXTRA_CONSTRAINT_T): Define in terms of them.
2927         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
2928         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
2929         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
2930         alternatives supporting TARGET_REGS.
2931         (UNSPEC_GOTPLT): New constant.
2932         (movdi split): Move incrementing of LABEL_NUSES...
2933         (movdi_const, movdi_const_32bit): Here.  Use
2934         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
2935         (movdi_const_16bit): New.
2936         (call, call_value) [flag_pic]: Use GOTPLT.
2937         (call_pop, call_value_pop): New expands.
2938         (call_pop_compact, call_pop_rettramp): New insns.
2939         (call_value_pop_compact, call_value_pop_rettramp): New insns.
2940         (sibcall) [flag_pic]: Use GOT.
2941         (builtint_setjmp_receiver): Remove bogus, unused expand.
2942         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
2943         (*pt, *ptb, ptrel): New insns.
2944         (sym2GOT): Handle DImode GOT.
2945         (sym2GOTPLT, symGOTPLT2reg): New expands.
2946         (sym2PIC): New expand.
2947         (shcompact_return_tramp): Use GOTPLT to return trampoline.
2948         (shcompact_return_tramp_i): Use return register explicitly.
2949         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
2950         disable flag_reorder_blocks.
2951         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
2952         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
2953         clobbers, for clarity.
2954         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
2955         restoring of r0 in macl as MAYBE_DEAD.
2956         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
2957         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
2958         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
2959         alter_subreg all over.
2960         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
2961         reload, instead of emitting instructions that would require
2962         reloading.
2963         (casesi_load_media): Add missing modes.
2964         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
2965         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
2966         as used if the argument decoder is called.
2967         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
2968         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
2969         Pmode, then extend it to DImode if necessary.
2970         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
2971         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
2972         constants in FPU-enabled SHmedia, let them be loaded from memory.
2973         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
2974         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
2975         Adjust whitespace in assembly output templates.
2976         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
2977         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
2978         mode of if_then_else.
2979         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
2980         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
2981         sh.h.
2982         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
2983                     Joern Rennecke <amylaar@redhat.com>
2984         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
2985         (SUBTARGET_CPP_PTR_SPEC): New.
2986         (SUBTARGET_CPP_SPEC): Remove.
2987         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
2988         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
2989         Fix typo in previous checkin.
2990         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
2991         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
2992         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
2993                     Alexandre Oliva  <aoliva@redhat.com>
2994         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
2995         what single FP register can hold for SHmedia target.
2996         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
2997                     Alexandre Oliva  <aoliva@redhat.com>
2998         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
2999         Do not split into SUBREG.
3000         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
3001         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
3002         and added new functions as specified in SH5 ABI r9.
3003         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
3004         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
3005         8-byte boundary.
3006         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
3007         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
3008         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
3009         and consttable_window_ends.
3010         2001-06-03  Graham Stott  <grahams@redhat,com>
3011         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
3012         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
3013         * config/sh/sh.c (print_operand): Handle floating-point pair,
3014         vector and matrix registers.
3015         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
3016         vector modes into account.
3017         * config/sh/sh.md (movv2sf): Split move between registers into
3018         movdf.
3019         (movv4sf, movv16sf): Introduce insns that get split only after
3020         reload.
3021         * config/sh/shmedia.h: Fix Copyright dates.
3022         * config/sh/ushmedia.h: Likewise.  Move loop counter
3023         declarations into conditionals that uses them.
3024         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
3025         loop boundary.
3026         * config/sh/sshmedia.h: Fix Copyright dates.
3027         (sh_media_PUTCFG): Fix constraints.
3028         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
3029         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
3030         ptrmemfunc_vbit_in_delta for SH5.
3031         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
3032         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
3033         * invoke.texi: Likewise.
3034         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
3035         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
3036         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
3037         GCC_pop_shmedia_regs_nofpu): New global symbols.
3038         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
3039         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
3040         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
3041         compact function with nonlocal labels.
3042         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
3043         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
3044         (initial_elimination_offset): Account for their stack space.
3045         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
3046         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
3047         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
3048         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
3049         least one of the operands to be a register.
3050         (movv2sf): Likewise.  Renamed to movv2sf_i.
3051         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
3052         prepare_move_operands() before emitting SHmedia insns.
3053         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
3054         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
3055         Don't save nor initialize r12.  Don't mis-align the stack.
3056         Pad the code with a nop.
3057         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
3058         stack.
3059         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
3060         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
3061         [__SHMEDIA__]: Implement.
3062         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
3063         * config/sh/sh.md: Set latency of `pt' closer to reality.
3064         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
3065         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
3066         Set move, load and store type attributes.
3067         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
3068         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
3069         profiling.
3070         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
3071         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
3072         * config/sh/sh.c (sh_media_register_for_return): New function.
3073         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
3074         branch-target register.
3075         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
3076         * config/sh/sh.md (return_media_i): Use any call-clobbered
3077         branch-target register.
3078         (return_media): If r18 wasn't copied in the prologue, copy it
3079         here.
3080         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
3081         Clear class FP0_REGS.
3082         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
3083         from elf.h.
3084         2001-03-08  DJ Delorie  <dj@redhat.com>
3085         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
3086         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
3087         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
3088         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
3089         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
3090         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
3091         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
3092         return value correctly for call_cookie.
3093         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
3094         * config/sh/crt1.asm (start): Modified so as to call
3095         ___setup_argv_and_call_main.
3096         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
3097         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
3098         SHmedia mode.
3099         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
3100         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
3101         (STRIP_NAME_ENCODING): Use it.
3102         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
3103         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
3104         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
3105         prepare_scc_operands().
3106         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
3107         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
3108         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
3109         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
3110         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
3111         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
3112         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
3113         used in shcompact_incoming_args.
3114         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
3115         change.
3116         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
3117         mode.
3118         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
3119         Adjust accordingly.
3120         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3121         Simplify.  Adjust.  Add sanity check.
3122         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
3123         FPU_SINGLE_BIT.
3124         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
3125         TARGET_SHCOMPACT.
3126         (udivsi3, divsi3): Use them.
3127         (force_mode_for_call): New insn.
3128         (call, call_value, sibcall_value): Emit it before SHcompact
3129         calls.
3130         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
3131         * config/sh/sh.md (call, call_value, sibcall): Make sure the
3132         call cookie is non-NULL before taking its value.
3133         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
3134         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
3135         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
3136         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
3137         block.
3138         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
3139         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
3140         temporary for stack adjusts.  Use MACL and MACH to pass
3141         arguments to shcompact_incoming_args.
3142         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
3143         clobber r1.
3144         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
3145         (nested_trampoline): Load static chain address into r1.
3146         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
3147         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
3148         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
3149         fp_arith_reg_operand().
3150         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
3151         * config/sh/sh.md (casesi): Sign-extend the first two operands,
3152         and use signed compares for them.
3153         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
3154         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
3155         ones properly aligned.
3156         (find_barrier): Account for extra alignment needed for 8-byte wide
3157         constants.
3158         (machine_dependent_reorg): Require a label for the second 4-byte
3159         constant after an 8-byte one.
3160         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
3161         change.
3162         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
3163         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
3164         last_float when switching float modes.
3165         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
3166         auto-increment for general-purpose registers.
3167         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
3168         result.
3169         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
3170         for stack adjust.
3171         * config/sh/sh.c (sh_builtin_saveregs): Support using all
3172         registers for varargs.
3173         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
3174         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
3175         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
3176         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
3177         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
3178         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
3179         call_cookie accordingly.
3180         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
3181         (SHCOMPACT_BYREF): Likewise.
3182         (SHCOMPACT_FORCE_ON_STACK): New macro.
3183         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
3184         (sh_builtin_saveregs): Likewise.
3185         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
3186         shcompact_incoming_args): Use new shift values.  Support
3187         sequences of consecutive and non-consecutive pushes/pops.
3188         * config/sh/sh.md (return): Don't explicitly use PR_REG.
3189         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
3190         * config/sh/sh.h (TEXT_SECTION): Define.
3191         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
3192         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
3193         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
3194         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
3195         return values on FPU-enabled SHmedia.
3196         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
3197         FPU-enabled SHmedia.
3198         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
3199         value is returned in a non-FP reg and is not returned by
3200         reference.
3201         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
3202         jump_ind.
3203         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
3204         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
3205         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
3206         quad-aligned to be passed by callee-copy reference.
3207         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
3208         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
3209         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
3210         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
3211         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
3212         copying low-numbered FP regs to r7 and r8.
3213         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
3214         FP regs to general-purpose regs only if the copy was passed on the
3215         stack.
3216         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
3217         copying FP reg to r9.
3218         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
3219         copy FP regs to general-purpose regs only in outgoing calls.
3220         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
3221         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
3222         HOST_WIDE_INT.
3223         * config/sh/sh.h (struct sh_args): Document all fields.
3224         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
3225         passed partially on the stack should not consider making
3226         sibcalls.
3227         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
3228         stack_regs only for incoming calls.  When passing FP args,
3229         make sure there are FP regs available before modifying
3230         call_cookie.
3231         (SHCOMPACT_BYREF): Pass double args in general-purpose
3232         registers by reference.
3233         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
3234         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
3235         attempt to generate sibcalls if the caller got any arguments
3236         by reference.
3237         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
3238         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
3239         to 8-byte boundaries.
3240         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
3241         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
3242         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
3243         stored in the stack.
3244         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
3245         for the offsets to have the ISA bit set.
3246         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
3247         invocation.  Use beq instead of bgt to mark end of sequence of
3248         loads.
3249         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
3250         bgt to mark end of sequence of stores.
3251         * config/sh/sh.c (arith_operand): Don't check whether
3252         CONST_OK_FOR_J for now.
3253         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
3254         instead of long for conversion.
3255         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
3256         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
3257         before passing it to fprintf.
3258         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
3259         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
3260         Call set_fpscr before reading/writing SR.
3261         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
3262         Call set_fpscr.
3263         * config/sh/lib1funcs.asm: Add `.align 2' directives before
3264         SHmedia code.
3265         (FMOVD_WORKS): Define on SH5 with FPU.
3266         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
3267         setting.
3268         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
3269         _fpscr_values.
3270         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
3271         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
3272         address.
3273         (ia_main_table): Ditto.
3274         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
3275         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
3276         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
3277         the definitions from sh.h.
3278         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
3279         TARGET_SH5.
3280         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
3281         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
3282         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
3283         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
3284         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
3285         Increment LABEL_NUSES.
3286
3287         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
3288         TARGET_SH5.
3289         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
3290         defined.
3291         * config/sh/elf.h (SIZE_TYPE): Likewise.
3292         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
3293         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
3294         shcompact_incoming_args): Load switch table addresses using
3295         datalabel.
3296         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
3297         (NO_BUILTIN_SIZE_TYPE): Define.
3298         (SIZE_TYPE): Don't define.
3299         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
3300         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
3301         definition of __SH5__=32 for -m5-compact-nofpu.
3302         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
3303         ADDR_DIFF_VEC.
3304         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
3305         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
3306         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
3307         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
3308         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
3309         (INSN_LENGTH_ALIGNMENT): Likewise.
3310         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
3311         * config/sh/sh.md (call, call_value, sibcall): Simplify
3312         copying of non-branch-target register.
3313         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
3314         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
3315         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
3316         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
3317         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
3318         floating-point values as structs.
3319         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
3320         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
3321         general-purpose register.
3322         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
3323         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
3324         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
3325         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
3326         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
3327         (ENCODE_SECTION_INFO): Enclose variables and constants in
3328         DATALABEL unspecs.
3329         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
3330         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
3331         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
3332         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
3333         only for LABEL_REFs.  For SYMBOL_REFs, prepend
3334         SH_DATALABEL_ENCODING to the symbol name.
3335         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
3336         convert_mode().
3337         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
3338         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
3339         UNSPEC_DATALABEL.
3340         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
3341         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
3342         (DATALABEL_REF_P): Don't require CONST.
3343         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
3344         REL label.
3345         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
3346         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
3347         right.
3348         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
3349         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
3350         Use shallow_copy_rtx and PUT_MODE to change the mode of
3351         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
3352         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
3353         on SHmedia using GENERAL_REGs.
3354         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
3355         bltu_media_i): Fix reversion of conditions.
3356         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
3357         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
3358         * config/sh/sh.c (output_far_jump): Save r13 in macl.
3359         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
3360         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
3361         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
3362         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
3363         (GCC_nested_trampoline): Likewise.
3364         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
3365         * config/sh/sh.c (gen_datalabel_ref): Define.
3366         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
3367         (INITIALIZE_TRAMPOLINE): Likewise.
3368         (TRAMPOLINE_ADJUST_ADDRESS): Define.
3369         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
3370         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
3371         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
3372         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
3373         (ic_invalidate): Adjust for SH5.
3374         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
3375         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
3376         _nested_trampoline.
3377         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
3378         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
3379         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
3380         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
3381         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
3382         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
3383         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
3384         * config/sh/sh.c (target_reg_operand): Match only target-branch
3385         registers and pseudos that aren't virtual registers.
3386         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
3387         Copy operands that don't match target_reg_operand to pseudos.
3388         (call_media, call_value_media, sibcall_media): Use
3389         target_reg_operand instead of target_operand.
3390         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
3391         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
3392         * config/sh/sh.c (target_reg_operand): Match hardware registers
3393         other than branch-target registers.
3394         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
3395         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
3396         (fpscr_values) [SH5 == 32]: Define.
3397         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
3398         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
3399         Handle function addresses coming in SUBREGs.
3400         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
3401         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
3402         shcompact_return_trampoline): Use datalabel where appropriate.
3403         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
3404         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
3405         general-purpose register to copy one branch-target register to
3406         another.
3407         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
3408         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
3409         SYMBOL_REFs with VOIDmode.
3410         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
3411         bltu_media_i): New insns.
3412         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
3413         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
3414         (INIT_CUMULATIVE_ARGS): Likewise.
3415         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
3416         * machmode.def (V16SFmode): New mode.
3417         * c-common.c (type_for_mode): Support V2SF and V16SF.
3418         * tree.c (build_common_tree_nodes_2): Likewise.
3419         * tree.h (tree_index): Likewise.
3420         * calls.c (emit_call_1): Take args_so_far.  Adjust all
3421         callers.  Introduce CALL_POPS_ARGS.
3422         * tm.texi (CALL_POPS_ARGS): Document.
3423         * config/sh/crt1.asm: Implement in SHmedia mode.
3424         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
3425         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
3426         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
3427         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
3428         Implement divsi and udivsi in SHmedia mode.  Introduce
3429         SHcompact trampolines.
3430         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
3431         only in SHmedia64.
3432         (regno_reg_class): Rewrite.
3433         (fp_reg_names): Remove.
3434         (sh_register_names, sh_additional_register_names): New.
3435         (print_operand): Added `u'.  Support SUBREGs in addresses.
3436         Add parentheses around shifted CONSTs.
3437         (output_file_start): Output .mode and .abi directives.
3438         (shiftcosts, addsubcosts, multcosts): Adjust.
3439         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
3440         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
3441         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
3442         bytes, not registers.  Take into account the need for the
3443         SHcompact incoming args trampoline.  Adjust all callers.
3444         (sh_expand_prologue): Take stack_regs into account.  Call
3445         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
3446         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
3447         stack aligned as per SH5 ABI.
3448         (sh_builtin_saveregs): Support SH5 ABI.
3449         (sh_build_va_list, sh_va_start): Likewise.
3450         (initial_elimination_offset): Take alignment into account.
3451         Compute location of PR according to the SH5 stack frame.
3452         (arith_reg_operand): Reject branch-target registers.
3453         (shmedia_6bit_operand): New.
3454         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
3455         (target_reg_operand): Match DImode only.  Accept SUBREGs.
3456         (target_operand): New.
3457         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
3458         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
3459         SIBCALL_REGS for SHmedia.
3460         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
3461         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
3462         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
3463         (TARGET_SWITCHES): New SH5 flags.
3464         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
3465         VALID_REGISTER_P to disable unsupported registers.
3466         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
3467         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
3468         (FUNCTION_ARG_PADDING): Define.
3469         (FASTEST_ALIGNMENT): Adjust.
3470         (SH_REGISTER_NAMES_INITIALIZER): New.
3471         (sh_register_names): Declare.
3472         (DEBUG_REGISTER_NAMES): Define.
3473         (REGISTER_NAMES): Define based on sh_register_names.
3474         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
3475         (sh_additional_register_names): Declare.
3476         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
3477         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
3478         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
3479         (REGISTER_NATURAL_MODE): Define.
3480         (FIRST_PSEUDO_REGISTER): Adjust.
3481         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
3482         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
3483         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
3484         (VECTOR_MODE_SUPPORTED_P): Define.
3485         (REG_CLASS_CONTENTS): Adjust.
3486         (SMALL_REGISTER_CLASSES): Adjust.
3487         (REG_ALLOC_ORDER): Adjust.
3488         (INDEX_REG_CLASS): Adjust.
3489         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
3490         (CONST_OK_FOR_LETTER_P): Adjust.
3491         (PREFERRED_RELOAD_CLASS): Adjust.
3492         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
3493         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
3494         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
3495         (FIRST_FP_PARM_REG): Adjust.
3496         (CALL_POPS_ARGS): Define.
3497         (FUNCTION_ARG_REGNO_P): Adjust.
3498         (struct sh_args): New fields.
3499         (GET_SH_ARG_CLASS): Adjust.
3500         (INIT_CUMULATIVE_ARGS): Adjust.
3501         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
3502         (FUNCTION_ARG_ADVANCE): Adjust.
3503         (FUNCTION_ARG): Adjust.
3504         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
3505         (FUNCTION_ARG_CALLEE_COPIES): Define.
3506         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
3507         (STRICT_ARGUMENT_NAMING): Define.
3508         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
3509         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
3510         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
3511         (SETUP_INCOMING_VARARGS): Adjust.
3512         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
3513         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
3514         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
3515         (SUBREG_OK_FOR_INDEX_P): Adjust.
3516         (EXTRA_CONSTRAINT_S): Update.
3517         (EXTRA_CONSTRAINT_T): New.
3518         (EXTRA_CONSTRAINT): Adjust.
3519         (GO_IF_LEGITIMATE_INDEX): Adjust.
3520         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
3521         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
3522         (MOVE_MAX): Adjust.
3523         (MAX_MOVE_MAX): Define.
3524         (Pmode): Adjust.
3525         (CONST_COSTS): Adjust.
3526         (REGISTER_MOVE_COST): Adjust.
3527         (BRANCH_COST): Adjust.
3528         (TEXT_SECTION_ASM_OP): Adjust.
3529         (DBX_REGISTER_NUMBER): Adjust.
3530         (ASM_OUTPUT_DOUBLE_INT): New.
3531         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
3532         (PREDICATE_CODES): Adjust.
3533         (PROMOTE_MODE): Adjust.
3534         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
3535         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
3536         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
3537         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
3538         (DR0_REG, DR2_REG, DR4_REG): Renumber.
3539         (TR0_REG, TR1_REG, TR2_REG): New.
3540         (XD0_REG): Renumber.
3541         (UNSPEC_COMPACT_ARGS): New.
3542         (type): Added pt and ptabs.
3543         (length): Default to 4 on SHmedia.  Default pt length to 12
3544         and     20 on SHmedia32 and SHmedia64, respectively.
3545         (pt): New function unit.
3546         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
3547         Add whitespace between operands of SHmedia instructions.
3548         (movdicc): Fix.
3549         (adddi3_media, addsi3_media): Adjust constraints.
3550         (subsi3) [SHmedia]: Force operand 1 into a register.
3551         (udivsi3_i1_media, udivsi3_i4_media): New.
3552         (udivsi3): Support SHmedia.
3553         (divsi3_i1_media, divsi3_i4_media): New.
3554         (divsi3): Support SHmedia.
3555         (anddi3, iordi3, xordi3): Adjust constraints.
3556         (zero_extendhidi2, zero_extendqidi2): New.
3557         (extendsidi2, extendhidi2, extendqidi2): New.
3558         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
3559         (pop_e, pop_fpul, pop_4): Likewise.
3560         (movsi_media): Support FP and BT registers.
3561         (movsi_media_nofpu): New.  Adjust splits to DImode.
3562         (lduw, ldub): Renamed to zero_extend* above.
3563         (movqi_media): Fix typo.
3564         (movdi_media): Support FP and BT registers.
3565         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
3566         (movdi_const_32bit): New.
3567         (shori_media): Require immediate operand.  Use `u' for output.
3568         (movdf_media, movsf_media): Simplified.
3569         (movdf_media_nofpu, movsf_media_nofpu): New.
3570         (movdf, movsf): Adjust
3571         (movv2sf, movv2sf, movv16sf): New.
3572         (beq_media, beq_media_i): Adjust constraints.  Don't use
3573         scratch BT register.
3574         (bne_media, bne_media_i): Likewise.
3575         (bgt_media, bgt_media_i): Likewise.
3576         (bge_media, bge_media_i): Likewise.
3577         (bgtu_media, bgtu_media_i): Likewise.
3578         (bgeu_media, bgeu_media_i): Likewise.
3579         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
3580         bunordered): Emit jump insn.  Force operands to registers when
3581         needed.
3582         (jump_media, jump): Simplify.
3583         (call_compact, call_compact_rettramp): New.
3584         (call_value_compact, call_value_compact_rettramp): New.
3585         (call_media, call_value_media): Simplify.
3586         (sibcall_compact, sibcall_media): New.
3587         (call, call_value): Adjust for SHmedia and SHcompact.
3588         (sibcall, sibcall_value, untyped_call): Likewise.
3589         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
3590         (indirect_jump): Adjust for SHmedia.
3591         (casesi_jump_media): New.
3592         (nop): Re-enable for SHmedia.
3593         (call_site): Restrict to SH1.
3594         (casesi): Adjust for SHmedia.
3595         (casesi_shift_media, casesi_load_media): New.
3596         (return): Explicitly use PR register.  Call return trampoline
3597         on SHcompact.
3598         (return_i): Explicitly use PR register.
3599         (shcompact_return_tramp, shcompact_return_tramp_i): New.
3600         (return_media): Adjust.
3601         (shcompact_incoming_args): New.
3602         (epilogue): Adjust.
3603         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
3604         (movstrsi): Disable on SH5.
3605         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
3606         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
3607         (subsf3, subsf3_media): Likewise.
3608         (mulsf3, mulsf3_media, mac_media): Likewise.
3609         (divsf3, divsf3_media): Likewise.
3610         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
3611         (floatsisf2, fux_truncsfsi2): Likewise.
3612         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
3613         constraints.
3614         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
3615         (cmpunsf_media, cmpsf): Likewise.
3616         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
3617         (abssf2, abssf2_media): Likewise.
3618         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
3619         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
3620         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
3621         (floatsidf2, fix_truncdfsi2): Likewise.
3622         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
3623         constraints.
3624         (cmpeqdf_media, cmpgtdf_media): Likewise.
3625         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
3626         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
3627         (absdf2, absdf2_media): Likewise.
3628         (extendsfdf2, extendsfdf2_media): Likewise.
3629         (truncsfdf2, truncsfdf2_media): Likewise.
3630         * config/sh/sh64.h: New file.
3631         * config/sh/t-sh64: New file.
3632         * config/sh/shmedia.h: New file.
3633         * config/sh/ushmedia.h: New file.
3634         * config/sh/sshmedia.h: New file.
3635         * configure.in: Added sh64-*-elf.
3636         * configure: Rebuilt.
3637         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
3638         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
3639         (reg_class_from_letter): Use `b' for TARGET_REGS.
3640         (print_operand): Support `%M', `%m', `AND' and
3641         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
3642         (andcosts): Adjust for SHmedia.
3643         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
3644         Likewise.
3645         (target_reg_operand): New function.
3646         * config/sh/sh-protos.h (target_reg_operand): Declare.
3647         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
3648         FP registers on SH5.
3649         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
3650         on SH4.
3651         (TARGET_REGISTER_P): New macro.
3652         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
3653         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
3654         (EXTRA_CONSTRAINT_S): New macro.
3655         (EXTRA_CONSTRAINT): Adjust.
3656         (FLOAT_TYPE_SIZE): Define to 32.
3657         (Pmode): DImode on SHmedia.
3658         (CONST_COSTS): Adjust for SHmedia literals.
3659         (PREDICATE_CODES): Added target_reg_operand.
3660         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
3661         * config/sh/sh.md: Remove all attrs from SHmedia insns.
3662         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
3663         (cmpdi): Accept SHmedia.
3664         (movdicc_false, movdicc_true): New insns.
3665         (movdicc): New expand.
3666         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
3667         no_new_pseudos.
3668         (addsi3_media): Match `S' constraint.
3669         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
3670         (negdi2): Expand for SHmedia.
3671         (one_cmpldi2): New expand.
3672         (zero_extendsidi2): Change from expand to insn.
3673         (extendsidi2): Add constraints.
3674         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
3675         LD/ST address.  Fix SI immediate loading split.
3676         (movhi_media, movqi_media, lduw, ldub): New insns.
3677         (movhi, movqi): Accept SHmedia.
3678         (shori_media, movdi_media): Relax input constraints.  Split
3679         symbolic constants.
3680         (movdf_media, movsf_media): New insn.  New split to movdi.
3681         (movdf, movsf): Match on SHmedia.
3682         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
3683         bgeu_media): New insns and splits.  New insns with `_i' suffix.
3684         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
3685         (bunordered): New expand.
3686         (jump_compact): Renamed from `jump'.
3687         (jump_media): New insn.
3688         (jump): New expand.
3689         (call_media, call_value_media): New insns.
3690         (call, call_value): Adjust.
3691         (indirect_jump_compact): Renamed from `indirect_jump'.
3692         (indirect_jump_media): New insn.
3693         (indirect_jump): New expand.
3694         (untyped_call, return): Accept SHmedia.
3695         (return_media): New insn.
3696         (prologue, epilogue, blockage): Accept SHmedia.
3697         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
3698         (sunordered): New expand.
3699         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
3700         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
3701         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
3702         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
3703         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
3704         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
3705         abssf2_media): New insns.
3706         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
3707         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
3708         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
3709         floatdidf2, floatsidf2_media, fix_truncdfdi2,
3710         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
3711         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
3712         absdf2_media): New insns.
3713         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
3714         (extendsfdf2_media, truncdfsf2_media): New insns.
3715         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
3716         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
3717         * config/sh/sh.h (CONST_OK_FOR_J): Document.
3718         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
3719         * config/sh/sh.md (adddi3): New expand.
3720         (adddi3_media, adddi3z_media): New insns.
3721         (adddi3_compact): Renamed from adddi3.
3722         (addsi3_media): Use add.l r63 to add constant zero.
3723         (subdi3): New expand.
3724         (subdi3_media): New insn.
3725         (subdi3_compact): Renamed from subdi3.
3726         (mulsidi3): New expand.
3727         (mulsidi3_media): New insn.
3728         (mulsidi3_compact): Renamed from mulsidi3.
3729         (umulsidi3): New expand.
3730         (umulsidi3_media): New insn.
3731         (umulsidi3_compact): Renamed from umulsidi3.
3732         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
3733         (ashlsi3, ashrsi3, lshrsi3): Use them.
3734         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
3735         (ashldi3, ashrdi3, lshrdi3): Use them.
3736         (zero_extendsidi2): New expand.
3737         (extendsidi2): New insn.
3738         (movsi_media): New insn.  Split to movdi to load constants.
3739         (movsi): Enable for shmedia.
3740         (movdi_media): New insn.  Use shori_media to load wide constants.
3741         (short_media): New insn.
3742         (movdi): Enable for shmedia.
3743         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
3744         * config/sh/sh.h (CPP_SPEC): Added `m5'.
3745         (SUBTARGET_CPP_SPEC): Added `!m5'.
3746         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
3747         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
3748         to all other SH variants.
3749         (TARGET_DEFAULT): Set to SH1_BIT.
3750         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
3751         (BITS_PER_WORD): Raise to 64 on shmedia.
3752         (MAX_BITS_PER_WORD): Change to 64.
3753         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
3754         (INT_TYPE_SIZE): Keep as 32.
3755         (UNITS_PER_WORD): Raise to 8 on shmedia.
3756         (MIN_UNITS_PER_WORD): Keep as 4.
3757         (POINTER_SIZE): Raise to 64 on shmedia.
3758         (CONST_OK_FOR_J): New macro.
3759         (CONST_OK_FOR_LETTER_P): Use it.
3760         (processor_type): Add PROCESSOR_SH5.
3761         * config/sh/sh.md: Conditionalize all expands, insns and
3762         splits to TARGET_SH1.
3763         (cpu): Added sh5.
3764         (addsi3_compact): Renamed from...
3765         (addsi3): Now an expand.
3766         (addsi3_media, subsi3_media): New insns.
3767         (subsi3): Don't negate constants with SHmedia.
3768
3769         * hooks.c: New file.
3770         * hooks.h: New file.
3771         * Makefile.in (HOOKS_H): New.
3772         (TARGET_DEF_H): Added $(HOOKS_H).
3773         (OBJS): Added hooks.o.
3774         (cfgcleanup.o, bb-reorder.o): Added target.h.
3775         (hooks.o): Added dependencies.
3776         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
3777         (TARGET_INITIALIZER): this.
3778         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
3779         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
3780         * bb-reorder.c: Include target.h.
3781         (reorder_basic_blocks): Skip if cannot modify jumps.
3782         * cfgcleanup.c: Include target.h.
3783         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
3784
3785 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
3786
3787         * config/mips/mips.md (casesi_internal, casesi_internal_di):
3788         Protect jump delay slot instructions with .set noreorder and
3789         .set nomacro.
3790
3791 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
3792
3793         * config/mips/mips.md (casesi_internal_di): Calculate
3794         the index into the target offset table correctly.
3795
3796 2002-02-08  Richard Henderson  <rth@redhat.com>
3797
3798         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
3799         * final.c (output_addr_const): Accept and discard SUBREG.
3800         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
3801         mark them unknown instead.
3802         (simplify_subtraction): Handle RTX_UNKNOWN.
3803         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
3804
3805 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
3806
3807         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
3808
3809 2002-02-08  Richard Henderson  <rth@redhat.com>
3810
3811         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
3812
3813 2002-02-08  Andreas Jaeger  <aj@suse.de>
3814
3815         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
3816         * config/i386/t-linux64: New file.
3817
3818 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
3819
3820         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
3821         * c-parse.in (compstmt): Clear last_expr_type.
3822
3823 2002-02-07  Richard Henderson  <rth@redhat.com>
3824
3825         * loop.c (strength_reduce): Sink final_value when not
3826         eliminating a biv.
3827
3828 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
3829
3830         * config/sparc/freebsd.h: Fix mismatched spec {.
3831
3832 2002-02-07  Richard Henderson  <rth@redhat.com>
3833
3834         * cfgrtl.c: Include recog.h and insn-config.h.
3835         (keep_with_call_p): Fix general_operand invocation.
3836         * Makefile.in (cfgrtl.o): Update dependencies.
3837
3838 2002-02-07  Kazu Hirata  <kazu@hxi.com>
3839
3840         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
3841         comment.  Accept HImode only if TARGET_H8300.
3842
3843 2002-02-07  Eric Christopher  <echristo@redhat.com>
3844
3845         * config/mips/crtn.asm: Cleanup #ifdefs.
3846
3847 2002-02-07  Eric Christopher  <echristo@redhat.com>
3848
3849         * config/mips/crti.asm: Add changes for mips16. mips16 uses
3850         register 7 as RA instead of $31.
3851         * config/mips/crtn.asm: Ditto.
3852         * config/mips/mips.c (mips_move_2words): Add case for
3853         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
3854         (compute_frame_size): Fix typo.
3855         (save_restore_insns): Ditto.  Make documentation about using
3856         register $7 as return register more precise.
3857         (mips_expand_epilogue): Fix comment. Add code to work around not
3858         being able to add to the stack pointer directly.
3859         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
3860         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
3861         epilogue.
3862
3863 2002-02-07  Tom Rix  <trix@redhat.com>
3864
3865         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
3866         immediates in ldu and stdu DS opcode field.
3867         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
3868         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
3869         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
3870
3871 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
3872
3873         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
3874         offset for stack bias.
3875
3876 2002-02-07  H.J. Lu <hjl@gnu.org>
3877
3878         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
3879
3880 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
3881
3882         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
3883
3884 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
3885
3886         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
3887         * i386.c (x86_order_regs_for_local_alloc): New global function.
3888         * i386.h (REG_ALLOC_ORDER): CLeanup.
3889         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
3890
3891 2002-02-07  Richard Henderson  <rth@redhat.com>
3892
3893         PR optimization/2463
3894         * alias.c (find_base_value): Recall base values for fixed hard regs.
3895         * loop.c (loop_regs_update): Don't use single_set on non-insns.
3896
3897 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
3898
3899         * config/mips/mips.md (define_delay) [mips16]: Adjust required
3900         length.
3901
3902 2002-02-06  Richard Henderson  <rth@redhat.com>
3903
3904         PR c/5609
3905         * stmt.c (resolve_operand_name_1): Take more care with mixed
3906         named and unnamed operands.
3907
3908 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
3909             Jan Hubicka  <jh@suse.cz>
3910
3911         * loop.c (remove_constant_addition): Avoid clobbering a shared
3912         CONST expression.
3913
3914 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
3915
3916         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
3917         * config/s390/t-linux64: New file.
3918         * config/s390/libgcc-glibc.ver: New file.
3919
3920 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
3921
3922         * config/s390/linux64.h: Delete file.
3923         * config/s390/s390x.h: New file.
3924         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
3925         as target header file.
3926         * config/s390/linux.h (TARGET_VERSION): Define depending on
3927         DEFAULT_TARGET_64BIT.
3928         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
3929         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
3930         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
3931         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
3932         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
3933         (EXTRA_SPEC): New define.
3934         * config/s390/s390.h (TARGET_VERSION): Define depending on
3935         DEFAULT_TARGET_64BIT.
3936         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
3937
3938 2002-02-06  Jason Merrill  <jason@redhat.com>
3939
3940         * c-decl.c (finish_function): Warn about a non-void function with
3941         no return statement and no abnormal exit.
3942         (current_function_returns_abnormally): New variable.
3943         (start_function): Clear it.
3944         (struct c_language_function): Add returns_abnormally.
3945         (push_c_function_context): Save it.
3946         (pop_c_function_context): Restore it.
3947         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
3948         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
3949         an explicit return type.
3950         * c-tree.h: Declare current_function_returns_abnormally.
3951         (C_FUNCTION_IMPLICIT_INT): New macro.
3952         * c-typeck.c (build_function_call): Set it.
3953         (c_expand_return): Set current_function_returns_value even if the
3954         value is erroneous.
3955
3956 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
3957
3958         PR c/5420:
3959         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
3960         unsafe for reevaluation.
3961
3962 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
3963
3964         PR c/5482:
3965         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
3966         EXPR_STMT, but COMPOUND_STMT, recurse into it.
3967
3968 2002-02-06  Richard Henderson  <rth@redhat.com>
3969
3970         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
3971         be a general_operand.  Dest for function value must be a pseudo.
3972
3973 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
3974
3975         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
3976         as SYMBOL_REFs from the constant pool.
3977
3978 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
3979
3980         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
3981         passed by invisible reference.
3982
3983 2002-02-05  Richard Henderson  <rth@redhat.com>
3984
3985         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
3986
3987 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
3988
3989         Implement using "base addresses" in insn operands as default.
3990         * config/mmix/mmix.c (mmix_conditional_register_usage): if
3991         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
3992         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
3993         used to read the rtx value.
3994         (mmix_target_asm_function_epilogue): Fix spacing.
3995         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
3996         (mmix_legitimate_address): Ditto.
3997         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
3998         should be loaded with a GETA insn.  Don't allocate needless extra
3999         char for nul termination and fix misleading comment.
4000         (mmix_print_operand_address): Handle constants if
4001         TARGET_BASE_ADDRESSES.
4002         (mmix_output_register_setting): Use base addressing if
4003         TARGET_BASE_ADDRESSES and the number of insns is 3.
4004         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
4005         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
4006         to use R as constraint, add LDA to match s.
4007         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
4008         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
4009         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
4010         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
4011         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
4012         order with other fixed registers.
4013         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
4014         other parameter/call-clobbered registers.
4015         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
4016         -mbase-addresses, -mno-base-addresses.
4017         (MMIX Options): Ditto.
4018
4019 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4020
4021         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
4022
4023 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
4024
4025         * config/rs6000/altivec.h: Change elem to _S_elem.
4026
4027 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>