OSDN Git Service

2001-02-20 Joel Sherrill <joel@OARcorp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-02-20      Joel Sherrill <joel@OARcorp.com>
2
3         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
4         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
5         Also done for -Acpu and -Amachine.
6
7 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8
9         * cppinit.c (init_dependency_output): Take deps output file
10         from -o if none given with -MF.  Suppress normal output.
11         * gcc.c (cpp_unique_options): Have -M and -MM imply -E. 
12         * doc/cpp.texi, doc/invoke.texi: Update.
13
14 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
15
16         * toplev.c (output_quoted_string): Write unprintable
17         characters with octal escapes.
18
19 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
20
21         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
22         really_call_used[VRSAVE_REGNO] if not Altivec.
23
24 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
25         
26         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
27         MODE_MASK.
28         (constant_pool_expr_1): Fix formatting.
29         (rs6000_legitimize_reload_address): Likewise.
30
31 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32
33         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
34         now that we have one.
35
36 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
37
38         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
39         end of first block of bitfields (which was only seven bits);
40         rename dummy to unused_1; remove comment which is no longer true.
41
42 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
43
44         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
45
46 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
47
48         PR 5399
49         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
50         if generating PIC.
51
52         PR 5054
53         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
54         arm_is_longcall_p rather than inspecting call-type cookie
55         directly.
56         (call_value_insn) [TARGET_THUMB]: Likewise.
57
58 2002-02-19  Graham Stott  <grahams@redhat.com>
59
60         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
61
62 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
63
64         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
65         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
66         (FP_SAVE_INLINE): Delete.
67
68         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
69         * config/rs6000/eabi.asm: Remove ABI save restore routines.
70         * config/rs6000/t-ppccomm: Build crtsavres.o.
71         * config/rs6000/crtsavres.asm: New file.
72
73 2002-02-19  Philip Blundell  <philb@gnu.org>
74
75         * config/arm/arm.c (use_return_insn): Don't reject interrupt
76         functions.
77         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
78         (output_return_instruction): Allow interrupt functions to return with
79         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
80         (arm_expand_prologue): Subtract 4 before stacking LR in an
81         interrupt function.
82
83 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
84
85         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
86         decl, not just FUNCTION_DECL.
87         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
88         (arm_assemble_integer): Likewise.
89         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
90         marked local.
91         
92 2002-02-19  matthew green  <mrg@eterna.com.au>
93
94         * config.gcc (sparc-*-netbsdelf*): Enable target.
95         (sparc64-*-netbsd*): New target.
96         * config/sparc/netbsd-elf.h: New file.
97         * config/sparc/t-netbsd64: New file.
98
99 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
100
101         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
102
103 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
104
105         * doc/invoke.texi: explicitly list the style guidelines that
106         -Weffc++ checks for.
107
108 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
109
110         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
111
112 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
113
114         PR other/5718
115         * gcc.c (cpp_unique_options): Treat -o as indicating object file
116         only if not -E.  If -E, pass -o through to the preprocessor.
117
118 2002-02-19  Kazu Hirata  <kazu@hxi.com>
119
120         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
121         register number with an appropriate macro.
122
123 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
124
125         * doc/rtl.texi (Constants): Close @code tag.
126
127 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
128
129         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
130         ("mmx_uavgv4hi3"): Same.
131         ("pmulhrwv4hi3"): Same.
132
133         * tree-inline.c (walk_tree): Handle vectors.
134
135         * c-common.c (constant_expression_warning): Handle vectors.
136         (overflow_warning): Same.
137
138         * sched-deps.c (sched_analyze_2): Handle vectors.
139
140         * rtlanal.c (rtx_unstable_p): Handle vectors.
141         (rtx_varies_p): Same.
142         (count_occurrences): Same.
143         (regs_set_between_p): Same.
144         (modified_between_p): Same.
145         (modified_in_p): Same.
146         (volatile_insn_p): Same.
147         (volatile_refs_p): Same.
148         (side_effects_p): Same.
149         (may_trap_p): Same.
150         (inequality_comparisons_p): Same.
151         (replace_regs): Same.
152         (computed_jump_p_1): Same.
153
154         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
155         argument.
156         (inner_mode_array): New.
157         (copy_rtx): Handle vectors.
158         (copy_most_rtx): Same.
159         (rtx_equal_p): Same.
160         (get_mode_alignment): Adjust for vectors.
161
162         * resource.c (mark_referenced_resources): Handle vectors.
163         (mark_set_resources): Same.
164
165         * reload1.c (eliminate_regs): Handle vectors.
166         (elimination_effects): Same.
167         (scan_paradoxical_subregs): Same.
168
169         * reload.c (subst_reg_equivs): Handle vectors.
170
171         * regrename.c (scan_rtx): Handle vectors.
172
173         * regclass.c (reg_scan_mark_refs): Handle vectors.
174
175         * recog.c (find_single_use_1): Handle vectors.
176
177         * local-alloc.c (equiv_init_varies_p): Handle vectors.
178         (contains_replace_regs): Same.
179         (memref_referenced_p): Same.
180
181         * integrate.c (copy_rtx_and_substitute): Handle vectors.
182         (subst_constants): Same.
183
184         * genattrtab.c (attr_copy_rtx): Handle vectors.
185         (encode_units_mask): Same.
186         (clear_struct_flag): Same.
187         (count_sub_rtxs): Same.
188
189         * gcse.c (want_to_gcse_p): Handle vectors.
190         (oprs_unchanged_p): Same.
191         (hash_expr_1): Same.
192         (oprs_not_set_p): Same.
193         (expr_killed_p): Same.
194         (compute_transp): Same.
195         (store_ops_ok): Same.
196
197         * function.c (purge_addressof_1): Do not allow paradoxical subregs
198         of vectors.
199         (fixup_var_refs_1): Same.
200         (instantiate_virtual_regs_1): Same.
201
202         * fold-const.c (operand_equal_p): Handle vectors.
203         (fold): Same.
204         (rtl_expr_nonnegative_p): Same.
205
206         * flow.c (mark_used_regs): Handle vectors.
207
208         * df.c (df_uses_record): Handle vectors.
209
210         * cselib.c (cselib_subst_to_values): Handle vectors.
211         (cselib_mem_conflict_p): Same.
212         (hash_rtx): Same.
213
214         * cse.c (canon_reg): Handle vectors.
215         (fold_rt): Same.
216         (cse_process_notes): Same.
217         (count_reg_usage): Same.
218         (canon_hash): Same.
219
220         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
221
222         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
223
224         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
225         (gen_rtx): Handle CONST_VECTOR.
226         (gen_const_vector_0): New.
227         (copy_rtx_if_shared): CONST_VECTORs can be shared.
228         (reset_used_flags): Same.
229         (copy_insn_1): Same.
230         (initializer_constant_valid_p): Handle VECTOR_CST.
231
232         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
233
234         * doc/rtl.texi (Constants): Document const_vector.
235         (CONST0_RTX): Update for vectors.
236         (RTL sharing): Same.
237
238         * print-tree.c (print_node): Add case for VECTOR_CST.
239
240         * tree.h (TREE_VECTOR_CST_ELTS): New.
241         (struct tree_vector): New.
242         (union tree_node): Add vector node.
243         (build_vector): Add prototype.
244
245         * tree.def (VECTOR_CST): New.
246
247         * tree.c (build_vector): New.
248
249         * expmed.c (make_tree): Handle CONST_VECTOR.
250
251         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
252         (CONST_VECTOR_ELT): New.
253         (CONST_VECTOR_NUNITS): New.
254
255         * machmode.h (GET_MODE_INNER): New.
256         (DEF_MACHMODE): Accept 8th arg.
257
258         * machmode.def: Add 8th argument for vector inner mode.
259         Add inner vector modes for vectors.
260
261         * rtl.def (VEC_CONST): Remove.
262         (CONST_VECTOR): New.
263
264         * expr.c (clear_storage): Allow vectors.
265         (is_zeros_p): Handle VECTOR_CST.
266
267         * varasm.c (output_constant_pool): Handle vectors.
268         (rtx_const): Add veclo and vechi fields.
269         (kind): Add RTX_VECTOR.
270         (decode_rtx_const): Add case for vector.
271
272         * config/rs6000/rs6000-protos.h: Add zero_constant.
273         
274         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
275         constants.  Force easy vector constants into memory.
276         (easy_vector_constant): New.
277         (emit_easy_vector_constant): New.
278         (rs6000_legitimize_reload_address): Do not generate bad reloads on
279         darwin.
280
281         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
282         instruction does.
283         ("altivec_lvxl"): Same.
284         (altivec_lvebx): Same.
285         (altivec_lvehx): Same.
286         (altivec_lvewx): Same.
287         ("*movv4si_const0"): New.
288         ("*movv4sf_const0"): New.
289         ("*movv8hi_const0"): New.
290         ("*movv16qi_const0"): New.
291
292 2002-02-18  Kazu Hirata  <kazu@hxi.com>
293
294         * config/h8300/h8300.c (notice_update_cc): Use
295         cc_status.value2.
296
297 2002-02-18  Kazu Hirata  <kazu@hxi.com>
298
299         * config/h8300/h8300.md (divmod patterns): Change the
300         constraints for operands[1] to register_operand.
301
302 2002-02-18  Kazu Hirata  <kazu@hxi.com>
303
304         * config/h8300/h8300-protos.h: Remove the prototype for
305         p_operand.
306         * config/h8300/h8300.c (p_operand): Remove.
307         * config/h8300/h8300.md: Replace p_operand with
308         const_int_operand.
309
310 2002-02-18 Philip Blundell <pb@nexus.co.uk>
311
312         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
313         comment.
314         (output_return_instruction): Allow use of LDR to unstack
315         return addresss even for interrupt handlers or when
316         interworking.  If compiling for ARMv5, use interworking-safe
317         return instructions by default.  Remove duplicated code and
318         lengthy "strcat" sequences.
319
320 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
321
322         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
323         (LINK_EH_SPEC): Define.
324         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
325
326 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
327
328         * config/s390/s390.c (s390_emit_prologue): Do not set the
329         frame_related flag for call-clobbered registers.
330
331 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
332
333         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
334         (construct_container): Fix handling of SSE operands.
335         (ix86_expand_builtin): Fix handling of 64bit pointers.
336         (mmx_maskmovq_rex): New pattern.
337
338 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
339
340         * regrename.c (kill_set_value): Handle subregs properly.
341
342 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
343
344         * objc/objc-act.c (handle_impent): Remove leading '*'
345         from objc_class_name. 
346
347 2002-02-17  Richard Henderson  <rth@redhat.com>
348
349         * config/alpha/alpha.c (some_small_symbolic_operand,
350         some_small_symbolic_operand_1, split_small_symbolic_operand,
351         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
352         Handle small SYMBOL_REFs anywhere, not just inside memories.
353         * config/alpha/alpha-protos.h: Update.
354         * config/alpha/alpha.h (PREDICATE_CODES): Update.
355         * config/alpha/alpha.md (small symbolic operand splitter): Update.
356
357 2002-02-17  Roland McGrath  <roland@frob.com>
358
359         * config.gcc (powerpc-*-gnu-gnualtivec*,
360         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
361         * config/rs6000/gnu.h: New file.
362         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
363         Grok "gnu" in rs6000_abi_name.
364         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
365         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
366         Grok -mcall-gnu analogous to -mcall-linux et al.
367         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
368         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
369         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
370
371 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
372
373         PR c/3444:
374         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
375         shortening.
376
377 2002-02-17  Philipp Thomas  <pthomas@suse.de>
378
379         * config/cris/cris.h: Undefine STARTFILE_SPEC and
380         ENDFILE_SPEC before (re)defining them.
381
382 2002-02-17  Kazu Hirata  <kazu@hxi.com>
383
384         * config/h8300/h8300.c: Fix formatting.
385         * config/h8300/h8300.h: Likewise.
386
387 2002-02-17  Philipp Thomas  <pthomas@suse.de>
388
389         * doc/tm.texi: Explain why empty strings should not be
390         marked for translation.
391
392 2002-02-17  Philipp Thomas  <pthomas@suse.de>
393
394         * final.c (output_operand_lossage): Changed to accept
395         printf style arguments. Change calls where necessary.
396         * output.h (output_operand_lossage): Change declaration
397         accordingly. Update copyright.
398         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
399         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
400         Update copyright date where necessary.
401         
402         * config/i386/i386.c (print_operand): Likewise. Remove use of
403         sprintf.
404
405         * config/cris/cris.c (cris_operand_lossage): Likewise.
406         Rename parameter so that exgettext recognizes it as
407         translatable message.
408         (LOSE_AND_RETURN): Rename parameter to msgid.
409
410 2002-02-17  Kazu Hirata  <kazu@hxi.com>
411
412         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
413         hard coded register number with an appropriate macro.
414         (HARD_REGNO_MODE_OK): Likewise.
415         (ARG_POINTER_REGNUM): Likewise.
416         (STATIC_CHAIN_REGNUM): Likewise.
417         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
418         * config/h8300/h8300.md (define_constants): Define more
419         register numbers.
420
421 2002-02-17  Philipp Thomas  <pthomas@suse.de>
422
423         * config/i386/i386.h: Don't mark empty strings for translation.
424
425 2002-02-16  H.J. Lu <hjl@gnu.org>
426
427         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
428
429 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
430
431         * cppinit.c (merge_include_chains): Check for brack being
432         NULL before attempting to merge it with qtail.
433
434 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
435
436         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
437         DBX_DEBUG.
438
439 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
440
441         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
442
443 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
444
445         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
446         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
447         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
448
449 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
450
451         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
452         now only if !TARGET_FIX.
453         (*movsi_nt_vms_fix): New pattern.
454
455 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
456
457         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
458         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
459         (alpha_sa_mask, alpha_sa_size): Reflect above change.
460         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
461         (alpha_start_function, alpha_expand_epilogue): Likewise.
462         (unicosmk_gen_dsib): Likewise.
463
464 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
465
466         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
467
468 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
469
470         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away, 
471         check_and_change_labels, s390_final_chunkify): Delete.
472         (s390_split_branches, s390_chunkify_pool): New functions.
473         (s390_function_prologue): Call them.
474         
475         * config/s390/s390.h (S390_REL_MAX): Delete.
476         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
477
478         * config/s390/s390.md (cjump, icjump, jump): Fix length 
479         attribute calculation.
480
481
482 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
483
484         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
485         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
486
487 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
488
489         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
490         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
491         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
492
493 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
494
495         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
496
497 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
498
499         * reload.c (find_dummy_reload): Check that an output register
500         is valid for its mode.
501
502 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
503
504         * combine.c (known_cond): After replacing the REG of a SUBREG, try
505         to simplify it.
506
507         * function.c (assign_parms): Demote promoted argument passed by
508         transparent reference.
509
510 2001-02-14      Joel Sherrill <joel@OARcorp.com>
511
512         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
513         -Acpu() and -Amachine() to eliminate warnings.
514
515 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
516
517         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
518
519 2002-02-14  Kazu Hirata  <kazu@hxi.com>
520
521         * config/h8300/h8300-protos.h: Update the prototype for
522         const_costs.
523         * config/h8300/h8300.c (const_costs): Treat SET as a little
524         more expensive operation.
525         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
526         reference to const_costs.
527
528 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
529
530         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
531
532 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
533
534         PR c/5503:
535         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
536         use arguments from newtype.
537
538 2002-02-13  Eric Christopher  <echristo@redhat.com>
539
540         * config/mips/mips.c (override_options): Add check for march/mipsX
541         on the same command line. Fix error message in cpu processing.
542         Remove architecture and ISA checks.
543
544 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
545
546         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
547
548         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
549
550 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
551
552         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
553         alternatives.
554         ("*movv8hi_internal1"): Same.
555         ("*movv16qi_internal1"): Same.
556         ("*movv4sf_internal1"): Same.
557
558         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
559         not push_reload for altivec modes.
560
561 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
562
563         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
564         all RTEMS targets including removal of #includes from config/*/rtems*.h
565         file and adding them to tm_file setting. Added xm_defines=POSIX to
566         many targets.
567         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
568         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
569         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
570         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
571         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
572         config/m68k/rtemself.h: Ditto.
573         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
574         config/mips/rtems64.h: Ditto.
575         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
576         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
577         Ditto.
578         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
579         config/sparc/rtemself.h: Ditto.
580         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
581         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
582         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
583         more like arm-elf.
584         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
585         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
586         target made more similar to i386-elf.
587         * config/i386/t-rtems-i386: Added soft float support and multilibs.
588         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
589         be similar to config/m68k/t-m68kelf.
590         * gthr-rtems.h: Encapsulate with extern "C" for C++.
591
592 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
593
594         * regmove.c (kill_value): Handle subregs.
595
596 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
597
598         * i386.md (mul patterns): Allow memory operand to be first;
599         add expanders where needed; fix constraints.
600         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
601         Allow memory operand to be the first.
602
603         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
604         operands.
605
606 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
607
608         PR c/5681:
609         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
610         GET_MODE (x).
611
612 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
613
614         PR optimization/5547:
615         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
616         all valid IA-32 address modes involving non-scaled %ebx and
617         GOT/GOTOFF as displacement.
618
619 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
620
621         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
622         after emitting ltorg insns.
623
624         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
625         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
626         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
627         *abssf2): Fix "op_type" attribute.
628
629 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
630
631         * mkconfig.sh: Avoid using a subshell redirect.
632         ($output.T): Change to $(output)T.
633         (ENABLE_NLS): Remove unneeded undef.
634
635         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
636         * config/alpha/x-vms (libsubdir): Define.
637
638         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
639         register frame procedures. Optimize retrieving context.
640
641         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
642         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
643         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
644
645 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
646
647         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
648         Make same change as for find_base_value.
649
650 2002-02-13  Kazu Hirata  <kazu@hxi.com>
651
652         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
653         of QImode and SImode.
654
655 2002-02-13  Kazu Hirata  <kazu@hxi.com>
656
657         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
658         length computation of movsi.
659         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
660
661 2002-02-13  Kazu Hirata  <kazu@hxi.com>
662
663         * config/h8300/h8300.md (subqi3): Tighten the predicate for
664         operands[2] to register_operand.
665
666 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
667
668         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
669
670 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
671
672         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
673         for altivec_lvx* and altivec_stvx*.
674         ("*movv4si_internal"): Add constraint for loading from GPRs.
675         ("*movv8hi_internal1"): Same.
676         ("*movv16qi_internal1"): Same.
677         ("*movv4sf_internal1"): Same.
678
679         * config/rs6000/rs6000.c (altivec_register_operand): New.
680
681         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
682         altivec_register_operand.
683
684 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
685
686         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
687         handle SYMBOL_REF.
688
689 2002-02-13  Stan Shebs  <shebs@apple.com>
690
691         * c-typeck.c (digest_init): Handle vectors.
692         (really_start_incremental_init): Same.
693         (pop_init_level): Same.
694         (process_init_element): Same.
695
696         * varasm.c (output_constant): Same.
697
698         * expr.c (clear_storage): Same.
699         (store_constructor): Same.
700
701 2002-02-12  Eric Christopher  <echristo@redhat.com>
702
703         * explow.c (hard_function_value): Add comment explaining
704         signed/unsigned comparison.
705
706 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
707
708         * jump.c (never_reached_warning): Add finish argument.
709         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
710         real insn after end.
711         * rtl.h (never_reached_warning): Adjust prototype.
712         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
713         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
714         never_reached_warning.
715
716 2002-02-12  Graham Stott  <grahams@redhat.com>
717
718         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
719
720 2002-02-12  Kazu Hirata  <kazu@hxi.com>
721
722         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
723         logical shifts on H8/300.
724         (shift_alg_si): Improve several shifts on H8/300.
725         (get_shift_alg): Likewise.
726
727 2002-02-12  Graham Stott  <grahams@redhat.com>
728
729         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
730
731 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
732
733         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
734         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
735
736 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
737
738         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
739         non-CONST_INT through default_assemble_integer.
740         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
741         <case 8>: Abort for CONST_DOUBLE.
742
743 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
744
745         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
746         is specified.
747         * config/pa/pa-linux.h (LIB_SPEC): Delete.
748         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
749
750 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
751
752         * config/stormy16/stormy16.md (zero_extendqihi2): New.
753
754 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
755
756         * regrename.c (regrename_optimize): Don't accept a
757         part-clobbered register if the replaced register is not part
758         clobbered.
759
760         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
761         take padding into account when computing the argument value.
762
763         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
764
765         * combine.c (try_combine): Apply substitutions in
766         CALL_INSN_FUNCTION_USAGE too.
767
768 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
769
770         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
771         __builtin_altivec_abs*.
772         (bdesc_abs): New.
773
774         * config/rs6000/rs6000.h (rs6000_builtins): Add
775         ALTIVEC_BUILTIN_ABS*.
776
777         * config/rs6000/altivec.h: Use const char for builtins expecting
778         literals.
779         (vec_abs): New versions for C and C++.
780         (vec_abss): Same.
781
782 2002-02-10  Kazu Hirata  <kazu@hxi.com>
783
784         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
785         using Pmode.
786
787 2002-02-10  Kazu Hirata  <kazu@hxi.com>
788
789         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
790         constant definition from h8300.md.
791         (FRAME_POINTER_REGNUM): Likewise.
792         * config/h8300/h8300.md (define_constants): Add FP_REG.
793
794 2002-02-10  Kazu Hirata  <kazu@hxi.com>
795
796         * config/h8300/h8300.c (print_operand): Remove redundant code.
797
798 2002-02-10  Kazu Hirata  <kazu@hxi.com>
799
800         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
801         * config/h8300/h8300.c (byte_reg): Make it static.
802
803 2002-02-10  Richard Henderson  <rth@redhat.com>
804
805         PR c/5623
806         * c-typeck.c (incomplete_type_error): Handle flexible array members.
807
808 2002-02-10  Richard Henderson  <rth@redhat.com>
809
810         PR c++/5624
811         * tree.c (append_random_chars): Don't abort if main_input_filename
812         does not exist.
813
814 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
815
816         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
817
818 2002-02-10  Kazu Hirata  <kazu@hxi.com>
819
820         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
821         (pushhi1): Likewise.
822
823 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
824
825         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
826         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
827
828 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
829
830         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
831         remove MASK_VIS.
832         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
833
834 2002-02-09  Kazu Hirata  <kazu@hxi.com>
835
836         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
837         a half of an SImode register on H8/300.
838
839 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
840
841         * i386.md (movdi_2): Add missing '!'.
842
843 2002-02-09  Kazu Hirata  <kazu@hxi.com>
844
845         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
846         definitions.
847
848 2002-02-09  Kazu Hirata  <kazu@hxi.com>
849
850         * config/h8300/h8300.md (length): Correct the distance valid
851         for the short branch.
852
853 2002-02-09  Kazu Hirata  <kazu@hxi.com>
854
855         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
856
857 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
858
859         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
860         registers in SImode.
861         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
862         part-clobbered.
863
864         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
865         patch.
866
867         Contribute sh64-elf.
868         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
869         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
870         (sh_cannot_modify_jumps_p): New function.
871         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
872         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
873         (sh_ms_bitfield_layout_p): New function.
874         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
875                     Zack Weinberg  <zack@codesourcery.com>
876         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
877         expand_simple_binop instead of expand_binop.
878         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
879         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
880         use of .quad and .uaquad.
881         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
882         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
883         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
884         * config/sh/sh.md (movdi_const, movdi_const_32bit,
885         movdi_const_16bit): Make sure all CONSTs have modes.
886         (sym2PIC): Ditto, but by adjusting all callers.
887         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
888         if the prologue calls the SHmedia argument decoder or register
889         saver.
890         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
891         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
892         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
893         (sh_expand_epilogue): Don't emit USE of return target register.
894         (prepare_move_operands): Legitimize DImode PIC addresses.
895         (sh_media_register_for_return): Skip tr0, used to initialize the
896         PIC register.
897         (sh_expand_prologue): Remove explicit USE of return register.
898         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
899         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
900         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
901         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
902         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
903         EXTRA_CONSTRAINT_T.
904         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
905         (MOVI_SHORI_BASE_OPERAND_P): New.
906         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
907         (EXTRA_CONSTRAINT_T): Define in terms of them.
908         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
909         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
910         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
911         alternatives supporting TARGET_REGS.
912         (UNSPEC_GOTPLT): New constant.
913         (movdi split): Move incrementing of LABEL_NUSES...
914         (movdi_const, movdi_const_32bit): Here.  Use
915         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
916         (movdi_const_16bit): New.
917         (call, call_value) [flag_pic]: Use GOTPLT.
918         (call_pop, call_value_pop): New expands.
919         (call_pop_compact, call_pop_rettramp): New insns.
920         (call_value_pop_compact, call_value_pop_rettramp): New insns.
921         (sibcall) [flag_pic]: Use GOT.
922         (builtint_setjmp_receiver): Remove bogus, unused expand.
923         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
924         (*pt, *ptb, ptrel): New insns.
925         (sym2GOT): Handle DImode GOT.
926         (sym2GOTPLT, symGOTPLT2reg): New expands.
927         (sym2PIC): New expand.
928         (shcompact_return_tramp): Use GOTPLT to return trampoline.
929         (shcompact_return_tramp_i): Use return register explicitly.
930         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
931         disable flag_reorder_blocks.
932         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
933         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
934         clobbers, for clarity.
935         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
936         restoring of r0 in macl as MAYBE_DEAD.
937         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
938         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
939         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
940         alter_subreg all over.
941         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
942         reload, instead of emitting instructions that would require
943         reloading.
944         (casesi_load_media): Add missing modes.
945         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
946         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
947         as used if the argument decoder is called.
948         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
949         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
950         Pmode, then extend it to DImode if necessary.
951         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
952         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
953         constants in FPU-enabled SHmedia, let them be loaded from memory.
954         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
955         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
956         Adjust whitespace in assembly output templates.
957         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
958         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
959         mode of if_then_else.
960         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
961         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
962         sh.h.
963         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
964                     Joern Rennecke <amylaar@redhat.com>
965         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
966         (SUBTARGET_CPP_PTR_SPEC): New.
967         (SUBTARGET_CPP_SPEC): Remove.
968         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
969         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
970         Fix typo in previous checkin.
971         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
972         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
973         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
974                     Alexandre Oliva  <aoliva@redhat.com>
975         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
976         what single FP register can hold for SHmedia target.
977         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
978                     Alexandre Oliva  <aoliva@redhat.com>
979         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
980         Do not split into SUBREG.
981         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
982         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
983         and added new functions as specified in SH5 ABI r9.
984         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
985         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
986         8-byte boundary.
987         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
988         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
989         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
990         and consttable_window_ends.
991         2001-06-03  Graham Stott  <grahams@redhat,com>
992         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
993         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
994         * config/sh/sh.c (print_operand): Handle floating-point pair,
995         vector and matrix registers.
996         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
997         vector modes into account.
998         * config/sh/sh.md (movv2sf): Split move between registers into
999         movdf.
1000         (movv4sf, movv16sf): Introduce insns that get split only after
1001         reload.
1002         * config/sh/shmedia.h: Fix Copyright dates.
1003         * config/sh/ushmedia.h: Likewise.  Move loop counter
1004         declarations into conditionals that uses them.
1005         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
1006         loop boundary.
1007         * config/sh/sshmedia.h: Fix Copyright dates.
1008         (sh_media_PUTCFG): Fix constraints.
1009         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
1010         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
1011         ptrmemfunc_vbit_in_delta for SH5.
1012         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
1013         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
1014         * invoke.texi: Likewise.
1015         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
1016         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
1017         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
1018         GCC_pop_shmedia_regs_nofpu): New global symbols.
1019         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
1020         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
1021         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
1022         compact function with nonlocal labels.
1023         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
1024         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
1025         (initial_elimination_offset): Account for their stack space.
1026         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
1027         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
1028         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
1029         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
1030         least one of the operands to be a register.
1031         (movv2sf): Likewise.  Renamed to movv2sf_i.
1032         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
1033         prepare_move_operands() before emitting SHmedia insns.
1034         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
1035         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
1036         Don't save nor initialize r12.  Don't mis-align the stack.
1037         Pad the code with a nop.
1038         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
1039         stack.
1040         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
1041         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
1042         [__SHMEDIA__]: Implement.
1043         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
1044         * config/sh/sh.md: Set latency of `pt' closer to reality.
1045         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
1046         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
1047         Set move, load and store type attributes.
1048         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
1049         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
1050         profiling.
1051         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
1052         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
1053         * config/sh/sh.c (sh_media_register_for_return): New function.
1054         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
1055         branch-target register.
1056         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
1057         * config/sh/sh.md (return_media_i): Use any call-clobbered
1058         branch-target register.
1059         (return_media): If r18 wasn't copied in the prologue, copy it
1060         here.
1061         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
1062         Clear class FP0_REGS.
1063         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
1064         from elf.h.
1065         2001-03-08  DJ Delorie  <dj@redhat.com>
1066         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
1067         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
1068         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
1069         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
1070         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
1071         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
1072         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
1073         return value correctly for call_cookie.
1074         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
1075         * config/sh/crt1.asm (start): Modified so as to call
1076         ___setup_argv_and_call_main.
1077         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
1078         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
1079         SHmedia mode.
1080         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
1081         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
1082         (STRIP_NAME_ENCODING): Use it.
1083         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
1084         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
1085         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
1086         prepare_scc_operands().
1087         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
1088         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
1089         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
1090         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
1091         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
1092         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
1093         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
1094         used in shcompact_incoming_args.
1095         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
1096         change.
1097         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
1098         mode.
1099         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
1100         Adjust accordingly.
1101         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1102         Simplify.  Adjust.  Add sanity check.
1103         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
1104         FPU_SINGLE_BIT.
1105         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
1106         TARGET_SHCOMPACT.
1107         (udivsi3, divsi3): Use them.
1108         (force_mode_for_call): New insn.
1109         (call, call_value, sibcall_value): Emit it before SHcompact
1110         calls.
1111         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
1112         * config/sh/sh.md (call, call_value, sibcall): Make sure the
1113         call cookie is non-NULL before taking its value.
1114         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
1115         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
1116         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
1117         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
1118         block.
1119         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
1120         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
1121         temporary for stack adjusts.  Use MACL and MACH to pass
1122         arguments to shcompact_incoming_args.
1123         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
1124         clobber r1.
1125         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
1126         (nested_trampoline): Load static chain address into r1.
1127         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
1128         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
1129         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
1130         fp_arith_reg_operand().
1131         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
1132         * config/sh/sh.md (casesi): Sign-extend the first two operands,
1133         and use signed compares for them.
1134         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
1135         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
1136         ones properly aligned.
1137         (find_barrier): Account for extra alignment needed for 8-byte wide
1138         constants.
1139         (machine_dependent_reorg): Require a label for the second 4-byte
1140         constant after an 8-byte one.
1141         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
1142         change.
1143         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
1144         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
1145         last_float when switching float modes.
1146         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
1147         auto-increment for general-purpose registers.
1148         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
1149         result.
1150         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
1151         for stack adjust.
1152         * config/sh/sh.c (sh_builtin_saveregs): Support using all
1153         registers for varargs.
1154         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
1155         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
1156         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
1157         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
1158         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
1159         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
1160         call_cookie accordingly.
1161         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
1162         (SHCOMPACT_BYREF): Likewise.
1163         (SHCOMPACT_FORCE_ON_STACK): New macro.
1164         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
1165         (sh_builtin_saveregs): Likewise.
1166         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
1167         shcompact_incoming_args): Use new shift values.  Support
1168         sequences of consecutive and non-consecutive pushes/pops.
1169         * config/sh/sh.md (return): Don't explicitly use PR_REG.
1170         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
1171         * config/sh/sh.h (TEXT_SECTION): Define.
1172         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
1173         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
1174         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
1175         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
1176         return values on FPU-enabled SHmedia.
1177         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
1178         FPU-enabled SHmedia.
1179         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
1180         value is returned in a non-FP reg and is not returned by
1181         reference.
1182         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
1183         jump_ind.
1184         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
1185         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
1186         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
1187         quad-aligned to be passed by callee-copy reference.
1188         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
1189         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
1190         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
1191         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
1192         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
1193         copying low-numbered FP regs to r7 and r8.
1194         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
1195         FP regs to general-purpose regs only if the copy was passed on the
1196         stack.
1197         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
1198         copying FP reg to r9.
1199         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
1200         copy FP regs to general-purpose regs only in outgoing calls.
1201         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
1202         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
1203         HOST_WIDE_INT.
1204         * config/sh/sh.h (struct sh_args): Document all fields.
1205         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
1206         passed partially on the stack should not consider making
1207         sibcalls.
1208         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
1209         stack_regs only for incoming calls.  When passing FP args,
1210         make sure there are FP regs available before modifying
1211         call_cookie.
1212         (SHCOMPACT_BYREF): Pass double args in general-purpose
1213         registers by reference.
1214         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
1215         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
1216         attempt to generate sibcalls if the caller got any arguments
1217         by reference.
1218         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
1219         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
1220         to 8-byte boundaries.
1221         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
1222         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
1223         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
1224         stored in the stack.
1225         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
1226         for the offsets to have the ISA bit set.
1227         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
1228         invocation.  Use beq instead of bgt to mark end of sequence of
1229         loads.
1230         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
1231         bgt to mark end of sequence of stores.
1232         * config/sh/sh.c (arith_operand): Don't check whether
1233         CONST_OK_FOR_J for now.
1234         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
1235         instead of long for conversion.
1236         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
1237         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
1238         before passing it to fprintf.
1239         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
1240         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
1241         Call set_fpscr before reading/writing SR.
1242         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
1243         Call set_fpscr.
1244         * config/sh/lib1funcs.asm: Add `.align 2' directives before
1245         SHmedia code.
1246         (FMOVD_WORKS): Define on SH5 with FPU.
1247         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
1248         setting.
1249         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
1250         _fpscr_values.
1251         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
1252         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
1253         address.
1254         (ia_main_table): Ditto.
1255         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
1256         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
1257         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
1258         the definitions from sh.h.
1259         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
1260         TARGET_SH5.
1261         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
1262         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
1263         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
1264         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
1265         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
1266         Increment LABEL_NUSES.
1267
1268         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
1269         TARGET_SH5.
1270         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
1271         defined.
1272         * config/sh/elf.h (SIZE_TYPE): Likewise.
1273         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
1274         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
1275         shcompact_incoming_args): Load switch table addresses using
1276         datalabel.
1277         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
1278         (NO_BUILTIN_SIZE_TYPE): Define.
1279         (SIZE_TYPE): Don't define.
1280         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
1281         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
1282         definition of __SH5__=32 for -m5-compact-nofpu.
1283         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
1284         ADDR_DIFF_VEC.
1285         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
1286         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
1287         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
1288         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
1289         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
1290         (INSN_LENGTH_ALIGNMENT): Likewise.
1291         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
1292         * config/sh/sh.md (call, call_value, sibcall): Simplify
1293         copying of non-branch-target register.
1294         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
1295         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
1296         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
1297         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
1298         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
1299         floating-point values as structs.
1300         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
1301         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
1302         general-purpose register.
1303         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
1304         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
1305         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
1306         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
1307         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
1308         (ENCODE_SECTION_INFO): Enclose variables and constants in
1309         DATALABEL unspecs.
1310         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
1311         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
1312         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
1313         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
1314         only for LABEL_REFs.  For SYMBOL_REFs, prepend
1315         SH_DATALABEL_ENCODING to the symbol name.
1316         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
1317         convert_mode().
1318         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
1319         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
1320         UNSPEC_DATALABEL.
1321         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
1322         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
1323         (DATALABEL_REF_P): Don't require CONST.
1324         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
1325         REL label.
1326         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
1327         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
1328         right.
1329         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
1330         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
1331         Use shallow_copy_rtx and PUT_MODE to change the mode of
1332         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
1333         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
1334         on SHmedia using GENERAL_REGs.
1335         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
1336         bltu_media_i): Fix reversion of conditions.
1337         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
1338         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
1339         * config/sh/sh.c (output_far_jump): Save r13 in macl.
1340         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
1341         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
1342         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
1343         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
1344         (GCC_nested_trampoline): Likewise.
1345         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
1346         * config/sh/sh.c (gen_datalabel_ref): Define.
1347         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
1348         (INITIALIZE_TRAMPOLINE): Likewise.
1349         (TRAMPOLINE_ADJUST_ADDRESS): Define.
1350         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
1351         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
1352         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
1353         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
1354         (ic_invalidate): Adjust for SH5.
1355         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
1356         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
1357         _nested_trampoline.
1358         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
1359         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
1360         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
1361         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
1362         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
1363         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
1364         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
1365         * config/sh/sh.c (target_reg_operand): Match only target-branch
1366         registers and pseudos that aren't virtual registers.
1367         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
1368         Copy operands that don't match target_reg_operand to pseudos.
1369         (call_media, call_value_media, sibcall_media): Use
1370         target_reg_operand instead of target_operand.
1371         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
1372         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
1373         * config/sh/sh.c (target_reg_operand): Match hardware registers
1374         other than branch-target registers.
1375         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
1376         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
1377         (fpscr_values) [SH5 == 32]: Define.
1378         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
1379         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
1380         Handle function addresses coming in SUBREGs.
1381         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
1382         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
1383         shcompact_return_trampoline): Use datalabel where appropriate.
1384         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
1385         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
1386         general-purpose register to copy one branch-target register to
1387         another.
1388         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
1389         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
1390         SYMBOL_REFs with VOIDmode.
1391         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
1392         bltu_media_i): New insns.
1393         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
1394         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
1395         (INIT_CUMULATIVE_ARGS): Likewise.
1396         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
1397         * machmode.def (V16SFmode): New mode.
1398         * c-common.c (type_for_mode): Support V2SF and V16SF.
1399         * tree.c (build_common_tree_nodes_2): Likewise.
1400         * tree.h (tree_index): Likewise.
1401         * calls.c (emit_call_1): Take args_so_far.  Adjust all
1402         callers.  Introduce CALL_POPS_ARGS.
1403         * tm.texi (CALL_POPS_ARGS): Document.
1404         * config/sh/crt1.asm: Implement in SHmedia mode.
1405         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
1406         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
1407         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
1408         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
1409         Implement divsi and udivsi in SHmedia mode.  Introduce
1410         SHcompact trampolines.
1411         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
1412         only in SHmedia64.
1413         (regno_reg_class): Rewrite.
1414         (fp_reg_names): Remove.
1415         (sh_register_names, sh_additional_register_names): New.
1416         (print_operand): Added `u'.  Support SUBREGs in addresses.
1417         Add parentheses around shifted CONSTs.
1418         (output_file_start): Output .mode and .abi directives.
1419         (shiftcosts, addsubcosts, multcosts): Adjust.
1420         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
1421         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
1422         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
1423         bytes, not registers.  Take into account the need for the
1424         SHcompact incoming args trampoline.  Adjust all callers.
1425         (sh_expand_prologue): Take stack_regs into account.  Call
1426         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
1427         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
1428         stack aligned as per SH5 ABI.
1429         (sh_builtin_saveregs): Support SH5 ABI.
1430         (sh_build_va_list, sh_va_start): Likewise.
1431         (initial_elimination_offset): Take alignment into account.
1432         Compute location of PR according to the SH5 stack frame.
1433         (arith_reg_operand): Reject branch-target registers.
1434         (shmedia_6bit_operand): New.
1435         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
1436         (target_reg_operand): Match DImode only.  Accept SUBREGs.
1437         (target_operand): New.
1438         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
1439         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
1440         SIBCALL_REGS for SHmedia.
1441         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
1442         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
1443         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
1444         (TARGET_SWITCHES): New SH5 flags.
1445         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
1446         VALID_REGISTER_P to disable unsupported registers.
1447         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
1448         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
1449         (FUNCTION_ARG_PADDING): Define.
1450         (FASTEST_ALIGNMENT): Adjust.
1451         (SH_REGISTER_NAMES_INITIALIZER): New.
1452         (sh_register_names): Declare.
1453         (DEBUG_REGISTER_NAMES): Define.
1454         (REGISTER_NAMES): Define based on sh_register_names.
1455         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
1456         (sh_additional_register_names): Declare.
1457         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
1458         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
1459         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
1460         (REGISTER_NATURAL_MODE): Define.
1461         (FIRST_PSEUDO_REGISTER): Adjust.
1462         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1463         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
1464         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
1465         (VECTOR_MODE_SUPPORTED_P): Define.
1466         (REG_CLASS_CONTENTS): Adjust.
1467         (SMALL_REGISTER_CLASSES): Adjust.
1468         (REG_ALLOC_ORDER): Adjust.
1469         (INDEX_REG_CLASS): Adjust.
1470         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
1471         (CONST_OK_FOR_LETTER_P): Adjust.
1472         (PREFERRED_RELOAD_CLASS): Adjust.
1473         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
1474         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
1475         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
1476         (FIRST_FP_PARM_REG): Adjust.
1477         (CALL_POPS_ARGS): Define.
1478         (FUNCTION_ARG_REGNO_P): Adjust.
1479         (struct sh_args): New fields.
1480         (GET_SH_ARG_CLASS): Adjust.
1481         (INIT_CUMULATIVE_ARGS): Adjust.
1482         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
1483         (FUNCTION_ARG_ADVANCE): Adjust.
1484         (FUNCTION_ARG): Adjust.
1485         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
1486         (FUNCTION_ARG_CALLEE_COPIES): Define.
1487         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
1488         (STRICT_ARGUMENT_NAMING): Define.
1489         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
1490         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
1491         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
1492         (SETUP_INCOMING_VARARGS): Adjust.
1493         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
1494         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
1495         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
1496         (SUBREG_OK_FOR_INDEX_P): Adjust.
1497         (EXTRA_CONSTRAINT_S): Update.
1498         (EXTRA_CONSTRAINT_T): New.
1499         (EXTRA_CONSTRAINT): Adjust.
1500         (GO_IF_LEGITIMATE_INDEX): Adjust.
1501         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
1502         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
1503         (MOVE_MAX): Adjust.
1504         (MAX_MOVE_MAX): Define.
1505         (Pmode): Adjust.
1506         (CONST_COSTS): Adjust.
1507         (REGISTER_MOVE_COST): Adjust.
1508         (BRANCH_COST): Adjust.
1509         (TEXT_SECTION_ASM_OP): Adjust.
1510         (DBX_REGISTER_NUMBER): Adjust.
1511         (ASM_OUTPUT_DOUBLE_INT): New.
1512         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
1513         (PREDICATE_CODES): Adjust.
1514         (PROMOTE_MODE): Adjust.
1515         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
1516         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
1517         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
1518         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
1519         (DR0_REG, DR2_REG, DR4_REG): Renumber.
1520         (TR0_REG, TR1_REG, TR2_REG): New.
1521         (XD0_REG): Renumber.
1522         (UNSPEC_COMPACT_ARGS): New.
1523         (type): Added pt and ptabs.
1524         (length): Default to 4 on SHmedia.  Default pt length to 12
1525         and     20 on SHmedia32 and SHmedia64, respectively.
1526         (pt): New function unit.
1527         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
1528         Add whitespace between operands of SHmedia instructions.
1529         (movdicc): Fix.
1530         (adddi3_media, addsi3_media): Adjust constraints.
1531         (subsi3) [SHmedia]: Force operand 1 into a register.
1532         (udivsi3_i1_media, udivsi3_i4_media): New.
1533         (udivsi3): Support SHmedia.
1534         (divsi3_i1_media, divsi3_i4_media): New.
1535         (divsi3): Support SHmedia.
1536         (anddi3, iordi3, xordi3): Adjust constraints.
1537         (zero_extendhidi2, zero_extendqidi2): New.
1538         (extendsidi2, extendhidi2, extendqidi2): New.
1539         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
1540         (pop_e, pop_fpul, pop_4): Likewise.
1541         (movsi_media): Support FP and BT registers.
1542         (movsi_media_nofpu): New.  Adjust splits to DImode.
1543         (lduw, ldub): Renamed to zero_extend* above.
1544         (movqi_media): Fix typo.
1545         (movdi_media): Support FP and BT registers.
1546         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
1547         (movdi_const_32bit): New.
1548         (shori_media): Require immediate operand.  Use `u' for output.
1549         (movdf_media, movsf_media): Simplified.
1550         (movdf_media_nofpu, movsf_media_nofpu): New.
1551         (movdf, movsf): Adjust
1552         (movv2sf, movv2sf, movv16sf): New.
1553         (beq_media, beq_media_i): Adjust constraints.  Don't use
1554         scratch BT register.
1555         (bne_media, bne_media_i): Likewise.
1556         (bgt_media, bgt_media_i): Likewise.
1557         (bge_media, bge_media_i): Likewise.
1558         (bgtu_media, bgtu_media_i): Likewise.
1559         (bgeu_media, bgeu_media_i): Likewise.
1560         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
1561         bunordered): Emit jump insn.  Force operands to registers when
1562         needed.
1563         (jump_media, jump): Simplify.
1564         (call_compact, call_compact_rettramp): New.
1565         (call_value_compact, call_value_compact_rettramp): New.
1566         (call_media, call_value_media): Simplify.
1567         (sibcall_compact, sibcall_media): New.
1568         (call, call_value): Adjust for SHmedia and SHcompact.
1569         (sibcall, sibcall_value, untyped_call): Likewise.
1570         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
1571         (indirect_jump): Adjust for SHmedia.
1572         (casesi_jump_media): New.
1573         (nop): Re-enable for SHmedia.
1574         (call_site): Restrict to SH1.
1575         (casesi): Adjust for SHmedia.
1576         (casesi_shift_media, casesi_load_media): New.
1577         (return): Explicitly use PR register.  Call return trampoline
1578         on SHcompact.
1579         (return_i): Explicitly use PR register.
1580         (shcompact_return_tramp, shcompact_return_tramp_i): New.
1581         (return_media): Adjust.
1582         (shcompact_incoming_args): New.
1583         (epilogue): Adjust.
1584         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
1585         (movstrsi): Disable on SH5.
1586         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
1587         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
1588         (subsf3, subsf3_media): Likewise.
1589         (mulsf3, mulsf3_media, mac_media): Likewise.
1590         (divsf3, divsf3_media): Likewise.
1591         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
1592         (floatsisf2, fux_truncsfsi2): Likewise.
1593         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
1594         constraints.
1595         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
1596         (cmpunsf_media, cmpsf): Likewise.
1597         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
1598         (abssf2, abssf2_media): Likewise.
1599         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
1600         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
1601         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
1602         (floatsidf2, fix_truncdfsi2): Likewise.
1603         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
1604         constraints.
1605         (cmpeqdf_media, cmpgtdf_media): Likewise.
1606         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
1607         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
1608         (absdf2, absdf2_media): Likewise.
1609         (extendsfdf2, extendsfdf2_media): Likewise.
1610         (truncsfdf2, truncsfdf2_media): Likewise.
1611         * config/sh/sh64.h: New file.
1612         * config/sh/t-sh64: New file.
1613         * config/sh/shmedia.h: New file.
1614         * config/sh/ushmedia.h: New file.
1615         * config/sh/sshmedia.h: New file.
1616         * configure.in: Added sh64-*-elf.
1617         * configure: Rebuilt.
1618         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
1619         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
1620         (reg_class_from_letter): Use `b' for TARGET_REGS.
1621         (print_operand): Support `%M', `%m', `AND' and
1622         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
1623         (andcosts): Adjust for SHmedia.
1624         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
1625         Likewise.
1626         (target_reg_operand): New function.
1627         * config/sh/sh-protos.h (target_reg_operand): Declare.
1628         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
1629         FP registers on SH5.
1630         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
1631         on SH4.
1632         (TARGET_REGISTER_P): New macro.
1633         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
1634         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
1635         (EXTRA_CONSTRAINT_S): New macro.
1636         (EXTRA_CONSTRAINT): Adjust.
1637         (FLOAT_TYPE_SIZE): Define to 32.
1638         (Pmode): DImode on SHmedia.
1639         (CONST_COSTS): Adjust for SHmedia literals.
1640         (PREDICATE_CODES): Added target_reg_operand.
1641         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
1642         * config/sh/sh.md: Remove all attrs from SHmedia insns.
1643         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
1644         (cmpdi): Accept SHmedia.
1645         (movdicc_false, movdicc_true): New insns.
1646         (movdicc): New expand.
1647         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
1648         no_new_pseudos.
1649         (addsi3_media): Match `S' constraint.
1650         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
1651         (negdi2): Expand for SHmedia.
1652         (one_cmpldi2): New expand.
1653         (zero_extendsidi2): Change from expand to insn.
1654         (extendsidi2): Add constraints.
1655         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
1656         LD/ST address.  Fix SI immediate loading split.
1657         (movhi_media, movqi_media, lduw, ldub): New insns.
1658         (movhi, movqi): Accept SHmedia.
1659         (shori_media, movdi_media): Relax input constraints.  Split
1660         symbolic constants.
1661         (movdf_media, movsf_media): New insn.  New split to movdi.
1662         (movdf, movsf): Match on SHmedia.
1663         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
1664         bgeu_media): New insns and splits.  New insns with `_i' suffix.
1665         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
1666         (bunordered): New expand.
1667         (jump_compact): Renamed from `jump'.
1668         (jump_media): New insn.
1669         (jump): New expand.
1670         (call_media, call_value_media): New insns.
1671         (call, call_value): Adjust.
1672         (indirect_jump_compact): Renamed from `indirect_jump'.
1673         (indirect_jump_media): New insn.
1674         (indirect_jump): New expand.
1675         (untyped_call, return): Accept SHmedia.
1676         (return_media): New insn.
1677         (prologue, epilogue, blockage): Accept SHmedia.
1678         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
1679         (sunordered): New expand.
1680         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
1681         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
1682         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
1683         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
1684         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
1685         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
1686         abssf2_media): New insns.
1687         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
1688         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
1689         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
1690         floatdidf2, floatsidf2_media, fix_truncdfdi2,
1691         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
1692         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
1693         absdf2_media): New insns.
1694         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
1695         (extendsfdf2_media, truncdfsf2_media): New insns.
1696         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
1697         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
1698         * config/sh/sh.h (CONST_OK_FOR_J): Document.
1699         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
1700         * config/sh/sh.md (adddi3): New expand.
1701         (adddi3_media, adddi3z_media): New insns.
1702         (adddi3_compact): Renamed from adddi3.
1703         (addsi3_media): Use add.l r63 to add constant zero.
1704         (subdi3): New expand.
1705         (subdi3_media): New insn.
1706         (subdi3_compact): Renamed from subdi3.
1707         (mulsidi3): New expand.
1708         (mulsidi3_media): New insn.
1709         (mulsidi3_compact): Renamed from mulsidi3.
1710         (umulsidi3): New expand.
1711         (umulsidi3_media): New insn.
1712         (umulsidi3_compact): Renamed from umulsidi3.
1713         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
1714         (ashlsi3, ashrsi3, lshrsi3): Use them.
1715         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
1716         (ashldi3, ashrdi3, lshrdi3): Use them.
1717         (zero_extendsidi2): New expand.
1718         (extendsidi2): New insn.
1719         (movsi_media): New insn.  Split to movdi to load constants.
1720         (movsi): Enable for shmedia.
1721         (movdi_media): New insn.  Use shori_media to load wide constants.
1722         (short_media): New insn.
1723         (movdi): Enable for shmedia.
1724         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
1725         * config/sh/sh.h (CPP_SPEC): Added `m5'.
1726         (SUBTARGET_CPP_SPEC): Added `!m5'.
1727         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
1728         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
1729         to all other SH variants.
1730         (TARGET_DEFAULT): Set to SH1_BIT.
1731         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
1732         (BITS_PER_WORD): Raise to 64 on shmedia.
1733         (MAX_BITS_PER_WORD): Change to 64.
1734         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
1735         (INT_TYPE_SIZE): Keep as 32.
1736         (UNITS_PER_WORD): Raise to 8 on shmedia.
1737         (MIN_UNITS_PER_WORD): Keep as 4.
1738         (POINTER_SIZE): Raise to 64 on shmedia.
1739         (CONST_OK_FOR_J): New macro.
1740         (CONST_OK_FOR_LETTER_P): Use it.
1741         (processor_type): Add PROCESSOR_SH5.
1742         * config/sh/sh.md: Conditionalize all expands, insns and
1743         splits to TARGET_SH1.
1744         (cpu): Added sh5.
1745         (addsi3_compact): Renamed from...
1746         (addsi3): Now an expand.
1747         (addsi3_media, subsi3_media): New insns.
1748         (subsi3): Don't negate constants with SHmedia.
1749
1750         * hooks.c: New file.
1751         * hooks.h: New file.
1752         * Makefile.in (HOOKS_H): New.
1753         (TARGET_DEF_H): Added $(HOOKS_H).
1754         (OBJS): Added hooks.o.
1755         (cfgcleanup.o, bb-reorder.o): Added target.h.
1756         (hooks.o): Added dependencies.
1757         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
1758         (TARGET_INITIALIZER): this.
1759         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
1760         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
1761         * bb-reorder.c: Include target.h.
1762         (reorder_basic_blocks): Skip if cannot modify jumps.
1763         * cfgcleanup.c: Include target.h.
1764         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
1765
1766 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
1767
1768         * config/mips/mips.md (casesi_internal, casesi_internal_di):
1769         Protect jump delay slot instructions with .set noreorder and
1770         .set nomacro.
1771
1772 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
1773
1774         * config/mips/mips.md (casesi_internal_di): Calculate
1775         the index into the target offset table correctly.
1776
1777 2002-02-08  Richard Henderson  <rth@redhat.com>
1778
1779         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
1780         * final.c (output_addr_const): Accept and discard SUBREG.
1781         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
1782         mark them unknown instead.
1783         (simplify_subtraction): Handle RTX_UNKNOWN.
1784         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
1785
1786 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
1787
1788         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
1789
1790 2002-02-08  Richard Henderson  <rth@redhat.com>
1791
1792         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
1793
1794 2002-02-08  Andreas Jaeger  <aj@suse.de>
1795
1796         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
1797         * config/i386/t-linux64: New file.
1798
1799 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
1800
1801         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
1802         * c-parse.in (compstmt): Clear last_expr_type.
1803
1804 2002-02-07  Richard Henderson  <rth@redhat.com>
1805
1806         * loop.c (strength_reduce): Sink final_value when not
1807         eliminating a biv.
1808
1809 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
1810
1811         * config/sparc/freebsd.h: Fix mismatched spec {.
1812
1813 2002-02-07  Richard Henderson  <rth@redhat.com>
1814
1815         * cfgrtl.c: Include recog.h and insn-config.h.
1816         (keep_with_call_p): Fix general_operand invocation.
1817         * Makefile.in (cfgrtl.o): Update dependencies.
1818
1819 2002-02-07  Kazu Hirata  <kazu@hxi.com>
1820
1821         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
1822         comment.  Accept HImode only if TARGET_H8300.
1823
1824 2002-02-07  Eric Christopher  <echristo@redhat.com>
1825
1826         * config/mips/crtn.asm: Cleanup #ifdefs.
1827
1828 2002-02-07  Eric Christopher  <echristo@redhat.com>
1829
1830         * config/mips/crti.asm: Add changes for mips16. mips16 uses
1831         register 7 as RA instead of $31.
1832         * config/mips/crtn.asm: Ditto.
1833         * config/mips/mips.c (mips_move_2words): Add case for
1834         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
1835         (compute_frame_size): Fix typo.
1836         (save_restore_insns): Ditto.  Make documentation about using
1837         register $7 as return register more precise.
1838         (mips_expand_epilogue): Fix comment. Add code to work around not
1839         being able to add to the stack pointer directly.
1840         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
1841         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
1842         epilogue.
1843
1844 2002-02-07  Tom Rix  <trix@redhat.com>
1845
1846         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
1847         immediates in ldu and stdu DS opcode field.
1848         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
1849         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
1850         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
1851
1852 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
1853
1854         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
1855         offset for stack bias.
1856
1857 2002-02-07  H.J. Lu <hjl@gnu.org>
1858
1859         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
1860
1861 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
1862
1863         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
1864
1865 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
1866
1867         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
1868         * i386.c (x86_order_regs_for_local_alloc): New global function.
1869         * i386.h (REG_ALLOC_ORDER): CLeanup.
1870         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
1871
1872 2002-02-07  Richard Henderson  <rth@redhat.com>
1873
1874         PR optimization/2463
1875         * alias.c (find_base_value): Recall base values for fixed hard regs.
1876         * loop.c (loop_regs_update): Don't use single_set on non-insns.
1877
1878 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
1879
1880         * config/mips/mips.md (define_delay) [mips16]: Adjust required
1881         length.
1882
1883 2002-02-06  Richard Henderson  <rth@redhat.com>
1884
1885         PR c/5609
1886         * stmt.c (resolve_operand_name_1): Take more care with mixed
1887         named and unnamed operands.
1888
1889 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
1890             Jan Hubicka  <jh@suse.cz>
1891
1892         * loop.c (remove_constant_addition): Avoid clobbering a shared
1893         CONST expression.
1894
1895 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
1896
1897         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
1898         * config/s390/t-linux64: New file.
1899         * config/s390/libgcc-glibc.ver: New file.
1900
1901 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
1902
1903         * config/s390/linux64.h: Delete file.
1904         * config/s390/s390x.h: New file.
1905         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
1906         as target header file.
1907         * config/s390/linux.h (TARGET_VERSION): Define depending on
1908         DEFAULT_TARGET_64BIT.
1909         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
1910         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
1911         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
1912         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
1913         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
1914         (EXTRA_SPEC): New define.
1915         * config/s390/s390.h (TARGET_VERSION): Define depending on
1916         DEFAULT_TARGET_64BIT.
1917         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
1918
1919 2002-02-06  Jason Merrill  <jason@redhat.com>
1920
1921         * c-decl.c (finish_function): Warn about a non-void function with
1922         no return statement and no abnormal exit.
1923         (current_function_returns_abnormally): New variable.
1924         (start_function): Clear it.
1925         (struct c_language_function): Add returns_abnormally.
1926         (push_c_function_context): Save it.
1927         (pop_c_function_context): Restore it.
1928         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
1929         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
1930         an explicit return type.
1931         * c-tree.h: Declare current_function_returns_abnormally.
1932         (C_FUNCTION_IMPLICIT_INT): New macro.
1933         * c-typeck.c (build_function_call): Set it.
1934         (c_expand_return): Set current_function_returns_value even if the
1935         value is erroneous.
1936
1937 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
1938
1939         PR c/5420:
1940         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
1941         unsafe for reevaluation.
1942
1943 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
1944
1945         PR c/5482:
1946         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
1947         EXPR_STMT, but COMPOUND_STMT, recurse into it.
1948
1949 2002-02-06  Richard Henderson  <rth@redhat.com>
1950
1951         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
1952         be a general_operand.  Dest for function value must be a pseudo.
1953
1954 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
1955
1956         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
1957         as SYMBOL_REFs from the constant pool.
1958
1959 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
1960
1961         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
1962         passed by invisible reference.
1963
1964 2002-02-05  Richard Henderson  <rth@redhat.com>
1965
1966         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
1967
1968 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
1969
1970         Implement using "base addresses" in insn operands as default.
1971         * config/mmix/mmix.c (mmix_conditional_register_usage): if
1972         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
1973         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
1974         used to read the rtx value.
1975         (mmix_target_asm_function_epilogue): Fix spacing.
1976         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
1977         (mmix_legitimate_address): Ditto.
1978         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
1979         should be loaded with a GETA insn.  Don't allocate needless extra
1980         char for nul termination and fix misleading comment.
1981         (mmix_print_operand_address): Handle constants if
1982         TARGET_BASE_ADDRESSES.
1983         (mmix_output_register_setting): Use base addressing if
1984         TARGET_BASE_ADDRESSES and the number of insns is 3.
1985         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
1986         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
1987         to use R as constraint, add LDA to match s.
1988         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
1989         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
1990         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
1991         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
1992         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
1993         order with other fixed registers.
1994         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
1995         other parameter/call-clobbered registers.
1996         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
1997         -mbase-addresses, -mno-base-addresses.
1998         (MMIX Options): Ditto.
1999
2000 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2001
2002         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
2003
2004 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
2005
2006         * config/rs6000/altivec.h: Change elem to _S_elem.
2007
2008 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
2009
2010         * config/netbsd.h (WCHAR_TYPE): Define.
2011         (WCHAR_TYPE_SIZE): Ditto.
2012         (WINT_TYPE): Ditto.
2013         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
2014         (WCHAR_UNSIGNED): Ditto.
2015         (WCHAR_TYPE_SIZE): Ditto.
2016         (WINT_TYPE): Ditto.
2017         * config/arm/netbsd.h: Likewise.
2018         * config/i386/netbsd-elf.h: Likewise.
2019         * config/i386/netbsd.h: Likewise.
2020         * config/m68k/netbsd-elf.h: Likewise.
2021         * config/m68k/netbsd.h: Likewise.
2022         * config/ns32k/netbsd.h: Likewise.
2023         * config/sparc/netbsd.h: Likewise.
2024         * config/vax/netbsd.: Likewise.
2025
2026 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
2027
2028         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
2029         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
2030         (TARGET_INITIALIZER): this.
2031         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
2032         (BITFIELD_NBYTES_LIMITED): Markup fix.
2033         * tree.h (default_ms_bitfield_layout_p): Declare.
2034         (record_layout_info): Added prev_field.
2035         * tree.c (default_ms_bitfield_layout_p): New fn.
2036         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
2037         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
2038         * stor-layout.c: Include target.h.
2039         (start_record_layout): Initialize prev_field.
2040         (place_field): Handle MS bit-field layout, and disregard
2041         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
2042         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
2043         * Makefile.in (stor-layout.o): Adjust dependencies.
2044
2045 2002-02-05  Jason Merrill  <jason@redhat.com>
2046
2047         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
2048
2049 2002-02-05  Andreas Jaeger  <aj@suse.de>
2050
2051         * crtstuff.c: Fix comments.
2052
2053 2002-02-05  Richard Henderson  <rth@redhat.com>
2054
2055         PR fortran/3393
2056         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
2057         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
2058
2059         PR fortran/3392
2060         * config/mips/mips.c (function_arg): Handle TImode.
2061         (function_arg_advance): Likewise.
2062
2063 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2064
2065         * config/rs6000/altivec.h (vec_step_help): Rename to
2066         __vec_step_help.
2067
2068 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2069
2070         * config/rs6000/altivec.h: Fix typos.
2071
2072 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
2073
2074         * config/arm/netbsd.h: Correct a comment.
2075
2076 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2077
2078         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
2079         building void typed builtins.
2080
2081         * config/rs6000/altivec.h (vec_ld*): Fix typos.
2082         (vec_step): Implement for C++.
2083
2084 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2085
2086         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
2087
2088 2002-02-04  Richard Henderson  <rth@redhat.com>
2089
2090         * combine.c (nonzero_bits): Re-introduce special case for
2091         sp/fp/ap wrt REGNO_POINTER_ALIGN.
2092
2093 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2094
2095         * doc/extend.texi: Warn about unsupported usage of altivec
2096         builtins.
2097
2098         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
2099         (altivec_predicate_*): New.
2100
2101         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
2102         Add C++ version of vec_*() functions.
2103
2104         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
2105         (bdesc_2arg): Remove altivec predicates.
2106         (altivec_expand_builtin): Handle predicates.
2107         (altivec_init_builtins): Handle predicates.
2108         (altivec_expand_predicate_builtin): New.
2109
2110 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2111
2112         * pa.c (DO_FRAME_NOTES): Move forward.
2113         (store_reg): Revise handling of frame notes.
2114         (load_reg): Likewise.
2115         (set_reg_plus_d): Likewise.
2116         (hppa_expand_prologue): Likewise.
2117         (hppa_expand_epilogue): Likewise.
2118
2119 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2120
2121         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
2122
2123 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
2124
2125         PR c/4475, c++/3780:
2126         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
2127         * c-common.h (SWITCH_TYPE): Define.
2128         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
2129         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
2130         Rename spareness variable to sparseness.
2131         (expand_end_case_type): Renamed from expand_end_case, use orig_type
2132         if non-NULL instead of TREE_TYPE (orig_index).
2133         * tree.h (expand_end_case_type): Renamed from expand_end_case.
2134         (expand_end_case): Define using expand_end_case_type.
2135         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
2136         to expand_end_case_type.
2137         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
2138
2139 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2140
2141         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
2142         (BIGGEST_ALIGNMENT): Change to 128.
2143
2144 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2145
2146         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
2147
2148 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2149
2150         * pa.md (call_internal_reg_64bit): Remove unused variable.
2151
2152 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
2153
2154         * config/arm/arm.h (machine_function): Add uses_anonymous_args
2155         field.
2156         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
2157         * config/arm/arm.c (current_function_anonymous_args): Delete,
2158         replace uses with cfun->machine->uses_anonymous_args.
2159         (arm_reorg): Do not reset uses_anonymous_args.
2160
2161         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
2162         any geenral register.
2163
2164 2001-02-04  Bernd Schmidt  <bernds@redhat.com>
2165
2166         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
2167         the entry block.
2168
2169 2002-02-04  Richard Henderson  <rth@redhat.com>
2170
2171         * combine.c (force_to_mode): Remove STACK_BIAS code.
2172         (nonzero_bits): Likewise.  Replace sp/fp special case with
2173         REGNO_POINTER_ALIGN.
2174
2175         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
2176         (HARD_FRAME_POINTER_REGNUM): New.
2177         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
2178         (FIXED_REGS, CALL_USED_REGS): Update.
2179         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
2180         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
2181         (HARD_REGNO_NREGS): Update for SFP.
2182         (STACK_POINTER_OFFSET): Include bias here ...
2183         (FIRST_PARM_OFFSET): ... not here.
2184         (STACK_BIAS): Remove.
2185         (INIT_EXPANDERS): New.
2186         (STARTING_FRAME_OFFSET): Do not include bias.
2187         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
2188         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
2189         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
2190         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
2191         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
2192         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
2193         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
2194         (MUST_SAVE_REGISTER): Likewise.
2195         (sparc_flat_function_prologue): Likewise.
2196         (sparc_flat_function_epilogue): Likewise.
2197         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
2198         (sparc_init_modes): SFP is GENERAL_REGS.
2199         (sparc_builtin_saveregs): SFP does not have bias applied.
2200
2201 2002-02-04  Richard Henderson  <rth@redhat.com>
2202
2203         * config/alpha/alpha.c (current_function_is_thunk): Don't check
2204         current_function_is_thunk.
2205         (alpha_sa_mask): Distinguish between current_function_is_thunk
2206         called from ASM_OUTPUT_MI_THUNK and not.
2207         (alpha_does_function_need_gp): Thunks always need gp.
2208         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
2209         (alpha_output_mi_thunk_osf): New.
2210         * config/alpha/alpha-protos.h: Update.
2211         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
2212
2213 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
2214
2215         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
2216         function types, not when they're taken away.
2217
2218 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
2219
2220         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
2221         CODE_LABEL and jump table when replacing a table jump with a
2222         simple jump.
2223
2224 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
2225
2226         * config/s390/s390-protos.h (legitimize_la_operand,
2227         s390_secondary_input_reload_class, s390_plus_operand,
2228         s390_expand_plus_operand): Add prototypes.
2229
2230         config/s390/s390.c (s390_secondary_input_reload_class,
2231         s390_plus_operand, s390_expand_plus_operand): New functions.
2232
2233         (struct s390_address): New member 'pointer'.
2234         (s390_decompose_address): Compute it.
2235         (legitimate_la_operand_p): Use it.
2236         (legitimize_la_operand): New function.
2237         (movti, movdi, movdf splitters): Call it.
2238
2239         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
2240         (PREDICATE_CODES): Add s390_plus_operand.
2241
2242         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
2243         (la_ccclobber): Allow GENERAL_REGS as output operand.
2244
2245         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
2246         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
2247         (*la_64, *la_31, reload_indi, reload_insi): ... these.
2248
2249 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
2250
2251         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
2252         register names for regular asm () construct.
2253
2254 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
2255
2256         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
2257         registers.
2258
2259 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
2260
2261         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
2262         pat for recog.
2263
2264 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
2265
2266         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
2267         constant pool to be identical by string address and index.
2268
2269 2002-02-04  Anthony Green  <green@redhat.com>
2270
2271         * output.h (SECTION_OVERRIDE): Define.
2272         * varasm.c (named_section): Obey SECTION_OVERRIDE.
2273
2274 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
2275
2276         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
2277         by existing arm*-*-netbsd* (a.out) target.
2278         (ns32k-*-netbsdelf*): Likewise.
2279         (sparc-*-netbsdelf*): Likewise.
2280         (vax-*-netbsdelf*): Likewise.
2281
2282 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
2283
2284         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
2285         headers and libobjc headers.
2286
2287 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
2288
2289         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
2290         (_mingw.h): Remove duplicate include.
2291
2292 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
2293
2294         * config.gcc: Set cpu_type to m68k for 68010, as well.
2295         (m68010-*-netbsdelf*): New...
2296         (m68k*-*-netbsdelf*): ...targets.
2297         * config/m68k/netbsd-elf.h: New file.
2298
2299 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2300
2301         * config/h8300/h8300.c (hand_list): Move inside function_arg.
2302
2303 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2304
2305         * config/h8300/h8300.c (h8_push_ops): Move inside
2306         h8300_init_once.
2307         (h8_pop_ops): Likewise.
2308         (h8_move_ops): Likewise.
2309
2310 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2311
2312         * config/h8300/h8300.c (os_task): Make it static.
2313         (monitor): Likewise.
2314         (pragma_saveall): Likewise.
2315
2316 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
2317
2318         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
2319         constant is a valid sign-extension for Pmode.
2320
2321 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2322
2323         * config/h8300/h8300.c: Fix formatting.
2324
2325 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2326
2327         * config/h8300/h8300.md: Fix formatting.
2328
2329 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2330
2331         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
2332         predicates of operands[1].  Split the patterns for each
2333         processor variant.
2334
2335 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2336
2337         * config/h8300/h8300.md (xor patterns): Tighten the predicates
2338         of operands[1] to register_operand.
2339
2340 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2341
2342         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
2343         * cpphash.c (_cpp_init_hashtable): Similarly.
2344         * cppinit.c (cpp_create_reader): Default the signed_char flag.
2345         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
2346         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
2347         (cpp_handle_option): Handle the new options.
2348         * cpplex.c (cpp_interpret_charconst): Use new flag.
2349         * cpplib.h (struct cpp_options): New member signed_char.
2350         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
2351         (cpp_options): Handle -fsigned-char and -funsigned-char.
2352         (static_specs): Remove signed_char_spec.
2353         (do_spec1): Don't handle %c.
2354         * system.h: Poison SIGNED_CHAR_SPEC.
2355         * tradcif.y (yylex): Use flag_signed_char.
2356         * tradcpp.h (flag_signed_char): New.
2357         * tradcpp.c (flag_signed_char): New.
2358         (main): Handle new command-line options.
2359         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
2360 config:
2361         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
2362         * avr/avr.h: Remove old comments.
2363         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
2364         (CC1_SPEC): Pass -fsigned-char if -mic*.
2365         (SIGNED_CHAR_SPEC): Remove.
2366 doc:
2367         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
2368
2369 2002-02-01  Eric Christopher  <echristo@redhat.com>
2370
2371         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
2372         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
2373         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
2374         (ASM_OUTPUT_REG_POP): Ditto.
2375
2376 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2377
2378         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
2379         patch.
2380
2381 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
2382
2383         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
2384
2385 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
2386
2387         PR c/5304:
2388         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
2389         unconditionally.
2390
2391 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
2392
2393         * cfganal.c: Include tm_p.h.
2394         (keep_with_call_p): Fix the test that determines if a register holds
2395         the return value of a call.
2396
2397 2002-02-01  DJ Delorie  <dj@redhat.com>
2398
2399         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
2400         we are given conflicting registers, switch to the other one we
2401         had allocated for us.
2402         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
2403         as TImode so we know when the "other" register is available.
2404
2405 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
2406
2407         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
2408         sparc/sparc_bi.h.
2409
2410 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
2411
2412         * cfganal.c (keep_with_call_p): New function.
2413         (flow_call_edges_add): Prevent splitting a block between a call and
2414         a single-set instruction that should be kept in the same block.
2415
2416 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2417
2418         * doc/install.texi (avr): Update outdated URL.
2419
2420 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
2421
2422         * config/stormy16/stormy16.md (pushqi): New.
2423         (popqi): New.
2424         (pushhi): New.
2425         (pophi): New.
2426         (movhi): Remove stack operands.
2427         (movqi): Likewise.
2428         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
2429         nonimmediate_nonstack_operand.
2430         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
2431         New.
2432         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
2433         New.
2434
2435 2002-01-31  Jason Merrill  <jason@redhat.com>
2436
2437         * Makefile.in (c-parse.c): Handle .output file.
2438         * objc/Make-lang.in (objc-parse.c): Likewise.
2439
2440 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
2441
2442         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
2443         the -me[lb] option is given.  Don't output the default flag
2444         twice.
2445
2446 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
2447
2448         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
2449         the primary source file; this has not been done yet.
2450         * c-decl.c (c_expand_body): Reset input_filename from
2451         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
2452
2453 2002-01-31  Kazu Hirata  <kazu@hxi.com>
2454
2455         * rtlanal.c (subreg_regno_offset): Do not use
2456         SUBREG_REGNO_OFFSET.
2457         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
2458         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
2459
2460 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
2461
2462         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
2463         version rather than GNATS version in --version output.
2464
2465 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
2466
2467         * ifcvt.c (noce_process_if_block): Make a copy of the destination
2468         when copying back from a temporary.
2469
2470 2002-01-30  Richard Henderson  <rth@redhat.com>
2471
2472         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
2473         and new_dest are the same.
2474
2475 2002-01-30  Richard Henderson  <rth@redhat.com>
2476
2477         PR opt/5076
2478         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
2479         * rtl.c (note_insn_name): Update.
2480         * emit-rtl.c (remove_unnecessary_notes): Kill it.
2481         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
2482         to perform loop rotation.
2483         (expand_exit_loop_top_cond): New.
2484         * tree.h (expand_exit_loop_top_cond): Declare it.
2485         * c-semantics.c (genrtl_while_stmt): Use it.
2486         (genrtl_for_stmt): Likewise.
2487
2488 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
2489
2490         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
2491         arguments to 64-bit boundaries on 64-bit ABIs.
2492
2493 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
2494
2495         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
2496
2497 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
2498
2499         * c-decl.c (grokdeclarator): Handle type being a typedef for an
2500         invalid type.
2501
2502 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
2503
2504         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
2505         * config/sparc/sparc_bi.h: Remove file.
2506         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
2507
2508 2002-01-30  Richard Henderson  <rth@redhat.com>
2509
2510         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
2511
2512 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
2513
2514         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
2515
2516 2002-01-30  Jason Merrill  <jason@redhat.com>
2517
2518         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
2519         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
2520         (reg_save): Use DW_CFA_offset_extended_sf instead.
2521
2522         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
2523
2524 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2525
2526         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
2527         in cselib_lookup.
2528
2529 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
2530
2531         * rs6000.md ("*call_value_local32"): Remove constraints.
2532         ("*call_value_local64"): Same.
2533         ("*call_value_indirect_nonlocal_aix32"): Same.
2534         ("*call_value_nonlocal_aix32"): Same.
2535         ("*call_value_indirect_nonlocal_aix64"): Same.
2536         ("*call_value_nonlocal_aix64"): Same.
2537         ("*call_value_nonlocal_sysv"): Same.
2538
2539 2002-01-29  Richard Henderson  <rth@redhat.com>
2540
2541         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
2542
2543 2002-01-29  Richard Henderson  <rth@redhat.com>
2544
2545         * expr.c (force_operand): Ignore flag_pic for detecting pic
2546         address loads.
2547         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
2548         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
2549         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
2550         instead of open-coded loop.
2551         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
2552         be fixed when in use.
2553
2554 2002-01-29  Richard Henderson  <rth@redhat.com>
2555
2556         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
2557         * sched-rgn.c (propagate_deps): Update them.
2558         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
2559         clobbers list when either gets too long.
2560
2561 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2562
2563         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
2564         and INDEX_REGS the same as GENERAL_REGS.
2565         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2566
2567 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2568
2569         * tree.c (build_nonstandard_integer_type): Correct prototype.
2570
2571 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
2572
2573         * config/s390/s390.md (movstrsico, movstrdix_64,
2574         movstrsix_31): Remove, replace by ...
2575         (movstrdi_short, movstrsi_short, movstrdi_long,
2576         movstrsi_long): ... these.  New.
2577         (movstrdi, movstrsi): Adapt.
2578
2579         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
2580         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
2581         Remove unnecessary CC clobber.
2582         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
2583         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
2584
2585         (divmoddi4): Don't partially initialize TImode register.
2586
2587 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
2588
2589         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
2590
2591 2002-01-29  Richard Henderson  <rth@redhat.com>
2592
2593         * flow.c (print_rtl_and_abort): Remove.
2594         (print_rtl_and_abort_fcn): Remove.
2595         (verify_local_live_at_start): Use dump_bb instead.
2596         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
2597         (verify_wide_reg_1): Return 2 on mode test failure.
2598
2599 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2600
2601         PR c/3325, c/3326, c/2511, c/3347
2602         * c-decl.c (enum_decl_context): Remove BITFIELD.
2603         (grokdeclarator): Take bitfield width as an input.
2604         Ensure bitfields are given the correct type.  Perform
2605         bitfield width validation with build_bitfield_integer_type
2606         rather than waiting for finish_struct.
2607         (grok_typename, grok_typename_in_parm_context, start_decl,
2608         push_parmdecl, grokfield, start_function): Update calls to
2609         grokdeclarator.
2610         (build_bitfield_integer_type): New function.
2611         (finish_struct): Move bitfield validation to grokdeclarator
2612         and build_bitfield_integer_type.
2613         * tree.c (build_nonstandard_integer_type): New function.
2614         * tree.h (build_nonstandard_integer_type): New prototype.
2615 objc:
2616         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
2617
2618 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2619
2620         PR other/1502:
2621         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
2622         don't ignore unrecognized -W* options.
2623         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
2624         * cpplib.h (cpp_handle_option): Adjust prototype.
2625         * c-decl.c (c_decode_options): Pass 0 as last argument to
2626         cpp_handle_option.
2627
2628         PR c/2896:
2629         * gcc.c (cpp_unique_options): Split from cpp_options.
2630         (cpp_options): Source cpp_unique_options.
2631         (default_compilers): Use cpp_unique_options instead of cpp_options
2632         when used together with cc1_options.
2633         (static_specs): Add cpp_unique_options.
2634         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
2635         when used together with cc1_options.
2636
2637 2002-01-29  Kazu Hirata  <kazu@hxi.com>
2638
2639         * config/h8300/h8300-protos.h: Update the prototype of
2640         output_a_shift.
2641         * config/h8300/h8300.c (output_a_shift): Remove an unused
2642         argument 'insn'.  Remove redundant code.
2643         * config/h8300/h8300.md: Adust to the new prototype of
2644         output_a_shift.
2645
2646 2002-01-29  Kazu Hirata  <kazu@hxi.com>
2647
2648         * config/h8300/h8300-protos.h: Update the prototypes of
2649         emit_a_rotate and expand_a_rotate.
2650         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
2651         first argument to 'enum rtx_code'.
2652         (expand_a_rotate): Likewise.
2653
2654 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2655
2656         * config/h8300/h8300-protos.h: Update the prototype of
2657         output_simode_bld.
2658         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
2659         'log2'.
2660         * config/h8300/h8300.md: Adjust to the new prototype.
2661
2662 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2663
2664         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
2665         redundant code.
2666
2667 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2668
2669         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
2670         is a fixed register before returning pic_offset_table_rtx.
2671         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
2672         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
2673
2674 2002-01-28  Jason Merrill  <jason@redhat.com>
2675
2676         * dwarf2.h: Sync with src version.
2677
2678 2002-01-28  Paul Koning  <pkoning@equallogic.com>
2679
2680         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
2681         BT_FN_VOID_PTR_VAR.
2682         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
2683         * doc/extend.texi (__builtin_prefetch): Update documentation:
2684         first argument is now const void ptr.
2685
2686 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2687
2688         * config/h8300/h8300-protos.h: Remove an unused prototype.
2689
2690 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
2691
2692         * toplev.c (lang_independent_init): Round up identifier size.
2693
2694 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
2695
2696         * config.gcc: Revert previous change.
2697
2698 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
2699
2700         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
2701
2702 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
2703
2704         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
2705         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
2706         other non-elf netbsd config frags.
2707         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
2708         collect2 will does that.
2709         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
2710         shared-lib frobbing will work.
2711
2712 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2713
2714         * config/h8300/h8300.h: Fix formatting.
2715         * config/h8300/h8300.md: Likewise.
2716
2717 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
2718
2719         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
2720         the old, removed AAA_standards fix.
2721         * fixinc/fixincl.x: Rebuilt.
2722
2723 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
2724
2725         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
2726         atexit call in crtbegin, hooked in after call to frame_dummy;
2727         register EH before registering __fini__start.
2728
2729 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
2730
2731         * config/rs6000/altivec.h: Remove spurious semicolons.
2732
2733 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2734
2735         * config/h8300/h8300.md: Replace dead bit extraction patterns
2736         with ones that work.
2737
2738 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2739
2740         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
2741         if not STRICT_ALIGNMENT.
2742         * rtl.h (MEM_ALIGN): Likewise.
2743
2744 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2745
2746         * doc/invoke.texi (-fdump-translation-unit): Revert this
2747         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2748
2749 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2750
2751         * config/h8300/h8300.md (define_constants): New.
2752         (anonymous patterns) Use defined constants appropriately.
2753
2754 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2755
2756         * config/h8300/h8300.c (function_arg): Remove redundant code.
2757
2758 2002-01-26  Richard Henderson  <rth@redhat.com>
2759
2760         * sched-deps.c (reg_pending_uses_head): New.
2761         (reg_pending_barrier): Rename from reg_pending_sets_all.
2762         (find_insn_list): Don't mark inline.
2763         (find_insn_mem_list): Remove.
2764         (add_dependence_list, add_dependence_list_and_free): New.
2765         (flush_pending_lists): Replace only_write param with separate
2766         for_read and for_write parameters.  Update all callers.  Use
2767         add_dependence_list_and_free.
2768         (sched_analyze_1): Do not add reg dependencies here; just set
2769         the pending bits.  Use add_dependence_list.
2770         (sched_analyze_2): Likewise.
2771         (sched_analyze_insn): Replace schedule_barrier_found with
2772         reg_pending_barrier.  Add all dependencies for pending reg
2773         uses, sets, and clobbers.
2774         (sched_analyze): Don't add reg dependencies for calls, just
2775         set pending bits.  Use regs_invalidated_by_call.  Treat
2776         sched_before_next_call as a normal list, not a fake insn.
2777         (init_deps): No funny init for sched_before_next_call.
2778         (free_deps): Free pending mems lists.  Don't zero reg_last.
2779         (init_deps_global): Init reg_pending_uses.
2780         (finish_deps_global): Free it.
2781         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
2782         (find_insn_mem_list): Remove.
2783         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
2784         (propagate_deps): Use them.  Zero temp mem lists.
2785
2786 2002-01-26  Richard Henderson  <rth@redhat.com>
2787
2788         * Makefile.in (CRTSTUFF_CFLAGS): New.
2789         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
2790         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
2791         crtstuff.c instead of alpha assembly version.
2792         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
2793         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
2794         not FORCE_{INIT,FINI}_SECTION_ALIGN.
2795         (__do_global_dtors_aux): Mark used.
2796         (frame_dummy, __do_global_ctors_aux): Mark used.
2797         (fini_dummy, init_dummy): Remove.
2798
2799         * config/alpha/crtbegin.asm: Remove file.
2800         * config/alpha/crtend.asm: Remove file.
2801         * config/alpha/t-crtbe: Remove file.
2802         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
2803         (LINK_EH_SPEC): New.
2804
2805         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
2806         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
2807         calling constructors.
2808         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
2809
2810         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
2811         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
2812         CRT_END_INIT_DUMMY hack.
2813         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
2814         FORCE_{INIT,FINI}_SECTION_ALIGN.
2815
2816         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
2817         FORCE_{INIT,FINI}_SECTION_ALIGN.
2818
2819         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
2820         invocation sequence.
2821         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
2822
2823         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
2824         (FORCE_CODE_SECTION_ALIGN): New.
2825
2826 2002-01-26  Richard Henderson  <rth@redhat.com>
2827
2828         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
2829
2830 2002-01-26  Richard Henderson  <rth@redhat.com>
2831
2832         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
2833         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
2834
2835 2002-01-26  Kazu Hirata  <kazu@hxi.com>
2836
2837         * config/h8300/h8300.md: Remove bit extraction patterns that
2838         cannot be triggered.
2839         Restrict each bit extraction pattern to a variant on which the
2840         pattern is tested.
2841
2842 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2843
2844         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
2845
2846 2002-01-26  Kazu Hirata  <kazu@hxi.com>
2847
2848         * config/h8300/h8300.md: Remove bit test patterns that cannot
2849         be triggered.
2850         Restrict each bit test pattern to a variant on which the
2851         pattern is tested.
2852
2853 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2854
2855         * builtins.c (expand_builtin_strncat): Remove redundant check for
2856         INTEGER_CST.
2857
2858 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
2859
2860         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
2861         default setting.
2862         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
2863         existing setting.
2864
2865 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
2866
2867         * dbxout.c (dbxout_init): Use assemble_name rather than just
2868         stripping off the first character.
2869         (dbxout_source_file): Likewise.
2870
2871 2002-01-25  DJ Delorie  <dj@redhat.com>
2872
2873         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
2874         using rtx_equal_p, not by comparing pointers.
2875
2876 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
2877
2878         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
2879         for PIC_OFFSET_TABLE_REGNUM.
2880         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
2881
2882 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
2883
2884         * config.gcc (x86_64-*-freebsd*): New target.
2885         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
2886         value.
2887         (i[34567]86-*-freebsd*): Don't include svr4.h.
2888         * config/i386/freebsd64.h: New file.
2889
2890 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
2891
2892         * config/alpha/x-vms (version): Make static.
2893
2894         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
2895         in previous checkin.
2896
2897         * Makefile.in (install-headers-cp): New target.
2898         * config.gcc (alpha-dec-*vms*): Install headers with
2899         install-headers-cp
2900
2901 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
2902
2903         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
2904         avoid it's copies.
2905
2906 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2907
2908         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
2909         of compare_tree_int.
2910         (expand_builtin_strncat): Likewise.
2911         * c-decl.c (finish_struct): Use tree_low_cst.
2912         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
2913         * tree.c (compare_tree_int): Likewise.
2914
2915 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
2916
2917         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
2918         adjustments even if they are implemented by more than two insns.
2919
2920 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
2921
2922         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
2923         * df.h (struct ref): Kill B.
2924         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
2925
2926         * basic-block.h (PROP_EQUAL_NOTES): New flag.
2927         * flow.c (propagate_one_insn): Use it.
2928         (mark_used_regs): Handle NIL.
2929
2930 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
2931
2932         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
2933         to help folding.
2934
2935 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
2936
2937         * rs6000.md (prefetch): Make address V4SI mode so that the address
2938         is restricted to legitimate form for instruction.
2939
2940 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
2941
2942         * doc/install.texi (xtensa-*-elf): New target.
2943         (xtensa-*-linux*): New target.
2944         * doc/contrib.texi: Add myself.
2945
2946 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
2947
2948         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
2949         purpose register to hold an SImode (or smaller) value.
2950
2951 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
2952
2953         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
2954         registry only.
2955         * crtstuff.c: Likewise.
2956
2957 2002-01-25  Kazu Hirata  <kazu@hxi.com>
2958
2959         * config/h8300/h8300.md (negation patterns): Tighten
2960         predicates to register_operand.
2961
2962 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
2963
2964         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
2965         mode, not Pmode.
2966
2967         * builtins.c (expand_builtin_prefetch): Same.
2968
2969 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2970
2971         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
2972         modes.
2973
2974 2002-01-24  Kazu Hirata  <kazu@hxi.com>
2975
2976         * config/h8300/h8300.c (print_operand): Remove support for
2977         operand character 'A'.
2978         * config/h8300/h8300.md (three anonymous patterns): Replace
2979         operand character 'A' with either 'T' or 'S'.
2980
2981 2002-01-24  Kazu Hirata  <kazu@hxi.com>
2982
2983         * config/h8300/h8300.c (print_operand): Remove support for
2984         operand character 'U'.
2985
2986 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
2987
2988         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
2989
2990 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
2991
2992         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
2993         values to be assigned to the stack pointer.
2994
2995 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
2996
2997         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
2998         to const_double needs to be done right for big-endian systems.
2999
3000 2002-01-24  Jason Merrill  <jason@redhat.com>
3001
3002         PR c++/2432
3003         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
3004         to can_throw_internal.
3005
3006 2002-01-23  Richard Henderson  <rth@redhat.com>
3007
3008         * fold-const.c (fold): Change UINT_MAX test to check vs precision
3009         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
3010
3011 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3012
3013         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
3014         (symGOT2reg): Use them, then set as GOT value as unchanging.
3015         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
3016         as a temporary, if possible.
3017         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
3018         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
3019
3020 2002-01-23  Kazu Hirata  <kazu@hxi.com>
3021
3022         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
3023         accept to accept 0x80 as operands[2].
3024
3025 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3026
3027         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
3028
3029 2002-01-23  Richard Henderson  <rth@redhat.com>
3030
3031         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
3032
3033 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
3034
3035         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
3036         (parmlist_or_identifiers_1): Verify that only a parmlist follows
3037         an attribute.
3038
3039 2002-01-23  Richard Henderson  <rth@redhat.com>
3040
3041         * expr.c (move_by_pieces_1): Extend size before negation.
3042
3043         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
3044         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
3045         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
3046         * config/m68k/t-m68kelf: Likewise.
3047
3048 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
3049
3050         * config/xtensa/elf.h: New file.
3051         * config/xtensa/lib1funcs.asm: New file.
3052         * config/xtensa/lib2funcs.S: New file.
3053         * config/xtensa/linux.h: New file.
3054         * config/xtensa/t-xtensa: New file.
3055         * config/xtensa/xtensa-config.h: New file.
3056         * config/xtensa/xtensa-protos.h: New file.
3057         * config/xtensa/xtensa.c: New file.
3058         * config/xtensa/xtensa.h: New file.
3059         * config/xtensa/xtensa.md: New file.
3060         * config.gcc (xtensa-*-elf*): New target.
3061         (xtensa-*-linux*): New target.
3062         * cse.c (canon_hash): Compare rtx pointers instead of register
3063         numbers.  This is required for the Xtensa port.
3064         * integrate.c (copy_insn_list): Handle case where the static
3065         chain is in memory and the memory address has to be copied to
3066         a register.
3067         * doc/invoke.texi (Option Summary): Add Xtensa options.
3068         (Xtensa Options): New node.
3069         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
3070
3071 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
3072
3073         * diagnostic.c (internal_error): Do ICE suppression only
3074         when ENABLE_CHECKING is not defined.
3075
3076         * c-typeck.c (require_complete_type): Return error_mark_node
3077         if type is error_mark_node.
3078
3079 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
3080
3081         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
3082         -Os and issue a warning.
3083
3084 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
3085
3086         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
3087         current (lack of) need for host configuration by hand.
3088
3089         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
3090         references.  Documentation of some target macros moved from
3091         hostconfig.texi to tm.texi.
3092
3093 2002-01-23  Will Cohen  <wcohen@redhat.com>
3094
3095         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
3096         defined.
3097
3098 2002-01-23  Kazu Hirata  <kazu@hxi.com>
3099
3100         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
3101         operand[3].
3102
3103 2002-01-23  Jason Merrill  <jason@redhat.com>
3104
3105         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
3106
3107         * function.c (assign_parms): Don't put args of inline functions
3108         into registers when not optimizing.
3109
3110 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
3111
3112         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
3113         (prologue_use): New pattern.
3114         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
3115         preference to gen_rtx_USE.
3116         (thumb_expand_prologue): Use gen_prologue_use in preference to
3117         gen_rtx_USE.
3118         (thumb_expand_epilogue): Use gen_prologue_use in preference to
3119         gen_rtx_USE.
3120
3121 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
3122
3123         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
3124
3125 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3126
3127         PR c/3504
3128         * doc/extend.texi: Correct documentation of __alignof__.
3129
3130 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
3131
3132         * params.h: Rename arguments of DEFPARAM so that it will be
3133         recognized as a translation keyword.
3134
3135 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
3136
3137         * extend.texi: Document altivec functions.
3138         Fix N-bit adjectives in X86 builtin documentation.
3139
3140 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
3141
3142         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
3143         auto_inc_dec values.
3144
3145 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
3146
3147         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
3148         after backslash.
3149         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
3150
3151 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
3152
3153         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
3154
3155 2002-01-22  Richard Henderson  <rth@redhat.com>
3156
3157         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
3158         copy_insn not copy_rtx.
3159
3160 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
3161
3162         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
3163         "nonzero" as that might add "1" bits.  Ensure "constop" is
3164         properly sign extened.
3165         (force_to_mode): Tweak for sign extended constop.
3166
3167 2002-01-22  Richard Henderson  <rth@redhat.com>
3168
3169         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
3170         for_each_rtx instead of assuming we're already looking at the MEM.
3171         (split_small_symbolic_mem_operand): Likewise.
3172         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3173         * config/alpha/alpha.md (small symbolic memory splitters): Update.
3174
3175 2002-01-22  Richard Henderson  <rth@redhat.com>
3176
3177         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
3178         sequence number for the literal.
3179         (divmoddi_internal_er): Likewise.
3180
3181 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3182
3183         PR java/4972
3184         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
3185         in LIBICONV variable.
3186         * configure: Regenerated.
3187
3188 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
3189
3190         * dependence.c (build_def_use): Remove array_idx.
3191
3192         * dwarfout.c (last_filename): Remove.
3193         (output_compile_unit_die): Remove last_filename.
3194
3195 2002-01-22  Roger Sayle  <roger@eyesopen.com>
3196             Richard Henderson  <rth@redhat.com>
3197
3198         PR opt/3640
3199         * fold-const.c (fold): Optimize unsigned comparisons against
3200         UINT_MAX (and similar unsigned constants).
3201
3202 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
3203
3204         * Makefile.in (loop.o): Depend on OPTABS_H.
3205         * loop.c (emit_prefetch_instructions): Check the prefetch operand
3206         against the predicate.
3207
3208         PR target/5379
3209         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
3210         for the address operand.
3211
3212 2002-01-22  Richard Henderson  <rth@redhat.com>
3213
3214         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
3215
3216 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3217
3218         PR other/5450
3219         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
3220         preprocessor flags.
3221
3222 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
3223
3224         * config.gcc (x86_64-*-netbsd*): New target.
3225         * config/i386/netbsd64.h: New file.
3226
3227 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
3228
3229         * regrename.c (kill_value): Fix typo.
3230
3231 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
3232
3233         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
3234
3235         * config/rs6000/rs6000.h: Same.
3236
3237         * function.c (instantiate_virtual_regs): Remove
3238         STARTING_FRAME_PHASE.
3239         (assign_stack_local_1): Same.
3240         Calculate frame phase.
3241
3242 2002-01-22  Nick Clifton  <nickc@redhat.com>
3243
3244         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
3245         variable declaration to outer scope in order to simplify
3246         future extensions.
3247         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
3248         arm_hard_regno_mode_ok.
3249         * config/arm/arm-protos.h: Add a prototype for
3250         arm_hard_regno_mode_ok.
3251         * config/arm/arm.c (soft_df_operand): Remove now redundant
3252         check for DImode values using IP_REGNUM.
3253         (nonimmediate_soft_df_operand): Remove now redundant check for
3254         DImode values using IP_REGNUM.
3255         (arm_hard_regno_mode_ok): New function. New check: make sure
3256         that DImode values are not stored in IP_REGNUM.
3257
3258         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
3259         note with a USE.
3260         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
3261
3262 2002-01-22  Jason Merrill  <jason@redhat.com>
3263
3264         * c-semantics.c (genrtl_compound_stmt): Only check nesting
3265         consistency if this COMPOUND_STMT is scoped.
3266
3267 2002-01-22  Kazu Hirata  <kazu@hxi.com>
3268
3269         * predict.c: Fix formatting.
3270         * print-tree.c: Likewise.
3271         * protoize.c: Likewise.
3272         * real.h: Likewise.
3273         * rtl.h: Likewise.
3274         * sbitmap.h: Likewise.
3275         * scan.c: Likewise.
3276         * sched-deps.c: Likewise.
3277         * sched-vis.c: Likewise.
3278         * sdbout.c: Likewise.
3279         * sibcall.c: Likewise.
3280         * ssa.c: Likewise.
3281         * ssa-ccp.c: Likewise.
3282         * ssa-dce.c: Likewise.
3283         * stmt.c: Likewise.
3284         * stor-layout.c: Likewise.
3285         * system.h: Likewise.
3286
3287 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3288
3289         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
3290         if fits in bounds of base type.
3291
3292         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
3293         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
3294         (add_bound_info, default): If can't find a context, make a
3295         SAVE_EXPR.
3296         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
3297
3298 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
3299
3300         * c-typeck.c (parser_build_binary_op): If result from
3301         build_binary_op is ERROR_MARK just return error_mark_node without
3302         further processing.
3303
3304 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
3305
3306         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
3307         Split a.out-specific bits into...
3308         * config/netbsd-aout.h: ...this.
3309         * config/netbsd-elf.h: New file.
3310         * config/alpha/netbsd-elf.h: Remove.
3311         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
3312         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
3313         (STARTFILE_SPEC): Remove redundant definition.
3314         (ENDFILE_SPEC): Likewise.
3315         (LINK_SPEC): Likewise.
3316         (CPP_SPEC): Likewise.
3317         (ASM_SPEC): Likewise.
3318         (LIB_SPEC): Likewise.
3319         (SWITCH_TAKES_ARG): Likewise.
3320         (TARGET_MEM_FUNCTIONS): Likewise.
3321         (CPP_PREDEFINES): Redefine.
3322         (ASM_FINAL_SPEC): Remove redefinition.
3323         (ASM_COMMENT_START): Redefine.
3324         (FUNCTION_PROFILER): Define.
3325         (TARGET_VERSION): Redefine.
3326         Comment and formatting cleanup.
3327         * config/i386/netbsd.h: Include <netbsd-aout.h>.
3328         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
3329         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
3330         big- or little-endian.
3331         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
3332         * config.gcc (*-*-netbsd*): Add definitions common to all
3333         NetBSD configs.
3334         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
3335         gnu_ld definitions.  Add netbsd-elf.h to and remove
3336         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
3337         tmake_file, and don't lose previous tmake_file contents.
3338         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
3339         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
3340         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
3341         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
3342         (mipsel-*-netbsd*): Rename this to...
3343         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
3344         mips/little.h to tm_file for mips*el-*.
3345         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
3346         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
3347         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
3348
3349 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3350
3351         * pa-protos.h (reg_before_reload_operand): New function prototype.
3352         * pa.c (reg_before_reload_operand): New function implementation.
3353         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
3354         contraints to "*m".
3355
3356 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3357
3358         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
3359
3360 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3361
3362         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
3363         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
3364         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
3365         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
3366         (ENDFILE_SPEC): Undefine.
3367         (STARTFILE_SPEC): Redefine for PA.
3368
3369 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3370
3371         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
3372
3373 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
3374
3375         * config.gcc: Add entries to supported PowerPC --with-cpu
3376         types.
3377
3378 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
3379
3380         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
3381         true for 64-bit mode only SSE registers in 32-bit mode.
3382
3383 2002-01-21  Kazu Hirata  <kazu@hxi.com>
3384
3385         * unwind-dw2.c: Fix formatting.
3386         * unwind-dw2-fde.c: Likewise.
3387         * unwind-dw2-fde.h: Likewise.
3388         * unwind-pe.h: Likewise.
3389         * varasm.c: Likewise.
3390         * varray.h: Likewise.
3391
3392 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
3393
3394         Remove workaround for register stack overwrite bug in mmix.
3395         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
3396         support for TARGET_REG_STACK_FILL_BUG.
3397         * config/mmix/mmix.h: Remove member has_call_without_parameters.
3398         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
3399         Delete.
3400         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
3401         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
3402         -mno-reg-stack-fill-bug-workaround.
3403         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
3404         machine member has_call_without_parameters.
3405         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
3406         -mreg-stack-fill-bug-workaround and
3407         -mno-reg-stack-fill-bug-workaround.
3408         (MMIX Options): Ditto.
3409
3410 2002-01-21  Kazu Hirata  <kazu@hxi.com>
3411
3412         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
3413         as appropriate.
3414         Remove redundant code.
3415
3416 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3417
3418         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
3419         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
3420         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
3421         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
3422         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
3423         out target macro definitions and non-target-specific comments
3424         mostly taken from old versions of the manual.
3425
3426 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3427
3428         * config/h8300/h8300.h: Fix comment formatting.
3429         * config/ia64/aix.h: Likewise.
3430         * config/ia64/ia64-protos.h: Likewise.
3431         * config/ia64/ia64.c: Likewise.
3432         * config/ia64/ia64.h: Likewise.
3433         * config/ia64/ia64intrin.h: Likewise.
3434         * config/ia64/linux.h: Likewise.
3435         * config/ia64/unwind-aix.c: Likewise.
3436         * config/ia64/unwind-ia64.c: Likewise.
3437
3438 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3439
3440         * config/h8300/h8300.c: Revise comments about shift code.
3441
3442 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3443
3444         * config/h8300/h8300.c (function_arg): Update a comment.
3445
3446 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3447